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

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

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

Если вы хотите настроить конфигурацию сервера для выполнения хранимых процедур на другом сервере и не иметь существующих конфигураций удаленного сервера, используйте связанные серверы вместо удаленных серверов. Для связанных серверов разрешены как хранимые процедуры, так и распределенные запросы; однако только хранимые процедуры разрешены для удаленных серверов.

Сведения о удаленном сервере

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

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

Чтобы удаленный доступ к серверу работал, параметр конфигурации удаленного доступа должен иметь значение 1 как на локальных, так и на удаленных компьютерах. (Это параметр по умолчанию.) удаленный доступ управляет именами входа с удаленных серверов. Этот параметр конфигурации можно сбросить, используя либо хранимую процедуру 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 на удаленном сервере.

Замечание

Доверенный вариант sp_remoteoption не поддерживается в SQL Server.

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

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

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

Замечание

По возможности используйте проверку подлинности Windows.

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

Рассмотрим эти установки SQL Server: serverSend и serverReceive. serverReceive настроен для сопоставления входящего логина от serverSend, называемого Sales_Mary, с аутентифицированным логином 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  

Локальное сопоставление входа создается для входа Sales\Mary, прошедшего проверку подлинности Windows, с логином Sales_Mary на serverSend. Поскольку для 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)

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

RECONFIGURE (Transact-SQL)