Удаленные серверы

Область применения: SQL Server

Удаленные серверы поддерживаются только в SQL Server для обратной совместимости. Новые приложения должны использовать вместо них связанные серверы. Дополнительные сведения см. в статье Связанные серверы (ядро СУБД).

Конфигурация удаленного сервера позволяет клиенту, подключенному к одному экземпляру SQL Server, выполнять хранимую процедуру на другом экземпляре SQL Server без установления отдельного подключения. Вместо этого сервер, к которому подключен клиент, принимает запрос клиента и отправляет запрос удаленному серверу от имени клиента. Удаленный сервер обрабатывает запрос и возвращает результаты исходному серверу. Этот сервер, в свою очередь, передает результаты клиенту. При настройке удаленных серверов необходимо учитывать требования обеспечения безопасности.

Если требуется настроить серверы таким образом, чтобы хранимые процедуры выполнялись на другом сервере, и при этом не существует уже выполненной настройки удаленных серверов, используйте связанные сервера вместо удаленных серверов. Связанные сервера поддерживают выполнение и хранимых процедур, и распределенных запросов; в то же время удаленные сервера поддерживают только хранимые процедуры.

Подробности использования удаленных серверов

Удаленные сервера настраиваются парами. Чтобы настроить пару удаленных серверов, нужно настроить оба сервера таким образом, чтобы они являлись удаленными серверами друг для друга.

Обычно устанавливать параметры конфигурации удаленных серверов не требуется. Набор SQL Server задает значения по умолчанию как на локальных, так и на удаленных компьютерах, чтобы разрешить подключения к удаленному серверу.

Для функционирования доступа к удаленному серверу требуется, чтобы параметр конфигурации remote access был установлен в 1 как на локальном, так и на удаленном компьютерах. Параметр remote access управляет возможностью подключений с удаленных серверов (это значение по умолчанию). Этот параметр можно сбросить, воспользовавшись хранимой процедурой Transact-SQL sp_configure или же средой SQL Server Management Studio. Чтобы задать параметр в SQL Server Management Studio, на странице "Подключения к свойствам сервера" используйте разрешение удаленных подключений к этому серверу. Чтобы открыть вкладку Свойства соединений с сервером , в обозревателе объектов щелкните имя сервера правой кнопкой мыши и выберите Свойства. В окне Свойства сервера выберите вкладку Соединения .

На этой вкладке можно отключить удаленную настройку сервера, чтобы запретить доступ к локальному серверу пользователям удаленного сервера, с которым он составляет пару.

Безопасность удаленных серверов

Чтобы включить удаленные вызовы процедур (RPC) на удаленном сервере, необходимо настроить сопоставления входа на удаленном сервере и, возможно, на локальном сервере, на котором выполняется экземпляр SQL Server. RPC по умолчанию отключен в SQL Server. Такая конфигурация усиливает безопасность сервера, уменьшая его подверженную атакам контактную зону. Перед использованием RPC необходимо включить эту функцию. Дополнительные сведения см. в статье sp_configure (Transact-SQL).

Настройка удаленного сервера

Сопоставления удаленных имен входа должны быть настроены на удаленном сервере. При помощи данных сопоставлений удаленный сервер привязывает входящее имя входа соединения RPC от определенного сервера к локальному имени входа. Сопоставления удаленных имен входа могут быть установлены при помощи хранимой процедуры sp_addremotelogin на удаленном сервере.

Примечание.

Параметр trusted процедуры sp_remoteoption не поддерживается в SQL Server.

Настройка локального сервера

Для локальных имен входа SQL Server, прошедших проверку подлинности, не требуется настраивать сопоставление имен входа на локальном сервере. SQL Server использует локальное имя входа и пароль для подключения к удаленному серверу. Для имен входа, прошедших проверку подлинности Windows, настройте локальное сопоставление входа на локальном сервере, определяющее, какие имена входа и пароль используются экземпляром SQL Server при подключении RPC к удаленному серверу.

Для имен входа, созданных проверкой подлинности Windows, необходимо создать сопоставление имени входа и пароля при помощи хранимой процедуры sp_addlinkedservlogin . Данное имя входа и пароль должны совпадать с входящим именем входа и паролем, представленными удаленным сервером и созданными процедурой sp_addremotelogin.

Примечание.

По возможности используйте аутентификацию Windows.

Пример системы безопасности удаленного сервера

Рассмотрим эти установки SQL Server: serverSend и serverReceive. serverReceive настроен для сопоставления входящего имени входа с сервераSend с именем Sales_Mary с именем SQL Server, прошедшим проверку подлинности входа в serverReceive, с именем Alice. Другое входящее имя входа из serverSend, называемое Joe, сопоставляется с именем SQL Server, прошедшим проверку подлинности входа в serverReceive, который называется Джо.

В следующем примере кода Transact-SQL serverSend настраивается на выполнение вызовов RPC по отношению к 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  

В serverSendсопоставление местного имени входа создается для имени входа Sales\Mary , прошедшего проверку подлинности Windows, и имени входа Sales_Mary. Для имени входа Joeлокальное сопоставление не требуется, так как по умолчанию используются одинаковые имена входа и пароли, и serverReceive уже обладает сопоставлением для 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  

Просмотр свойств локального или удаленного сервера

Для просмотра атрибутов локальных и удаленных серверов можно использовать расширенную хранимую процедуру xp_msver . К этим атрибутам относятся номер версии SQL Server, тип и количество процессоров на компьютере и версия операционной системы. С локального сервера можно просматривать базы данных, файлы, имена входа и инструменты удаленного сервера. Дополнительные сведения см. в статье xp_msver (Transact-SQL).

Связанные серверы (ядро СУБД)

sp_configure (Transact-SQL)

Настройка параметра конфигурации сервера remote access

RECONFIGURE (Transact-SQL)