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

Применимо к:SQL Server

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

Настройка удаленного сервера позволяет клиенту, подключившемуся к одному экземпляру 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 настраивается для сопоставления имени входа serverSend, поступающего от serverSend, с прошедшим проверку в SQL Server с помощью serverReceive, поступающего от Alice. Другое входное имя входа из serverSend, с именем Joe, сопоставлено с именем входа, прошедшим проверку подлинности SQL Server , в serverReceive, с именем Joe.

В следующем примере кода 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).

Связанные серверы (компонент Database Engine)

sp_configure (Transact-SQL)

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

RECONFIGURE (Transact-SQL)