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

S’applique à :SQL ServerAzure SQL Managed Instance

Important

Dans Azure SQL Managed Instance, la plupart, mais pas toutes les fonctionnalités SQL Server Agent sont actuellement prises en charge. Pour plus d’informations, consultez Différences T-SQL entre Azure SQL Managed Instance et SQL Server.

SQL Server Agent 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 SQL Server Agent. 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 SQL Server Agent.

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

Pour utiliser SQL Server Agent, 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 serveur fixe sysadmin ont un accès complet à SQL Server Agent et ne doivent pas nécessairement être membres de ces rôles de base de données fixes pour utiliser SQL Server Agent. 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 SQL Server Agent ne leur est pas accessible quand ils se connectent à SQL Server avec 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 en savoir plus sur les autorisations spécifiques associées à chacun de ces rôles, consultez Rôles de base de données fixes de SQL Server Agent.

Les membres du rôle 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 service SQL Server Agent, qui est le compte utilisé pour démarrer SQL Server Agent.

Consignes

Pour améliorer la sécurité de votre implémentation de SQL Server Agent, 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 SQL Server Agent.

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

  • Notez que SQL Server et SQL Server Agent ont chacun accès aux ressources de l’autre. Les deux services partagent un espace de processus unique et SQL Server Agent 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

Utilisation de rôles prédéfinis
sp_addrolemember (Transact-SQL)
sp_droprolemember (Transact-SQL)
Sécurité et protection (moteur de base de données)