OVH Cloud OVH Cloud

Erreur ASP - Update d'une base Access.

1 réponse
Avatar
fabrice
Bonjour à tous

Suite à la migration d'un site interne de IIS 4 sous IIS 6 + asp.net activé
j'ai des problèmes pour mettre à jour une basse access.
Les Select fontionnent bien.

J'ai l'erreur suivante :

[Microsoft][Pilote ODBC Microsoft Access] L'opération doit utiliser une
requête qui peut être mise à jour



J'utilise le DSN suivant :



<%
DSN_BASE = "DBQ=" & Server.Mappath("base.mdb") & ";Driver={Microsoft Access
Driver (*.mdb)};DriverId=25"
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open DSN_BASE
%>



Après une recherche il apparait qu'il s'agit d'un problème de droit sur le
fichier .MDB.
J'ai mis les droits d'écritures sur ce fichier au compte invité internet
IUSR_MACHINE. A partir de la cela fonctionne.

Ma question est plus une question de sécurité. Existe t il un autre moyen
d'agir ? Sur une KB de microsoft parle de cela
Configurez le processus de traitement ASP.NET pour qu'il s'exécute
sous le compte SYSTEM dans la section <processModel> du fichier
Machine.config.

Pour des raisons de sécurité, Microsoft recommande d'activer l'emprunt
d'identité sur votre application ASP.NET. Cette méthode fonctionne si
l'utilisateur dont l'identité a été empruntée dispose des autorisations
nécessaires sur l'ordinateur et la base de données auxquels vous accédez.



Je comprends pas trop la notion d'emprunt. Si quelqu un a des solutions..


merci
fabrice

1 réponse

Avatar
Paul Bacelar
"fabrice" wrote in message
news:
Bonjour à tous

Suite à la migration d'un site interne de IIS 4 sous IIS 6 + asp.net


activé
j'ai des problèmes pour mettre à jour une basse access.
Les Select fontionnent bien.

J'ai l'erreur suivante :

[Microsoft][Pilote ODBC Microsoft Access] L'opération doit utiliser une
requête qui peut être mise à jour



J'utilise le DSN suivant :



<%
DSN_BASE = "DBQ=" & Server.Mappath("base.mdb") & ";Driver={Microsoft


Access
Driver (*.mdb)};DriverId%"
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open DSN_BASE
%>



Après une recherche il apparait qu'il s'agit d'un problème de droit sur le
fichier .MDB.
J'ai mis les droits d'écritures sur ce fichier au compte invité internet
IUSR_MACHINE. A partir de la cela fonctionne.

Ma question est plus une question de sécurité. Existe t il un autre moyen
d'agir ? Sur une KB de microsoft parle de cela
Configurez le processus de traitement ASP.NET pour qu'il s'exécute
sous le compte SYSTEM dans la section <processModel> du fichier
Machine.config.

Pour des raisons de sécurité, Microsoft recommande d'activer


l'emprunt
d'identité sur votre application ASP.NET. Cette méthode fonctionne si
l'utilisateur dont l'identité a été empruntée dispose des autorisations
nécessaires sur l'ordinateur et la base de données auxquels vous accédez.



Je comprends pas trop la notion d'emprunt. Si quelqu un a des solutions..


merci
fabrice





L'impersonnalisation qui se cache derrière "l'emprunt" est très simple.

Un serveur est chargé de rendre un service au client.

Dans ce contexte, le serveur doit vérifier que le client a le droit de faire
ce qu'il demande.

Pour simplifier le développement des applications serveur, un programme qui
tourne sous un compte X peut demander à être considéré comme tournant sous
un compte Y. Pour des raison évidant de sécurité, Y doit avoir moins de
privilège que X ou le programme doit prouver qu'il travail au nom du client
Y. On dit que le programme serveur impersonnalise X, ou encore emprunte l'
identité de Y.

Le programme serveur n'a plus aucun teste de sécurité à faire, s'il y a une
opération interdit pour le client, le serveur ne pourra pas le faire non
plus tant qu'il impersonnalisera son client.

Pour que tout cela fonctionne, il faut que le client donne au serveur des
preuves de son identité pour que le serveur puisse se faire passer pour le
client.

Dans ce cadre, le client doit être connu du system de gestion des droits
donc de la machine local ou d'un domaine NT reconnu par la machine.
--
Paul Bacelar