Je dispose d'un service Windows (.NET) qui s'exécute en tant qu'utilisateur de domaine et qui dispose des autorisations complètes sur les ressources de base de données et le système de fichiers requis. Le service appelle une procédure qui appelle une instruction d'insertion en bloc dans SQL Server.Erreur d'autorisation à l'aide de SQL Server et de la sécurité intégrée
Le service est exécuté avec la sécurité intégrée, le compte a été accordé la connexion en tant que droits de service. Cependant, je suis confronté à un problème d'autorisation lorsque le service s'exécute sur un autre serveur que celui où se trouve SQL Server.
Le serveur d'applications s'appelle Srv01 et le serveur db est Sql01. Le processus génère un fichier pdf et appelle l'insertion en bloc à l'aide d'une procédure dans Sql01. Lorsque j'installe le service Windows dans Srv01, je reçois l'erreur suivante:
Cannot bulk load because the file "//Srv01/Output/Letter.pdf" could not be opened. Operating system error code 5(Access is denied.).
Le partage réseau a les autorisations pour tout le monde. J'essaie juste de faire fonctionner cela et de renforcer la sécurité plus tard.
Lorsque j'exécute le même service, avec le même utilisateur de domaine dans le même serveur que la base de données, à savoir Sql01, le processus fonctionne correctement.
Nous exécutons: Windows Server 2012, SQL Server 2012 Enterprise et le service est écrit en .NET 4.5. J'ai essayé de regarder dans les politiques de sécurité locales sur le serveur sql et le serveur d'application, mais sans aucun résultat. Oui, j'ai également redémarré le serveur d'applications (mais pas le DB).
Ressemble à un problème de double saut: l'authentification de srv01 à sql01 fonctionne, mais lorsque sql01 tente d'emprunter l'identité du compte pour accéder au partage sur srv01, il échoue. Il y a beaucoup de choses qui peuvent mal tourner ici; [ce site] (https://www.roelvanlisdonk.nl/2009/05/22/microsoft-sql-2005-bulk-insert-kerberos-double-hop-and-operating-system-error-code-5-access -is-denied /) décrit un scénario en détail. –
Merci @JeroenMostert. Cet article était utile, mais les forums qu'il désignait étaient inaccessibles. J'ai finalement compris! Il était lié aux noms principaux de service et à l'authentification Kerberos. Je vais écrire une plus grande entrée comme réponse. – Candide