2008-09-24 4 views
0

Nous exécutons une partie de notre application en tant que service Windows et devons pouvoir accéder aux DSN afin d'importer via ODBC. Cependant, il semble y avoir beaucoup de restrictions trouvées par essais et erreurs sur les DSN auxquelles il peut accéder. Par exemple, il semble qu'il ne peut pas accéder à un DSN système à moins que le compte qui exécute le service ait des privilèges d'administrateur. (Je reçois une erreur Accès refusé, lors de la tentative de connexion) 2. accéder à un DSN utilisateur qui a été créé par un utilisateur différent (celui-ci est compréhensible). 3. accéder à un fichier DSN à travers le réseauQuelles sont les restrictions d'accès pour accéder à un DSN?

J'ai lu que le but d'un fichier DSN est de permettre à d'autres ordinateurs de l'utiliser pour se connecter, mais je ne peux pas sembler faire ce travail.

Donc, sait-on, ou savoir où je peux trouver quelles sont les règles et les restrictions sur l'accès à un DSN lors de l'utilisation d'un service Windows. merci

Répondre

1

Ceci est quelque part entre votre # 1 et # 2: parfois des permissions de fichiers correctes sont également nécessaires. J'ai déjà eu des problèmes sur une machine Vista se connectant à un DS2 DB2 parce que, pour une raison quelconque (peut-être écrire des fichiers temporaires, bien que je ne sais pas pourquoi cela ferait une chose à cet endroit au lieu d'un spécifique) , le pilote avait besoin d'un accès en écriture au répertoire où IBM avait installé les binaires et les bibliothèques client, ce qui avait été fait par un administrateur et se trouvait à la racine du lecteur C.

1

Je pense que vous avez déjà découvert les trois règles principales. :-)

Sauf que vous n'avez probablement pas besoin de privilèges d'administrateur pour votre compte de service. IANANA (Je ne suis pas un administrateur réseau), mais votre compte de service n'a probablement besoin que d'un accès en lecture à l'un des fichiers ou répertoires ODBC.

0

Vous ne pouvez pas vous connecter à des lecteurs mappés avec un service. Un lecteur mappé doit interagir avec la mémoire appelée le tas de bureau qui suit les icônes sur le bureau. Les services n'ont pas accès à cette mémoire. Si vous devez utiliser un dsn, créez un systemdsn. mieux serait d'utiliser une chaîne de connexion et de stocker cela dans le fichier app.config et d'utiliser l'API de chiffrement pour chiffrer le nom d'utilisateur et le mot de passe.

Questions connexes