Udostępnij za pośrednictwem


Zabezpieczenia dla zdalnych serwerów

Aby włączyć zdalnego wywołania procedury (RPC) na serwerze zdalnym, należy zestaw up mapowania logowania na serwerze zdalnym i ewentualnie na lokalnym serwerze, na którym działa wystąpienie SQL Server.RPC jest domyślnie wyłączona w SQL Server.Tej konfiguracja zwiększa bezpieczeństwo serwera, zmniejszając jej attackable obszar powierzchni.Przed użyciem RPC, należy włączyć tę funkcję.Aby uzyskać więcej informacji, zobacz sp_configure (języka Transact-SQL).

Ostrzeżenie

Obsługa serwerów zdalnych jest zapewniana zgodność z poprzednimi wersjami.Nowe aplikacje, które należy wykonać procedury przeciwko zdalnego wystąpienia przechowywane SQL Server należy używać zamiast serwerów połączonych.Aby uzyskać więcej informacji, zobacz Łączenie serwerów.

Konfigurowanie serwera zdalnego

Mapowania logowania zdalnego muszą być zestaw się na serwerze zdalnym.Serwera zdalnego za pomocą tych mapowań, mapuje przychodzące logowania dla połączenia RPC z określonego serwera do lokalnego logowania.Mapowania zdalnego logowania może być zestaw w górę za pomocą sp_addremotelogin procedura składowana na serwerze zdalnym.

Ostrzeżenie

Zaufanych z opcjąsp_remoteoption nie jest obsługiwany w SQL Server.

Konfigurowanie serwera lokalnego

For SQL Server authenticated local logins, you do not have to set up a login mapping on the local server.SQL Server uses the local login and password to connect to the remote server.Dla logowania do uwierzytelniania systemu Windows zestaw w górę mapowanie lokalnego logowania na serwerze lokalnym, definiujący, jakie login i hasło są używane przez wystąpienie SQL Server podczas wykonywania połączenia RPC do serwera zdalnego.

Logowania do utworzonych przez uwierzytelnianie systemu Windows, należy utworzyć mapowanie do nazwy logowania i hasła przy użyciu sp_addlinkedservlogin procedura składowana.Ta nazwa logowania i hasło musi odpowiadać przychodzących login i hasło oczekiwana przez serwer zdalny utworzonych przez sp_addremotelogin.

Ostrzeżenie

Gdy jest to możliwe, należy używać uwierzytelniania systemu Windows.

Przykład zabezpieczeń serwera zdalnego

Należy wziąć pod uwagę te SQL Server instalacji: serverSend and serverReceive.serverReceive is configured to map an incoming login from serverSend, called Sales_Mary, to a SQL Server authenticated login in serverReceive, called Alice.Inny logowanie przychodzące z serverSendo nazwie Joe, jest mapowany na SQL Server uwierzytelniania logowania w serverReceive*,* o nazwie Joe.

Poniższy przykład kodu języka Transact-SQL konfiguruje serverSend do wykonywania zdalnych wywołań procedury przeciwko 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

Na serverSend, mapowanie lokalnego logowania jest tworzony dla logowania uwierzytelnionego systemu Windows Sales\Mary do identyfikatora logowania Sales_Mary.Żadne mapowanie lokalnego jest wymagane dla Joe, ponieważ jest domyślnie Użyj tej samej nazwy logowania i hasła, i serverReceive ma mapowania dla 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