Serveurs distants

S’applique à :SQL Server

Les serveurs distants sont pris en charge dans SQL Server uniquement pour des raisons de compatibilité descendante. Il est préférable d'utiliser plutôt des serveurs liés dans les nouvelles applications. Pour plus d’informations, consultez Serveurs liés (moteur de base de données).

Une configuration de serveur distant permet à un client connecté à une instance de SQL Server d’exécuter une procédure stockée sur une autre instance de SQL Server sans qu’il soit nécessaire d’établir une connexion distincte. Le serveur auquel le client est connecté accepte donc la demande du client et l'envoie au serveur distant, pour le compte du client. Le serveur distant traite la demande et renvoie les résultats au serveur d'origine, qui à son tour transmet les résultats au client. Lors de l'élaboration d'une configuration de serveur distant, la mise en œuvre de la sécurité doit être étudiée avec soin.

Si vous voulez élaborer une configuration de serveur afin d'exécuter des procédures stockées sur un autre serveur mais que vous ne disposez pas de configurations de serveur distant existantes, utilisez des serveurs liés en remplacement des serveurs distants. Les procédures stockées et les requêtes distribuées sont autorisées pour les serveurs liés ; en revanche, seules les procédures stockées sont autorisées pour les serveurs distants.

Informations détaillées sur les serveurs distants

Les serveurs distants sont installés par paires. Pour constituer une paire de serveurs distants, configurez les deux serveurs afin qu'ils se reconnaissent mutuellement en tant que serveurs distants.

La plupart du temps, vous n'avez pas à modifier les options de configuration des serveurs distants. SQL Server Détermine les valeurs par défaut sur les ordinateurs locaux et distants afin de permettre les connexions de serveur distant.

Pour que l’accès aux serveurs distants fonctionne, l’option de configuration remote access doit avoir la valeur 1 tant sur les ordinateurs locaux que sur les ordinateurs distants. (valeur par défaut). remote access contrôle les connexions à partir des serveurs distants. Vous pouvez réinitialiser cette option de configuration à l’aide de la procédure stockée Transact-SQL sp_configure ou de SQL Server Management Studio. Pour définir cette option dans SQL Server Management Studio, utilisez l’option Autoriser les accès distants à ce serveur dans la page Connexions de la boîte de dialogue Propriétés du serveur. Pour accéder à la page Connexions de la boîte de dialogue Propriétés du serveur , dans l’Explorateur d’objets, cliquez avec le bouton droit sur le nom du serveur, puis cliquez sur Propriétés. Dans la page Propriétés du serveur , cliquez sur la page Connexions .

À partir du serveur local, vous pouvez désactiver une configuration de serveur distant pour empêcher les utilisateurs situés sur le serveur distant d'accéder à ce serveur local auquel il est couplé.

Sécurité des serveurs distants

Pour permettre les appels de procédures à distance (RPC) sur un serveur distant, vous devez définir des mappages de connexion sur le serveur distant et éventuellement sur le serveur local exécutant une instance SQL Server. Par défaut, les appels de procédure distante sont désactivés dans SQL Server. Cette configuration accroît la sécurité de votre serveur en réduisant sa zone de surface attaquable. Vous devez activer cette fonctionnalité avant de pouvoir l'utiliser. Pour plus d’informations, consultez sp_configure (Transact-SQL).

Configuration du serveur distant

Les mappages de connexion à distance doivent être configurés sur le serveur distant. Ils permettent au serveur distant d'établir le mappage entre la connexion d'accès entrant RPC d'un serveur donné et la connexion d'accès locale. Les mappages de connexion à distance peuvent être définis à l’aide de la procédure stockée sp_addremotelogin sur le serveur distant.

Notes

L’option trusted pour sp_remoteoption n’est pas prise en charge dans SQL Server.

Configuration du serveur local

Vous ne devez pas définir de mappage de connexion sur le serveur local pour les connexions locales authentifiées par SQL Server . SQL Server utilise la connexion locale et le mot de passe pour se connecter au serveur distant. En revanche, pour les connexions authentifiés par Windows, vous devez définir un mappage de connexion locale sur un serveur local qui définit la connexion et le mot de passe à utiliser par une instance de SQL Server en cas de connexion RPC sur un serveur distant.

Pour les connexions créées par l’authentification Windows, vous devez créer un mappage vers un nom de connexion et un mot de passe à l’aide de la procédure stockée sp_addlinkedservlogin . Ce nom de connexion et ce mot de passe doivent correspondre à la connexion d’accès et au mot de passe entrants attendus par le serveur distant et créés à l’aide de sp_addremotelogin.

Notes

Lorsque c'est possible, utilisez l'authentification Windows.

Exemple de sécurité de serveur distant

Prenons les installations SQL Server suivantes : serverSend et serverReceive. serverReceive est configuré pour un mappage entre une connexion d’accès entrant du serveur serverSend, appelée Sales_Mary, et une connexion authentifiée SQL Server du serveur serverReceive, appelée Alice. Une autre connexion d’accès entrant de serverSendappelée Joeest mappée sur une connexion authentifiée SQL Server du serveur serverReceive, appelée Joe.

L’exemple de code Transact-SQL suivant illustre la configuration du serveur serverSend en vue de l’exécution de RPC sur le serveur serverReceive.

--Create remote server entry for RPCs   
--from serverSend in serverReceive.  
EXEC sp_addserver 'serverSend';  
GO  
  
--Create remote login mapping for login 'Sales_Mary' from serverSend  
--to Alice.  
EXEC sp_addremotelogin 'serverSend', 'Alice', 'Sales_Mary';  
GO  
--Create remote login mapping for login Joe from serverReceive   
--to same login.  
--Assumes same password for Joe in both servers.  
EXEC sp_addremotelogin 'serverSend', 'Joe', 'Joe';  
GO  

Sur serverSend, un mappage de connexion locale est créé pour une connexion authentifiée Windows Sales\Mary à une connexion Sales_Mary. Aucun mappage local n'est nécessaire pour la connexion Joepuisque le même nom de connexion et le même mot de passe sont utilisés par défaut et que le serveur serverReceive possède un mappage pour la connexion Joe.

--Create a remote server entry for RPCs from serverReceive.  
EXEC sp_addserver 'serverReceive';  
GO  
--Create a local login mapping for the Windows authenticated login.  
--Sales\Mary to Sales_Mary. The password should match the  
--password for the login Sales_Mary in serverReceive.  
EXEC sp_addlinkedsrvlogin 'serverReceive', false, 'Sales\Mary',  
   'Sales_Mary', '430[fj%dk';  
GO  

Affichage des propriétés des serveurs locaux ou distants

Vous pouvez utiliser la procédure stockée étendue xp_msver pour consulter les attributs des serveurs locaux ou distants. Ces attributs comprennent le numéro de version de SQL Server, le nombre de processeurs de l'ordinateur et leur type, ainsi que la version du système d'exploitation. À partir du serveur local, vous pouvez afficher les bases de données, les fichiers, les connexions et les outils d'un serveur distant. Pour plus d’informations, consultez xp_msver (Transact-SQL).

Serveurs liés (Moteur de base de données)

sp_configure (Transact-SQL)

Configurer l'option de configuration de serveur remote access

RECONFIGURE (Transact-SQL)