Security for Linked Servers

Podczas połączenia serwer połączony (na przykład podczas przetwarzania kwerenda rozproszona) serwer wysyłający zawiera nazwy logowania i hasło, aby połączyć się z serwerem odbierającym w jego imieniu.Dla tego połączenia do pracy należy utworzyć identyfikator logowania mapowania między połączonymi serwerami przy użyciu SQL Server procedury składowane w systemie.

Może być dodany za pomocą sp_addlinkedsrvlogin i usunąć za pomocą sp_droplinkedsrvlogin mapowania logowania serwer połączony.Mapowanie logowania do serwer połączony ustanawia zdalnego logowania i hasło zdalne dla określonego serwer połączony i logowania lokalnego.Kiedy SQL Server łączy się z serwer połączony wykonać kwerenda rozproszona lub procedura przechowywana SQL Server wyszukuje wszystkie mapowania logowania dla bieżącego logowania, która jest wykonywana kwerenda lub procedura. Jeśli istnieje mapowanie logowania, SQL Server wysyła odpowiednie zdalnego logowania i hasła podczas łączenia się z serwer połączony.

Na przykład została mapowania dla serwer połączony S1, zestaw dla identyfikatora lokalnego logowania, U1, do zdalnego logowania, U2, poprzez za pomocą hasła zdalnego 8r4li034j7 USD.Podczas logowania lokalnego U1 wykonuje kwerenda rozproszona uzyskuje dostęp do tabela, przechowywane serwer połączony S1, U2 i 8r4li034j7 $ są przekazywane jako nazwę użytkownika i hasło, gdy SQL Server łączy się z serwer połączony S1.

Domyślnego odwzorowania dla konfiguracja serwer połączony ma emulować bieżące poświadczenia zabezpieczeń logowania.Ten rodzaj mapowania jest znany jako self-mapping.Po dodaniu serwer połączony za pomocą sp_addlinkedserver self-mapping domyślny zostanie dodany dla wszystkich identyfikatorów logowania lokalnego.Delegowanie konta zabezpieczeń są dostępne, a serwer połączony obsługuje uwierzytelnianie systemu Windows, self-mapping dla logowania systemu Windows, uwierzytelniony jest obsługiwana.

Uwaga

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

Jeśli delegowania konta zabezpieczeń nie jest dostępny na klient lub serwera wysyłającego lub serwer połączony / dostawca nie rozpoznaje trybie uwierzytelnianie Windows, self-mapping nie będzie działać w przypadku logowania, do których za pomocą uwierzytelnianie systemu Windows.Dlatego też należy zdefiniować mapowanie logowania lokalnego logowania, która korzysta z uwierzytelnianie systemu Windows do określonego identyfikatora logowania serwer połączony, który nie jest uwierzytelniony identyfikator logowania systemu Windows.W takim przypadek używa logowania zdalnego SQL Server Uwierzytelnianie, jeśli serwer połączone jest dane wystąpienie składnika SQL Server.

Kwerendy rozproszone podlegają uprawnień logowania zdalnego przez serwer połączony na tabela zdalnej.Jednak SQL Server nie wykonuje żadnych sprawdzania poprawności uprawnień czas kompilacji. Naruszenie uprawnienia zostaną wykryte na wykonanie kwerendy czas zgłoszone przez dostawca.

Uwaga

Aby utworzyć najlepsze planów kwerend, podczas pracy z tabelą serwer połączony, procesor kwerend muszą mieć statystyk dystrybucji danych z serwer połączony.Użytkownicy, którzy mają ograniczone uprawnienia dla każdej kolumny w tabela nie ma wystarczających uprawnień do uzyskania wszystkich statystyk użyteczne i może odbierać mniej wydajne planu kwerend i niska wydajność.Jeśli serwer połączone jest dane wystąpienie składnika SQL Server, uzyskać wszystkich dostępnych statystyk, użytkownik musi własnej tabela lub należeć do roli sysadmin stałych serwera, the db_owner ustalonego rola bazy danych lub roli db_ddladmin stałej bazy danych serwer połączony.

Testowanie serwerów połączonych

W Eksploratorze obiektów kliknij prawym przyciskiem myszy serwer połączony, a następnie kliknij przycisk Połączenie testowe.