Implémenter la sécurité de l'Agent SQL Server

L'Agent SQL Server permet à l'administrateur de la base de données d'exécuter chaque étape de travail dans un contexte de sécurité qui a uniquement les autorisations requises pour effectuer cette étape, ce qui est déterminé par un proxy de l'Agent SQL Server. Pour définir des autorisations pour une étape de travail particulière, créez un proxy possédant les autorisations requises, puis assignez ce proxy à l'étape de travail. Un proxy peut être spécifié pour plusieurs étapes de travail. Pour les étapes de travail qui requièrent les mêmes autorisations, vous utilisez le même proxy.

La section suivante explique quel rôle de base de données vous devez accorder aux utilisateurs pour qu'ils puissent créer ou exécuter des travaux à l'aide de l'Agent SQL Server.

Octroi de l'autorisation d'accéder à l'Agent SQL Server

Pour utiliser l'Agent SQL Server, les utilisateurs doivent être membres de l'un ou de tous les rôles de base de données fixes suivants :

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Ces rôles sont stockés dans la base de données msdb. Par défaut, aucun utilisateur n'est membre de ces rôles de base de données. L'appartenance à ces rôles doit être accordée explicitement. Les utilisateurs qui sont membres du rôle de serveur fixe sysadmin ont un accès complet à l'Agent SQL Server et ne doivent pas nécessairement être membres de ces rôles de base de données fixes pour utiliser l'Agent SQL Server. Si un utilisateur n'est pas membre de ces rôles de base de données ou du rôle sysadmin, le nœud de l'Agent SQL Server n'est pas disponible pour eux lorsqu'ils se connectent à SQL Server à l'aide de SQL Server Management Studio.

Les membres de ces rôles de base de données peuvent afficher et exécuter les travaux dont ils sont propriétaires, et créer des étapes de travail qui s'exécutent comme un compte proxy existant. Pour plus d'informations sur les autorisations spécifiques qui sont associées à chacun de ces rôles, consultez Rôles de base de données fixes de l'Agent SQL Server.

Les membres du rôle de serveur fixe sysadmin sont habilités à créer, à modifier et à supprimer des comptes proxy. Les membres du rôle sysadmin sont habilités à créer des étapes de travail qui ne spécifient pas un proxy, mais s'exécutent plutôt comme le compte de services d'Agent SQL Server, qui est le compte utilisé pour démarrer l'Agent SQL Server.

Consignes

Pour améliorer la sécurité de votre implémentation de l'Agent SQL Server, suivez les instructions suivantes :

  • Créez des comptes utilisateur dédiés spécifiquement pour les proxys et utilisez uniquement ces comptes utilisateur proxy pour exécuter les étapes de travail.

  • Octroyez exclusivement les autorisations nécessaires aux comptes utilisateur proxy. Octroyez exclusivement les autorisations réellement requises pour exécuter les étapes de travail qui sont assignées à un compte proxy donné.

  • N'exécutez pas le service SQL Server Agent sous un compte Microsoft Windows qui est membre du groupe Administrateurs de Windows.

  • Les proxys sont aussi sécurisés que la banque d'informations d'identification de SQL Server.

  • Si les opérations d'écriture utilisateur peuvent écrire dans le journal des événements NT, elles peuvent déclencher des alertes par le biais de l'Agent SQL Server.

  • Ne spécifiez pas le compte administrateur NT en tant que compte de service ou compte proxy.

  • Notez que SQL Server et l'Agent SQL Server ont chacun accès aux ressources de l'autre. Les deux services partagent un espace de processus unique et l'Agent SQL Server est un sysadmin sur le service SQL Server.

  • Lorsque TSX est inscrit avec un MSX, le MSX sysadmin obtient le contrôle total sur l'instance TSX de SQL Server.

  • ACE est une extension et ne peut pas s'appeler elle-même. ACE est appelé par le programme de chaînage ScenarioEngine.exe, également appelé Microsoft.SqlServer.Chainer.Setup.exe, ou peut être appelé par un autre processus hôte.

  • ACE dépend des DLL de configuration suivantes détenues par SSDP, car ces API de DLL sont appelées par ACE :

    • SCO – Microsoft.SqlServer.Configuration.Sco.dll, y compris les nouvelles validations SCO pour les comptes virtuels

    • Cluster – Microsoft.SqlServer.Configuration.Cluster.dll

    • SFC – Microsoft.SqlServer.Configuration.SqlConfigBase.dll

    • Extension – Microsoft.SqlServer.Configuration.ConfigExtension.dll

Voir aussi

Référence

sp_addrolemember (Transact-SQL)

sp_droprolemember (Transact-SQL)

Concepts

Rôles prédéfinis

Sécurité et protection (moteur de base de données)