Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ecrire dans une base Access

11 réponses
Avatar
Renaud
Bonjour,

J'ai un site en ASP.Net que je suis en train de monter sur un serveur
Win2003 (IIS6)
Ce site s'appuie sur une base Access. Sur ma machine de dévelopemment, je
n'ai pas de soucis, mais quand je transfert le tout sur mon serveur, je ne
peux pas écrire dans mon fichier .mdb.
Qu'ai-je oublié de faire pour autoriser l'écriture dans le sous-répertoire
de mon site qui contient ma base Access ?
Par ailleurs, ne vaut-il pas mieux que je le mette ailleurs que dans un
sous-répertoire de mon site (si oui, comment encore le rendre accessible à
l'écriture) ?

D'avance merci.

Renaud

10 réponses

1 2
Avatar
F. Spiesser
> J'ai un site en ASP.Net que je suis en train de monter sur un serveur
Win2003 (IIS6)
Ce site s'appuie sur une base Access. Sur ma machine de dévelopemment, je
n'ai pas de soucis, mais quand je transfert le tout sur mon serveur, je ne
peux pas écrire dans mon fichier .mdb.
Qu'ai-je oublié de faire pour autoriser l'écriture dans le sous-répertoire
de mon site qui contient ma base Access ?



Donner le droit écriture sur le rép. depuis la console IIS

Par ailleurs, ne vaut-il pas mieux que je le mette ailleurs que dans un
sous-répertoire de mon site (si oui, comment encore le rendre accessible à
l'écriture) ?



En effet, c'est mieux pour la sécurité de la placer dans un répertoire
inacessible par le web.
Dans ce cas, s'assurer que l'utilisateur anonyme web (IUSR_xxxx) a les
droits d'écriture, modification, suppression sur ce répertoire
Avatar
Renaud
Merci beaucoup pour ces précisions... Je vais faire ça tout de suite.

Renaud

"F. Spiesser" a écrit dans le message de news:
#
> J'ai un site en ASP.Net que je suis en train de monter sur un serveur
> Win2003 (IIS6)
> Ce site s'appuie sur une base Access. Sur ma machine de dévelopemment,


je
> n'ai pas de soucis, mais quand je transfert le tout sur mon serveur, je


ne
> peux pas écrire dans mon fichier .mdb.
> Qu'ai-je oublié de faire pour autoriser l'écriture dans le


sous-répertoire
> de mon site qui contient ma base Access ?

Donner le droit écriture sur le rép. depuis la console IIS

> Par ailleurs, ne vaut-il pas mieux que je le mette ailleurs que dans un
> sous-répertoire de mon site (si oui, comment encore le rendre accessible


à
> l'écriture) ?

En effet, c'est mieux pour la sécurité de la placer dans un répertoire
inacessible par le web.
Dans ce cas, s'assurer que l'utilisateur anonyme web (IUSR_xxxx) a les
droits d'écriture, modification, suppression sur ce répertoire



Avatar
Pierre Goiffon
Dans le message:%,
F. Spiesser a écrit:
J'ai un site en ASP.Net que je suis en train de monter sur un serveur
Win2003 (IIS6)
Ce site s'appuie sur une base Access. Sur ma machine de
dévelopemment, je n'ai pas de soucis, mais quand je transfert le
tout sur mon serveur, je ne peux pas écrire dans mon fichier .mdb.



Donner le droit écriture sur le rép. depuis la console IIS



Oulla non attention aux confusions !!
Il faut les permissions NTFS écriture sur ce fichier MDB, mais le droit
dans IIS "écriture" authorise le PUT HTTP, ce qui est tout autre chose !

--
_________________________________________________________
/
. Pierre GOIFFON .
. p g o i f f o n @ w e b c i t y . f r .
_________________________________________________________/
Un grand merci à OE Quote Fix pour rendre OE utilisable :)
=> http://home.in.tum.de/~jain/software/quotefix.php
Avatar
Renaud
J'avais bien compris permission NTFS, pas de soucis, je n'ai pas modifié le
droit d'écriture au niveau de IIS.
A présent, je peux créer et modifier des fichiers texte dans un répertoire,
mais ma base Access reste toujours en lecture seule...
Je lis parfaitement mes données dans la base, mais dès que je veux faire un
Update, j'ai droit à ça :
System.Data.OleDb.OleDbException: L'opération doit utiliser une requête qui
peut être mise à jour.
C'est comme si le fichier était toujours en lecture seule pour lui.
Je précise que cela fonctionne très bien sur ma machine locale de
développement.

Quelqu'un a-t-il une suggestion ?

D'avance merci

Renaud

"Pierre Goiffon" a écrit dans le message de news:
bfqs7n$1qd$
Dans le message:%,
F. Spiesser a écrit:
>> J'ai un site en ASP.Net que je suis en train de monter sur un serveur
>> Win2003 (IIS6)
>> Ce site s'appuie sur une base Access. Sur ma machine de
>> dévelopemment, je n'ai pas de soucis, mais quand je transfert le
>> tout sur mon serveur, je ne peux pas écrire dans mon fichier .mdb.
>
> Donner le droit écriture sur le rép. depuis la console IIS

Oulla non attention aux confusions !!
Il faut les permissions NTFS écriture sur ce fichier MDB, mais le droit
dans IIS "écriture" authorise le PUT HTTP, ce qui est tout autre chose !

--
_________________________________________________________
/
. Pierre GOIFFON .
. p g o i f f o n @ w e b c i t y . f r .
_________________________________________________________/
Un grand merci à OE Quote Fix pour rendre OE utilisable :)
=> http://home.in.tum.de/~jain/software/quotefix.php



Avatar
Pierre Goiffon
Dans le message:%,
Renaud a écrit:
J'avais bien compris permission NTFS, pas de soucis, je n'ai pas
modifié le droit d'écriture au niveau de IIS.
A présent, je peux créer et modifier des fichiers texte dans un
répertoire, mais ma base Access reste toujours en lecture seule...



Comment est faite la connexion ? Via un DSN ?

--
_________________________________________________________
/
. Pierre GOIFFON .
. p g o i f f o n @ w e b c i t y . f r .
_________________________________________________________/
Un grand merci à OE Quote Fix pour rendre OE utilisable :)
=> http://home.in.tum.de/~jain/software/quotefix.php
Avatar
Renaud
Non, DSN Less...
objConn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=x:tototat.mdb")

... sans ODBC, directement sur le fichier Acces via le provider Oledb Jet



"Pierre Goiffon" a écrit dans le message de news:
bfrbfc$4k9$
Dans le message:%,
Renaud a écrit:
> J'avais bien compris permission NTFS, pas de soucis, je n'ai pas
> modifié le droit d'écriture au niveau de IIS.
> A présent, je peux créer et modifier des fichiers texte dans un
> répertoire, mais ma base Access reste toujours en lecture seule...

Comment est faite la connexion ? Via un DSN ?

--
_________________________________________________________
/
. Pierre GOIFFON .
. p g o i f f o n @ w e b c i t y . f r .
_________________________________________________________/
Un grand merci à OE Quote Fix pour rendre OE utilisable :)
=> http://home.in.tum.de/~jain/software/quotefix.php



Avatar
Pierre Goiffon
Dans le message:,
Renaud a écrit:
J'avais bien compris permission NTFS, pas de soucis, je n'ai pas
modifié le droit d'écriture au niveau de IIS.
A présent, je peux créer et modifier des fichiers texte dans un
répertoire, mais ma base Access reste toujours en lecture seule...



Comment est faite la connexion ? Via un DSN ?





Non, DSN Less...



Etes vous sur et certain que vous avez donné les permissions au bon
utilisateur ? Votre site ne tournerait pas en processus isolé avec un
utilisateur spécifique par hasard ? Quid de l'attribut du fichier MDB ?
(... je sèche après)

--
_________________________________________________________
/
. Pierre GOIFFON .
. p g o i f f o n @ w e b c i t y . f r .
_________________________________________________________/
Un grand merci à OE Quote Fix pour rendre OE utilisable :)
=> http://home.in.tum.de/~jain/software/quotefix.php
Avatar
jbongran
Renaud wrote:
A présent, je peux créer et modifier des fichiers texte dans un
répertoire, mais ma base Access reste toujours en lecture seule...
Je lis parfaitement mes données dans la base, mais dès que je veux
faire un Update, j'ai droit à ça :
System.Data.OleDb.OleDbException: L'opération doit utiliser une
requête qui peut être mise à jour.
[...]
Renaud



Les droits NTFS doivent être sur le repertoire contenant la base, donc la
base doit hériter de ces droits.
Quel est le compte utilisateur utilisé ?
Essayez de mettre iwam_nomdemachine si votre site ou le rep virtuel est en
process isolé..
Avatar
Renaud
Effectivement, il tourne dans un process isolé.

Je viens de jeter un coup d'oeil au Pool d'Application (je suis sous II6) :
son identité est prédéfinie en "Service Réseau". Si je passe cette identité
prédéfinie à "Système Local", cela fonctionne, mais je n'ai pas envie de
donnée autant de droit à ce process.

Plutôt que d'utilisier une identité prédéfinie, j'ai effectivement la
possibilité de choisir l'identitté de l'utilisateur que va utiliser mon pool
d'application. Quand je coche cette option, le compte par défaut proposé est
iwam_nomdemachine. J'ai donc fait ce choix et donné à iwam_nomdemachine les
droits suffisants pour modifier mon fichier Access.

Mais là, j'ai un autre problème : apparement, iwam_xxx n'a pas les même
autorisation que "Service Réseau" puisque dès le premier acces au site, j'ai
ce message :
System.UnauthorizedAccessException: L'accès au chemin d'accès
"C:WINDOWSMicrosoft.NETFrameworkv1.1.4322Temporary ASP.NET
Filesroot24552b4b8c0c2488global.asax.xml" est refusé.

Il faudrait donc que je rajoute à iwam_xxx les autorisations correspondantes
à l'identité prédéfinie "Service Réseau".
Existe-t-il un groupe duquel il faudrait que je le rende membre pour que mon
compte dispose des autorisations suffisantes pour correspondre à cette
identité prédéfinie de "Service Réseau" ???

Je sens quela solution est proche et je vous remercie à tous de votre aide
jusque là....

Renaud


"jbongran" a écrit dans le message de news:
3f216be5$0$16699$
Renaud wrote:
> A présent, je peux créer et modifier des fichiers texte dans un
> répertoire, mais ma base Access reste toujours en lecture seule...
> Je lis parfaitement mes données dans la base, mais dès que je veux
> faire un Update, j'ai droit à ça :
> System.Data.OleDb.OleDbException: L'opération doit utiliser une
> requête qui peut être mise à jour.
> [...]
> Renaud

Les droits NTFS doivent être sur le repertoire contenant la base, donc la
base doit hériter de ces droits.
Quel est le compte utilisateur utilisé ?
Essayez de mettre iwam_nomdemachine si votre site ou le rep virtuel est en
process isolé..




Avatar
jbongran
Renaud wrote:
Effectivement, il tourne dans un process isolé.

Je viens de jeter un coup d'oeil au Pool d'Application (je suis sous
II6) : son identité est prédéfinie en "Service Réseau". Si je passe
cette identité prédéfinie à "Système Local", cela fonctionne, mais je
n'ai pas envie de donnée autant de droit à ce process.

Plutôt que d'utilisier une identité prédéfinie, j'ai effectivement la
possibilité de choisir l'identitté de l'utilisateur que va utiliser
mon pool d'application. Quand je coche cette option, le compte par
défaut proposé est iwam_nomdemachine. J'ai donc fait ce choix et
donné à iwam_nomdemachine les droits suffisants pour modifier mon
fichier Access.

Mais là, j'ai un autre problème : apparement, iwam_xxx n'a pas les
même autorisation que "Service Réseau" puisque dès le premier acces
au site, j'ai ce message :
System.UnauthorizedAccessException: L'accès au chemin d'accès
"C:WINDOWSMicrosoft.NETFrameworkv1.1.4322Temporary ASP.NET
Filesroot24552b4b8c0c2488global.asax.xml" est refusé.

Il faudrait donc que je rajoute à iwam_xxx les autorisations
correspondantes à l'identité prédéfinie "Service Réseau".
Existe-t-il un groupe duquel il faudrait que je le rende membre pour
que mon compte dispose des autorisations suffisantes pour
correspondre à cette identité prédéfinie de "Service Réseau" ???

Je sens quela solution est proche et je vous remercie à tous de votre
aide jusque là....

Renaud


http://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/windowsserver2003/proddocs/standard/sec_acc_wpprivileges.asp
1 2