none
Accès à un dossier shared depuis un package (SSIS Catalog): Access denied RRS feed

  • Question

  • Bonjour,

    Nous sommes actuellement en train de déployer un site sur de nouveaux serveurs, dont voici l'architecture (simplifiée):

    • Un serveur IIS qui héberge le site internet
    • Un serveur SQL 2012 sur lequel tournent les bases ainsi que les packages SSIS (SSIS catalog) (le compte de service est un Managed Service Account)
    • Un serveur de fichier sur lequel se trouve le dossier partagé (dans lequel il y a le fichier qui doit être lu par le package SSIS). Le droit FullControl a été donné à Everyone.

    Nous avons un access denied lorsque le package essaye d'ouvrir le fichier sur le dossier partagé, nous avons donc essayé:

    • D'ajouter "TrustedForDelegation" au Managed Service Account SQL: aucun changement.
    • De développer un petit tool winform qui va lire un fichier situé dans le dossier partagé: fonctionne avec tous les comptes testés, depuis n'importe quel poste du domaine.
    • De créer le dossier shared sur le serveur SQL et d'essayer d'y accéder depuis le package (SSIS Catalog): ça fonctionne.
    • De faire tourner le package via l'agent sql (job): ça fonctionne.
    • De faire tourner le package depuis SSIS: ça fonctionne.
    • Pour finir nous avons essayé d'accéder au fichier via une requête SQL: 

    SELECT BulkColumn 
    FROM OPENROWSET (BULK '\\SERVEUR\SHAREDFOLDER\test.txt', SINGLE_CLOB) MyFile

    • et nous obtenons l'erreur:

    Cannot bulk load because the file "\\SERVEUR\SHAREDFOLDER\test.txt" could not be opened. Operating system error code 5(Access is denied.).

    • Si on fait le même test avec un dossier partagé qui se trouve sur le serveur SQL, ça fonctionne...

    Il semble donc que nous n'ayons le problème quand quand c'est SQL Server qui essaye d'accéder au fichier qui se trouve dans le dossier partagé d'un autre serveur du domaine.

    Auriez-vous une idée de ce qui provoque le problème?

    Merci d'avance!

    jeudi 20 juin 2013 14:06

Réponses

  • Bonjour,

    Désolé pour le temps de réponse, voici ce que nous avons trouvé:

    SSIS ne gère pas la délégation de compte (Kerberos), donc le package essayait de se connecter au dossier partagé avec le compte Anonymous. Pour répondre à Aurel BERA, il n'est pas envisageable pour nous de donner accès à Anonymous pour des raisons de sécurité.

    La solution de contournement que nous avons implémenté consiste à créer un job, qui s'exécute via un Proxy SSIS, ce dernier étant exécuté avec un credential spécial appuyé sur l'utilisateur voulu (celui qui a les droits sur le dossier partagé).

    Merci!

    vendredi 5 juillet 2013 11:45

Toutes les réponses