Liaison des serveurs

Une configuration de serveurs liés permet à SQL Server d'exécuter des commandes sur les sources de données OLE°DB hébergées par des serveurs distants. Les serveurs liés offrent les avantages suivants :

  • l'accès aux serveurs distants ;

  • la possibilité d'émettre des requêtes, des mises à jour, des commandes et des transactions partagées sur des sources de données hétérogènes situées dans les différents services de l'entreprise ;

  • la possibilité de traiter diverses sources de données de manière identique.

Composants des serveurs liés

Une définition de serveur lié spécifie les objets suivants :

  • Un fournisseur OLE°DB

  • Une source de données OLE°DB

Un fournisseur OLE°DB représente une DLL qui gère une source de données spécifique et interagit avec elle. Une source de données OLE DB identifie la base de données spécifique accessible via OLE DB. Bien que les sources de données interrogées au moyen des définitions de serveurs liés soient d'ordinaire des bases de données, des fournisseurs OLE°DB existent pour différents fichiers et formats de fichiers, dont les fichiers texte, les données incluses dans des feuilles de calcul et les résultats de recherches de contenu.

Le fournisseur OLE DB de Microsoft SQL Server Native Client (PROGID: SQLNCLI10) est le fournisseur OLE DB officiel pour SQL Server.

Notes

Les requêtes distribuées SQL Server ont été conçues pour être utilisées avec tout fournisseur OLE DB qui implémente les interfaces OLE DB requises. Toutefois, SQL Server n'a été testé qu’avec le fournisseur OLE DB de SQL Native Client SQL Server et certains autres fournisseurs. Pour plus d'informations, consultez Fournisseurs OLE DB testés avec SQL Server.

Détails des serveurs liés

L'illustration suivante montre les aspects fondamentaux d'une configuration de serveurs liés.

Niveau client, niveau serveur et niveau serveur de bases de données

Généralement, les serveurs liés sont utilisés pour le traitement des requêtes distribuées. Lorsqu'une application cliente exécute une requête distribuée via un serveur lié, SQL Server analyse la commande et envoie des demandes à OLE°DB. La requête d'ensemble de lignes peut se présenter sous la forme d'une exécution de requête vers le fournisseur, ou par l'ouverture d'une table de base à partir du fournisseur.

Pour qu'une source de données renvoie les données via un serveur lié, le fournisseur OLE DB (DLL) associé à cette source de données doit se trouver sur le même serveur que l'instance de SQL Server.

Lorsqu'un fournisseur OLE°DB tiers est utilisé, le compte sous lequel le service SQL Server s'exécute doit disposer d'autorisations de lecture et d'exécution sur le répertoire, et sur tous les sous-répertoires correspondants, dans lequel le fournisseur est installé.

Gestion des fournisseurs

Un ensemble d'options permettent de contrôler la façon dont SQL Server charge et utilise des fournisseurs OLE°DB spécifiés dans le Registre. Pour plus d'informations, consultez Configuration des fournisseurs OLE DB pour l'exécution de requêtes distribuées.

Gestion des définitions de serveurs liés

Pendant que vous configurez un serveur lié, enregistrez les informations de connexion et les informations relatives aux sources de données dans SQL Server. Une fois cette source de données enregistrée, vous pouvez y faire référence avec un nom logique unique.

Vous pouvez utiliser des procédures stockées et des affichages catalogue pour gérer les définitions de serveurs liés :

  • Créez une définition de serveurs liés en exécutant sp_addlinkedserver.

  • Visualisez les informations relatives aux serveurs liés définis dans une instance spécifique de SQL Server en exécutant une requête sur les affichages catalogue système sys.servers.

  • Supprimez une définition de serveurs liés en exécutant sp_dropserver. Vous pouvez également utiliser cette procédure stockée pour supprimer un serveur distant.

Vous pouvez également définir des serveurs liés à l'aide de SQL Server Management Studio. Dans l'Explorateur d'objets, cliquez avec le bouton droit sur Objets serveur et sélectionnez Nouveau puis Serveur lié. Pour supprimer une définition de serveur lié, vous pouvez cliquer avec le bouton droit sur le nom du serveur lié puis sélectionner Supprimer.

Lorsque vous exécutez une requête distribuée sur un serveur lié, veillez à inclure pour chaque source de données à interroger un nom de table en quatre parties complet. Ce nom en quatre parties doit figurer sous la forme suivante : linked_server_name.catalog**.schema.**object_name. Pour plus d'informations, consultez Requêtes distribuées.

Notes

Les serveurs liés peuvent être définis de façon à repointer (en bouclage) vers le serveur sur lequel ils sont définis. Les serveurs en boucle sont particulièrement utiles pour tester une application utilisant des requêtes distribuées sur un réseau comportant un seul serveur. Les serveurs liés en boucle sont prévus pour le test et ne sont pas pris en charge pour de nombreuses opérations, telles que les transactions distribuées.