Question

Nous exécutons une partie de notre application en tant que service Windows et elle doit pouvoir accéder aux DSN pour pouvoir importer via ODBC. Cependant, il semble y avoir beaucoup de restrictions trouvées par essais et erreurs sur les DSN auxquels il peut accéder. Par exemple, il semble qu'il ne puisse pas 1. accédez à un DSN système à moins que le compte qui exécute le service dispose des privilèges d'administrateur. (J'obtiens une erreur d'accès refusé lorsque j'essaie de me connecter) 2. accéder à un utilisateur DSN créé par un autre utilisateur (celui-ci est compréhensible). 3. accéder à un fichier DSN sur le réseau

J'ai lu que le but d'un fichier DSN est de permettre à d'autres ordinateurs de l'utiliser pour se connecter, mais je n'arrive pas à le faire fonctionner.

Alors, est-ce que tout le monde sait ou sait où je peux trouver quelles sont les règles et les restrictions d'accès à un DSN lors de l'utilisation d'un service Windows. merci

Était-ce utile?

La solution

C’est quelque part entre vos n ° 1 et n ° 2: des autorisations de fichiers correctes sont parfois nécessaires. Une fois, j’ai eu des problèmes avec une machine Vista qui se connectait à un DSN DB2 parce que, pour une raison quelconque (peut-être pour écrire des fichiers temporaires; bien que je ne sache pas pourquoi on ferait une telle chose à cet endroit plutôt qu’à un utilisateur spécifique) , le pilote avait besoin d’un accès en écriture au répertoire où IBM avait installé les fichiers binaires et les bibliothèques du client, ce qui avait été effectué par un administrateur et se trouvait à la racine du lecteur C.

Autres conseils

Je pense que vous avez déjà découvert vous-même 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.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top