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 MicrosoftSQL Server Native Client (PROGID: SQLNCLI10) est le fournisseur OLE DB officiel pour SQL Server.

[!REMARQUE]

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.