Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Problème de compte de travail de l'agent SQL Server

J'exécuterais généralement les travaux de l'Agent SQL Server sous le même compte que celui où votre application accède à la base de données.

Si ce compte est trop limité dans ses autorisations (ce qui pourrait être une bonne chose !), je créerais un compte unique pour cette application et toutes ses tâches SQL (si c'est possible) et exécuterais toutes les tâches SQL sous ce compte.

Vous pourriez potentiellement exécuter chaque étape sous un compte différent, mais je ne l'utiliserais pas en général (cela rend vraiment difficile de savoir et de comprendre ce qui est exécuté sous quel compte). Ne l'utilisez que si vous devez exécuter une étape particulièrement sensible qui nécessite un tas d'autorisations supplémentaires et que ces autorisations ne sont disponibles que pour un compte système particulier ou quelque chose.

Le compte sous lequel le service Windows de l'Agent SQL Server s'exécute n'a pas vraiment d'impact sur les étapes sous lesquelles vos tâches seront exécutées.

Cela se résume donc à deux comptes :

  • un compte est nécessaire pour exécuter le service Windows de SQL Server Agent - il s'agit d'un compte Windows sur votre machine / serveur qui doit disposer de suffisamment d'autorisations pour exécuter le service, le démarrer et l'arrêter - utilisez LocalSystem, Network Service ou tout autre Windows compte avec lequel vous devez exécuter des services

  • L'autre compte serait le compte pour exécuter les étapes de votre Agent SQL Server - il s'agit généralement d'un compte SQL Server (qui peut être basé sur un compte Windows), et il a besoin de suffisamment de privilèges dans SQL Server pour faire son travail, par exemple. il a besoin d'accéder aux objets de la base de données et à tout. Je m'efforcerais d'avoir un seul compte pour chaque application qui exécute les tâches SQL Server - rend la vie beaucoup plus facile !

Marc

PS :Pour définir l'utilisateur sous lequel exécuter une étape, vous devez utiliser la page "Avancé" de la boîte de dialogue des propriétés de l'étape de la tâche et sélectionner l'utilisateur dans une fenêtre contextuelle :