sp_addlinkedsrvlogin (języka Transact-SQL)

Tworzy lub aktualizuje mapowania między logowanie lokalne wystąpienie o SQL Server i konto zabezpieczeń na serwerze zdalnym.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

sp_addlinkedsrvlogin [ @rmtsrvname = ] 'rmtsrvname' 
     [ , [ @useself = ] 'TRUE' | 'FALSE' | NULL ] 
     [ , [ @locallogin = ] 'locallogin' ] 
     [ , [ @rmtuser = ] 'rmtuser' ] 
     [ , [ @rmtpassword = ] 'rmtpassword' ] 

Argumenty

  • [ @rmtsrvname = ] 'rmtsrvname'
    Jest nazwą logowania mapowanie stosuje się do serwer połączony .rmtsrvnamejest sysname, z braku domyślne.

  • [ @useself**=** ] 'TRUE' | 'FALSE' | WARTOŚĆ NULL
    Określa, czy łączyć z rmtsrvname przez personifikowania logowania lokalnego lub jawnie przesyłanie login i hasło.Typ danych jest varchar(8), domyślna wartość TRUE.

    Określa wartość TRUE logowania połączyć za pomocą własnych poświadczenia rmtsrvname, z rmtuser i rmtpassword argumenty są ignorowane.Określa wartość FALSE, że rmtuser i rmtpassword argumenty są używane do łączenia z rmtsrvname określonego locallogin.Jeśli rmtuser i rmtpassword jest również zestaw na NULL, nie logowania lub hasła jest używany do łączenia się z serwer połączony.

  • [ @locallogin = ] 'locallogin'
    Jest logowania na serwerze lokalnym.localloginjest sysname, domyślna wartość NULL.NULL oznacza, że ten wpis odnosi się do wszystkich identyfikatorów logowania lokalnego, łączących się z rmtsrvname.Jeśli nie jest NULL, locallogin może być SQL Server logowania lub logowania systemu Windows.Identyfikator logowania systemu Windows musi mieć udzielono dostępu do SQL Server bezpośrednio lub za pośrednictwem swojego członkostwa grupy systemu Windows przyznano dostęp.

  • [ @rmtuser = ] 'rmtuser'
    Jest logowania zdalnego łączenia się ze rmtsrvname po @useself jest FALSE.Gdy serwer zdalny jest wystąpienie SQL Server nie używa uwierzytelniania systemu Windows, rmtuser jest SQL Server logowania.rmtuserjest sysname, domyślna wartość NULL.

  • [ @rmtpassword = ] 'rmtpassword'
    Hasło skojarzone z rmtuser.rmtpasswordjest sysname, domyślna wartość NULL.

Wartości kodów powrotnych

0 (sukces) lub 1 (błąd)

Uwagi

Gdy użytkownik loguje się do serwera lokalnego i wykonuje zapytanie rozproszone uzyskującego dostęp do tabela na serwer połączony, lokalny serwer należy zalogować się do serwer połączony w imieniu użytkownika, aby uzyskać dostęp do tej tabela.Użycie sp_addlinkedsrvlogin Aby określić poświadczenia logowania, korzystającej z serwera lokalnego logowania do serwer połączony.

Ostrzeżenie

Aby utworzyć najlepsze planów kwerend, podczas korzystania z tabela na serwer połączony, procesor kwerend musi mieć statystyk dystrybucji danych z serwer połączony.Użytkownicy, którzy mają ograniczone uprawnienia dla każdej kolumny tabela może nie masz wystarczających uprawnień do uzyskania wszystkich statystyk użyteczne i może odbierać mniej wydajne planu kwerend i niska wydajność.Jeśli serwer połączony jest wystąpienie SQL Server, aby uzyskać wszystkie dostępne statystyki użytkownik musi własnej tabela lub element członkowski sysadmin stała rola serwera db_owner stałej rola bazy danychlub db_ddladmin stałej rola bazy danych na serwer połączony.

Domyślnego mapowania między wszystkimi logowania do serwera lokalnego i zdalnego logowania na serwer połączony jest automatycznie tworzony przez wykonywanie sp_addlinkedserver.Mapowanie domyślne stwierdza, że SQL Server używa użytkownika poświadczenia logowania lokalnego do łączenia z serwer połączony w imieniu logowania.Jest to równoważne wykonywanie sp_addlinkedsrvlogin z @useself zestaw na true serwer połączonybez określania nazwy użytkownika lokalnego.Użycie sp_addlinkedsrvlogin tylko zmienić mapowanie domyślne lub dodać nowe mapowania dla określonych identyfikatorów logowania lokalnego.Aby usunąć mapowanie domyślne lub inne mapowanie, użyj sp_droplinkedsrvlogin.

Zamiast używać sp_addlinkedsrvlogin utworzyć mapowania wstępnie logowania SQL Server automatycznie można używać zabezpieczeń systemu Windows poświadczenia (nazwy logowania systemu Windows i hasło) użytkownika wydającego kwerendy połączyć się z serwer połączony , gdy istnieją następujące warunki:

  • Użytkownik jest połączony z SQL Server przy użyciu trybu uwierzytelniania systemu Windows.

  • Delegowanie konta zabezpieczeń jest dostępna na klient i serwera wysyłającego.

  • dostawca obsługuje tryb uwierzytelniania systemu Windows; na przykład SQL Server z systemem Windows.

Ostrzeżenie

Delegacja ma włączone dla scenariuszyprzeskok jedno-, ale jest wymagane dla wielu -przeskok scenariuszy.

Po przeprowadzono uwierzytelnianie przez serwer połączony za pomocą mapowania, które są definiowane przez wykonywanie sp_addlinkedsrvlogin na lokalne wystąpienie z SQL Server, uprawnienia do poszczególnych obiektów w zdalnej bazy danych jest określany przez serwer połączony, nie na lokalnym serwerze.

sp_addlinkedsrvloginnie można wykonać z transakcji zdefiniowanej przez użytkownika.

Uprawnienia

Wymaga logowania dowolnego zmieniać uprawnienia na serwerze.

Przykłady

A.Połączenie wszystkich identyfikatorów logowania lokalnego do serwer połączony przy użyciu własnych użytkownika poświadczenia

Poniższy przykład tworzy mapowanie, aby upewnić się, że połączenie wszystkich identyfikatorów logowania na serwerze lokalnym za pośrednictwem serwer połączony Accounts przy użyciu własnych użytkownika poświadczenia.

EXEC sp_addlinkedsrvlogin 'Accounts'

Or

EXEC sp_addlinkedsrvlogin 'Accounts', 'true'

Ostrzeżenie

W przypadku jawnego mapowania dla poszczególnych identyfikatorów logowania mają one pierwszeństwo przed globalnego mapowań, które mogą istnieć dla tego serwer połączony.

B.Łączenie z określonego identyfikatora logowania do serwer połączony przy użyciu różnych poświadczenia

Poniższy przykład tworzy mapowanie upewnij się, że użytkownik systemu Windows Domain\Mary łączy się przez serwer połączony Accounts przy użyciu identyfikatora logowania MaryP i hasło d89q3w4u.

EXEC sp_addlinkedsrvlogin 'Accounts', 'false', 'Domain\Mary', 'MaryP', 'd89q3w4u'
Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

W tym przykładzie nie korzysta z uwierzytelniania systemu Windows.Hasła będą przesyłane w niezaszyfrowanej.Hasła mogą być widoczne w definicji źródło danych i skrypty, które są zapisywane na dysku, wykonywanie kopii zapasowych i plików dziennika.Nigdy nie używaj hasła administratora w tego rodzaju połączenia.Skontaktuj się z administratorem sieci dla określonego środowiska wskazówki dotyczące zabezpieczeń.