Поделиться через


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

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

ПримечаниеПримечание

Поддержка удаленных серверов присутствует исключительно для поддержки обратной совместимости. Новые приложения, выполняющие хранимые процедуры для удаленных экземпляров SQL Server, должны использовать связанные серверы. Дополнительные сведения см. в разделе Связь серверов.

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

Сопоставления удаленных имен входа должны быть настроены на удаленном сервере. При помощи данных сопоставлений удаленный сервер привязывает входящее имя входа соединения 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, с именем 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

В 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