Configuration des serveurs liés pour la délégation

SQL Server et Windows peuvent être configurés afin de permettre à un client connecté à une instance de SQL Server de se connecter à une autre instance de SQL Server, en transmettant les informations d'identification d'un utilisateur Windows authentifié. Cette organisation porte le nom de délégation. Dans le cadre d'une délégation, l'instance de SQL Server à laquelle un utilisateur Windows s'est connecté à l'aide de l'authentification Windows emprunte l'identité de cet utilisateur pour communiquer avec une autre instance. La délégation de compte de sécurité est nécessaire pour les requêtes distribuées lorsqu'un mappage automatique est utilisé pour une connexion spécifique par rapport à un serveur lié donné.

Contraintes liées à la délégation

Pour illustrer les contraintes liées à la délégation, prenons comme exemple le scénario suivant : un utilisateur se connecte à un ordinateur client qui se connecte à un serveur en train d'exécuter une instance SQL Server, SQLSERVER1. L'utilisateur souhaite exécuter une requête distribuée impliquant une base de données située sur un serveur lié, SQLSERVER2. Ce scénario, dans lequel un ordinateur se connecte à un autre ordinateur pour se connecter à un troisième ordinateur, est appelé double saut.

Notes

Un serveur lié doit être configuré pour la délégation même lorsqu'une application cliente, notamment SQL Server Management Studio, qui établit une connexion à un serveur se trouve sur le même ordinateur que l'instance de SQL Server interrogée.

Conditions requises pour le client

  • La connexion authentifiée Windows de l'utilisateur doit être habilitée à accéder à SQLSERVER1 et à SQLSERVER2

  • La propriété Active Directory de l'utilisateur, Le compte est sensible et ne peut pas être délégué, ne doit pas être sélectionnée.

  • L'ordinateur client doit utiliser le protocole TCP/IP ou le protocole réseau de canaux nommés.

Conditions requises pour le premier serveur (intermédiaire) (SQLSERVER1)

  • Le serveur doit posséder un SPN inscrit par l'administrateur de domaine.

  • Le compte sous lequel SQL Server est en cours d'exécution doit être approuvé pour la délégation.

  • Le serveur doit utiliser le protocole TCP/IP ou le protocole réseau de canaux nommés.

  • Le second serveur, SQLSERVER2, doit être ajouté en tant que serveur lié. Pour ce faire, vous pouvez exécuter la procédure stockée sp_addlinkedserver. Exemple :

    EXEC sp_addlinkedserver 'SQLSERVER2', N'SQL Server'
    
  • Les connexions au serveur lié doivent être configurées de manière à prendre en charge le mappage automatique. Pour ce faire, vous pouvez exécuter la procédure stockée sp_addlinkedsrvlogin. Exemple :

    EXEC sp_addlinkedsrvlogin 'SQLSERVER2', 'true'
    

Conditions requises pour le second serveur (SQLSERVER2)

  • Si vous utilisez le protocole réseau TCP/IP, le serveur doit avoir un SPN inscrit par l'administrateur de domaine.

  • Le serveur doit utiliser le protocole TCP/IP ou le protocole réseau de canaux nommés.