Les serveurs liés permettent de soumettre une instruction T-SQL sur une instance SQL Server, qui renvoie des données d’autres instances SQL Server. Un serveur lié permet de joindre des données de plusieurs instances SQL Server à l’aide d’une seule instruction T-SQL lorsque des données existent sur plusieurs bases de données sur différentes instances SQL. En utilisant un serveur lié pour récupérer les données de plusieurs instances SQL, la seule chose à faire est de se connecter à une instance SQL.,
Il existe deux façons de configurer le serveur lié dans SSMS. Une façon est d’utiliser la procédure stockée du système sp_addlinkedserver et une autre est d’utiliser L’interface graphique SQL Server Management Studio (SSMS).
dans cet article sera expliqué comment configurer un serveur lié à l’aide d’une source de données SQL Server. Vous trouverez plus d’informations sur d’autres sources de données sur ce lien.,
pour voir tous les serveurs liés créés dans SSMS, sous Explorateur D’objets, choisissez le dossier Server Objects et développez le dossier Linked Servers:
pour créer un serveur lié dans SSMS, faites un clic droit sur le dossier Linked Servers et dans le menu contextuel, sélectionnez L’option New Linked Server:
la nouvelle boîte de dialogue serveur lié apparaît:
dans cette boîte de dialogue, le nom D’un serveur lié et le type de serveur doivent être identifiés., Les serveurs liés peuvent être définis pour différents types de sources de données si le bouton radio autre source de données est choisi. Pour les besoins de cet article, le bouton radio SQL Server sous la section Type de serveur sera choisi et dans la zone de texte serveur lié, un nom du serveur sera entré:
Si le type SQL Server est choisi pour configurer un serveur lié SQL Server, le nom spécifié dans la zone de texte serveur lié doit être le nom du serveur SQL distant.,
Si une instance SQL Server est une instance par défaut, saisissez le nom de l’ordinateur qui héberge L’instance de SQL Server (par exemple WSERVER2012). Si le serveur SQL est une instance nommée, tapez le nom de l’ordinateur et le nom de l’instance séparés par une barre oblique (par exemple WSERVER2012\SQLEXPRESS).,
sinon, l’erreur suivante peut se produire lorsque le bouton OK est enfoncé:
Pour définir comment un utilisateur s’authentifierait auprès de L’instance WSERVER2012\SQLEXPRESS, sous la section Sélectionner une page dans le coin supérieur gauche de la boîte de dialogue Nouveau serveur lié, sélectionnez L’élément de sécurité:
ici, différentes façons d’authentifier le serveur lié peuvent être définies.
sous les mappages de connexion du serveur Local à la connexion du serveur distant, deux façons de se connecter localement à une connexion distante peuvent être définies., Une façon est d’associer une connexion locale avec une connexion à distance et l’autre consiste à usurper l’identité.
connexion locale
dans le champ Connexion locale, seront listées toutes les connexions locales. La connexion locale peut être une connexion locale D’authentification SQL Server:
ou une connexion D’authentification Windows:
maintenant, en cliquant sur le bouton OK dans la boîte de dialogue Nouveau serveur lié, le message d’erreur suivant 66fd1f46fd »>les mappages de connexion doivent être usurpés ou avoir un nom de connexion distant.,
Voir l’image ci-dessous:
Cela se produit parce que le Usurper l’identité d’case à cocher n’est pas cochée.
Usurper l’identité
la case à cocher Usurper l’identité lorsqu’elle est cochée transmet les informations de connexion locales au serveur lié., Pour L’authentification SQL Server, le même login avec les informations d’identification exactes doit exister sur le serveur lié, sinon lorsqu’il est connecté au serveur avec L’authentification SQL Server, la liste des bases de données sous le dossier catalogues peut ressembler à ceci:
pour les connexions Windows, le login doit être un login valide sur le serveur lié. Afin d’utiliser l’emprunt d’identité, la délégation entre le serveur local et le serveur lié doit être définie.
créons un serveur lié à l’aide de la connexion Windows locale., Dans la liste déroulante connexion locale, choisissez la connexion Windows locale et cochez la case Usurper l’identité et appuyez sur le bouton OK:
sous le dossier catalogues, toutes les bases de données situées sur le serveur lié seront répertoriées:
l’option utilisateur distant permet aux utilisateurs du serveur SQL local de se connecter au serveur SQL lié même si leurs informations d’identification ne sont pas présentes sur le serveur distant en utilisant les informations d’identification de l’utilisateur qui existe sur le serveur distant., Fondamentalement, il permet aux connexions locales de se connecter à un serveur distant en tant que connexion différente qui doit exister sur un serveur distant.
Mot de passe à Distance
Spécifier le mot de passe de l’utilisateur distant.
dans la liste déroulante connexion locale, choisissez une connexion locale qui doit correspondre à une connexion distante. Dans le champ Utilisateur Distant, entrez le nom de l’utilisateur distant qui existe sur le serveur distant et dans le mot de passe distant déposé, entrez un mot de passe de cet utilisateur distant.,e7″>
de plus, dans la boîte de dialogue du serveur lié, on peut identifier comment les connexions qui ne sont pas définies dans la liste des mappages de connexion du serveur Local vers le serveur distant se connecteront au serveur lié, pour cela il y a quatre options qui peuvent être utilisées et elles sont situées sous la section pour une connexion non définie dans la liste ci-dessus, les connexions seront:
/h2>
si cette case d’option est choisie, tous les utilisateurs qui ne sont pas identifiés dans la liste de mappages de connexion de serveur local à serveur distant ne peuvent pas établir la connexion au serveur lié.,
Par exemple, si la connexion avec un compte différent (par exemple, Ben) que pas défini dans le mappage de connexion de la liste de la liste des bases de données sous le dossier Catalogues ressemblera à ceci:
Si vous essayez d’exécuter une requête de serveur lié:
1
2
3
|
SELECT * from .AdventureWorks2014.Ressourceshumaines.,Employé (e) s
|
Le résultat suivant s’affiche:
Msg 7416, Niveau 16, État 1, Ligne 1
l’Accès à distance au serveur est refusé car pas de login-mapping existe.
be made without using a security context
L’option Be made without using a security context est utilisée pour se connecter à des sources de données qui ne nécessitent aucune authentification, par exemple comme un fichier texte., Lorsque cette option est sélectionnée pour se connecter à un serveur lié, aura le même effet que la sélection de l’option « Ne pas être fait”.
Si vous essayez d’exécuter une requête serveur liée:
The following message e may appear:
OLE DB provider « SQLNCLI11” for linked server « WSERVER2012\SQLEXPRESS” returned message « Invalid authorization specification”.
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider « SQLNCLI11” for linked server « WSERVER2012\SQLEXPRESS” reported an error. Authentication failed.,
Msg 7303, niveau 16, état 1, Ligne 1
impossible d’initialiser l’objet source de données du fournisseur OLE DB « SQLNCLI11” pour le serveur lié « WSERVER2012\SQLEXPRESS”.
être fait en utilisant le contexte de sécurité actuel de la connexion
Si cette option est choisie, elle transmettra le contexte de sécurité actuel de la connexion locale à la connexion distante. Si L’authentification Windows est utilisée, les informations d’identification windows seront utilisées pour se connecter à un serveur SQL distant. Si L’authentification SQL Server est utilisée, les informations d’identification de connexion locales seront transmises à SQL Server distant., Remarque, pour établir la connexion au serveur distant avec succès, l’utilisateur, avec les mêmes informations d’identification doit exister sur le serveur distant autrement lors de l’exécution d’une requête de serveur lié:
1
2
3
|
SELECT * from .AdventureWorks2014.Ressourceshumaines.,Employé (e) s
|
Le message suivant s’affiche:
Msg 18456, Niveau 14, État 1, Ligne 1
échec de la Connexion de l’utilisateur ‘Ben’.
être fait en utilisant ce contexte de sécurité
la quatrième option dans la section pour une connexion non définie dans la liste ci-dessus, connections will est faite en utilisant ce contexte de sécurité., Dans les champs connexion distante et avec mot de passe, Entrez les informations d’identification de la connexion D’authentification SQL Server qui existent sur un serveur distant, sinon l’erreur suivante peut se produire:
le dernier élément du menu sélectionner une page est L’élément Options du serveur. Lorsque vous sélectionnez cette option, la fenêtre suivante s’affiche:
Ici, des options supplémentaires pour le serveur lié peut être vu ou de l’ensemble.
compatible avec le classement
La première option est L’option compatible avec le classement., Cette option est utilisée pour déterminer si le serveur lié a le même classement que le serveur local. Cette option ne doit être définie sur True que si l’on sait que le serveur lié a le même classement que le local, sinon elle doit être définie sur False (par défaut).
accès aux données
Cette option est utilisée pour autoriser / refuser l’accès aux données du serveur lié. Si cette option est définie sur False, l’accès à distance sera refusée. Cette option est utile pour désactiver temporairement l’accès à un serveur distant., Le message suivant apparaît lorsque vous exécutez une requête de serveur liée et que cette option est définie sur False:
Msg 7411, niveau 16, état 1, Ligne 1
le serveur ‘WSERVER2012\SQLEXPRESS’ n’est pas configuré pour L’accès aux données.
par défaut, L’option est définie sur True
RPC et RCP Out
ce RCP (Remote Procedure Call) est utilisé pour permettre l’accès aux procédures distantes à appeler à partir du serveur lié ou à être appelé vers le serveur lié.,
Si ces options sont définies sur False, l’erreur suivante apparaîtra lorsque certaines procédures du serveur lié sont appelées:
Msg 7411, niveau 16, état 1, Ligne 4
le serveur ‘WSERVER2012\SQLEXPRESS’ n’est pas configuré pour RPC.,
par défaut, la valeur False est définie pour les options RPC et RCP Out
Use Remote Collation
lorsque cette option est définie sur True, la collection de colonnes distantes sera utilisée et la collection spécifiée dans le nom du classement déposé sera utilisée pour les sources de données qui ne sont pas des sources de données SQL Server, mais si L’option est définie sur False, le classement pour le serveur local sera utilisé. Par défaut, est défini sur False.,
nom du classement
Si le fichier Use Remote classement est défini sur True, cette option est utilisée pour spécifier le nom du classement du serveur lié pour la source de données qui n’est pas une source de données SQL Server. Lorsque vous choisissez un nom de classement, il doit s’agir d’un classement pris en charge par SQL Server.
délai D’attente de connexion
Cette option est utilisée pour définir la durée maximale d’attente du serveur local pour obtenir une connexion à L’instance SQL Server du serveur lié. Si 0 (Zéro) est défini, l’option Serveur temporisation de connexion à distance est utilisée. Par défaut, 10 secondes sont définies pour cette option., Remarque, la valeur par défaut pour SQL Server 2008 est de 20 secondes.
Query Timeout
Cette option est utilisée pour définir le temps, en secondes, qu’un processus distant peut prendre avant l’expiration du délai. La valeur par défaut est de 600 secondes (10 minutes). Pour désactiver le délai d’attente de la requête, mettez 0 (zéro) dans ce champ et la requête attendra qu’elle soit terminée.
Distributor
dans cette option, il peut être spécifié si le serveur lié participe à la réplication en tant qu’éditeur de distribution.,
le distributeur est une instance de base de données, qui agit comme un magasin pour les données spécifiques à la réplication associées à un ou plusieurs éditeurs
Publisher
dans cette option, il peut être défini si le serveur lié est un éditeur de réplication ou non. Si True, le serveur lié est un éditeur. Sinon, ne l’est pas.
L’éditeur est une instance de base de données, qui rend les données disponibles à d’autres emplacements par réplication.
Abonné
Dans cette option, il peut être spécifié si le serveur lié est un abonné de réplication ou pas.,
Un Abonné est une instance de base de données, qui reçoit des données répliquées.
Vous trouverez plus d’informations sur le distributeur, L’éditeur et L’abonné sur la page Présentation du modèle de publication de réplication.
Lazy schema validation
Cette option vérifie les modifications de schéma survenues depuis la compilation dans les tables distantes. Si cette option est définie sur False (état par défaut), SQL Server vérifie les modifications avant l’exécution d’une requête et s’il y a des modifications, il recompile la requête., Si la validation du schéma paresseux est définie sur True, un schéma de retard SQL Server vérifie les tables distantes jusqu’à l’exécution de la requête.
activer la Promotion des Transactions distribuées
Cette option est utilisée pour protéger les actions d’une procédure serveur à serveur via une transaction MS DTC (Microsoft Distributed Transaction Coordinator). Si cette option est définie sur True, l’appel d’une procédure stockée distante démarre une transaction distribuée et sollicite la transaction avec MS DTC.
maintenant, lorsque tout est réglé, cliquez sur le bouton OK dans la boîte de dialogue Nouveau serveur lié., Un serveur lié nouvellement créé apparaîtra sous le dossier serveur lié.,rks correctement, faites un clic droit sur ce serveur lié et choisissez tester la connexion:
Si une connexion avec le serveur lié est établie avec succès, la boîte de message d’information suivante apparaîtra:
sinon, un message d’erreur s’affichera établi avec succès:
interroger des données à l’aide d’un serveur lié
interroger des données à l’aide du serveur lié est un peu différent de l’interrogation des données à partir du serveur SQL local., Dans les requêtes normales, généralement, la notation en deux parties est utilisée . par exemple HumanResources.Employé:
1
2
3
|
SELECT * from HumanResources.Employé (e) s
|
Lors de l’interrogation d’une table à partir d’un serveur lié, la quatrième partie de la notation est utilisé LinkedServer.La base de données.Schéma.ObjectName., Pour obtenir des données à partir de la table Employé qui se trouve dans une base de données sur le serveur lié, en interrogeant le code ressemblera à ceci:
1
2
3
|
SELECT * from …,
|
la Suppression d’un serveur lié
Pour supprimer un serveur lié, en vertu de l’Serveurs Liés dossier, clic droit sur le serveur lié, et à partir du menu contextuel, choisissez la commande Supprimer:
Cela permettra d’ouvrir le dialogue Supprimer l’Objet:
Cliquez sur le bouton OK de la boîte de message, cliquez sur le bouton Oui:
Si tout va bien, le serveur lié sera retiré de l’Serveurs Liés dossier., Serveur lié au serveur à L’aide de Transact-SQL
- auteur
Il est un auteur prolifique de contenu faisant autorité lié à SQL Server, y compris un certain nombre d’articles” platine » (top 1% en termes de popularité et d’engagement). Son écriture couvre une gamme de sujets sur MySQL et SQL Server, y compris les serveurs distants/liés, l’importation/exportation, LocalDB, SSMS, et plus encore.
à temps partiel, Zivko aime le basket-ball, le baby-foot et la musique rock.,
Voir plus sur Marko à LinkedIn
Afficher tous les articles par Marko Zivkovic
- Comment faire pour se connecter à un serveur MySQL distant à l’aide de SSL sur Ubuntu – 28 avril 2020
- Comment faire pour installer MySQL sur Ubuntu – 10 Mars 2020
- à l’Aide de clés SSH pour se connecter à un Serveur MySQL distant – 28 novembre 2019