Dans SQL Server 2005, est-il possible de planifier l'exécution d'un package SSIS sur un compte autre que le compte de service de l'agent SQL?
J'ai un package SSIS qui établit une connexion à une base de données et exécute une procédure stockée. Mon critère est que je ne spécifierai pas de noms d'utilisateur/mots de passe dans un package ou une configuration de package, je souhaite donc utiliser l'authentification intégrée.
Le problème est que, par défaut, une étape d’un travail s’exécute en tant que compte de service SQL Agent et notre groupe de serveurs ne souhaite pas accorder à ce compte des droits d’exécution sur les procédures stockées que mon package exécutera. Nous essayons donc de trouver un moyen de spécifier un compte différent dans l'étape, afin que le package s'exécute dans un contexte différent. Est-ce possible?
Si vous souhaitez exécuter le package SSIS à partir de travaux SQL Agent, vous pouvez créer un proxy. Vérifiez ici pour plus d'informations.
Si vous avez accès à SQL Server Agent
via SQL Server Management Studio, voici les étapes à suivre pour créer un travail à l'aide de l'interface utilisateur graphique. Les étapes montrent comment créer un travail SQL pour exécuter SSIS à l'aide du compte de service de l'agent SQL et créer un proxy à exécuter sous un autre en utilisant des informations d'identification différentes.
Accédez à SQL Server Management Studio. Développez SQL Server Agent
et cliquez avec le bouton droit sur Jobs, puis sélectionnez New Job...
comme indiqué dans la capture d'écran n ° 1 .
Indiquez un nom et le propriétaire par défaut sera le compte qui crée le travail, mais vous pouvez le modifier en fonction de vos besoins. Attribuez une catégorie si vous le souhaitez et fournissez également une description. Se référer à la capture d'écran # 2 .
Dans la section Étapes, cliquez sur New...
comme indiqué dans la capture d'écran n ° 3 .
Dans la boîte de dialogue Nouvelle étape de travail, indiquez un nom d'étape. Sélectionnez SQL Server Inegration Services Package
dans Type. Cette étape sera exécutée sous SQL Agent Service Account
par défaut. Sélectionnez la source du package en tant que File system
et naviguez jusqu'au chemin du package en cliquant sur Ellipsis. Cela va peupler le chemin du paquet. Se référer à la capture d'écran # 4 . Si vous ne souhaitez pas que l'étape s'exécute sousSQL Agent Service Account
, reportez-vous aux étapes # 8 - 9 pour savoir comment utiliser un compte différent.
Si vous avez un fichier de configuration SSIS (.dtsConfig) pour le package, cliquez sur l'onglet Configurations et ajoutez le fichier de configuration comme indiqué sur la capture d'écran # 5 .
Cliquez sur OK et le package de l'étape 1 est présenté dans la capture d'écran n ° 6 . De même, vous pouvez créer différentes étapes.
Une fois le travail créé, vous pouvez cliquer dessus avec le bouton droit de la souris et sélectionner Script Job as --> CREATE To --> New Query Editor Window
pour générer le script, comme indiqué dans la capture d'écran n ° 7 .
Pour exécuter l'étape SSIS sous un compte différent, dans Management Studio, accédez à Security --> right-click on Cedentials --> select New Credential...
, comme indiqué dans la capture d'écran n ° 8 .
Dans la boîte de dialogue New Credential
, indiquez le nom des informations d'identification, le compte Windows et le mot de passe sous lesquels vous souhaitez exécuter les étapes SSIS dans les travaux SQL. Reportez-vous à la capture d'écran # 9 . Les informations d'identification seront créées comme indiqué dans la capture d'écran # 10 .
Ensuite, nous devons créer un proxy. Dans Management Studio, accédez à SQL Server Agent --> Proxies --> right-click on SSIS Package Execution --> select New Proxy...
, comme indiqué dans la capture d'écran n ° 11 .
Dans la fenêtre Nouveau compte proxy, indiquez un nom de proxy, sélectionnez les informations d'identification nouvellement créées, indiquez une description et sélectionnez le package SQL Server Integration Services, comme indiqué dans la capture d'écran n ° 12 . Le compte proxy doit être créé comme indiqué sur la capture d'écran # 13 .
Maintenant, si vous revenez à l'étape du travail SQL, vous devriez voir le compte Proxy nouvellement créé dans le menu déroulant Exécuter en tant que . Se référer à la capture d'écran # 14 .
J'espère que cela pourra aider.
Capture d'écran n ° 1:
Capture d'écran n ° 2:
Capture d'écran n ° 3:
Capture d'écran n ° 4:
Capture d'écran n ° 5:
Capture d'écran n ° 6:
Capture d'écran # 7:
Capture d'écran # 8:
Capture d'écran # 9:
Capture d'écran # 10:
Capture d'écran # 11:
Capture d'écran # 12:
Capture d'écran # 13:
Capture d'écran # 14:
Avec SQL 2012, j'ai eu une erreur que le compte d'utilisateur choisi n'est pas autorisé à être un proxy. L'utilisation de la requête suivante a résolu ce problème:
use msdb
GO
exec sp_grant_login_to_proxy @login_name = 'MyLoginName', @proxy_name= 'proxy_SSIS'