sp_addlinkedsrvlogin (Transact-SQL)

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

Topic link iconKonwencje składni języka Transact-SQL

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

Argumenty

  • [ @rmtsrvname = ] 'rmtsrvname'
    Is the name of a linked server that the login mapping applies to.rmtsrvname is sysname, with no default.

  • [ @useself = ] 'TRUE' | 'FALSE' | 'NULL'
    Określa, czy do łączenia się z rmtsrvname Uosabianie logowania lokalnego lub jawnie przesyłanie identyfikatora logowania i hasło. Typ danych varchar(8), z domyślną wartość TRUE.

    Wartość TRUE Określa, że identyfikatory logowania używać własnych poświadczenia do łączenia się z rmtsrvname, z rmtuser i rmtpassword argumenty są ignorowane. Określa, że wartość FAŁSZ rmtuser i rmtpassword argumenty są używane do łączenia się z rmtsrvname dla określonego locallogin. Jeśli rmtuser i rmtpassword są także zestaw wartość null, bez logowania i hasła jest używana do łączenia się z serwer połączony.

  • [ @locallogin = ] 'locallogin'
    Is a login on the local server.locallogin is sysname, with a default of NULL.Wartość NULL oznacza, że to wpisu odnosi się do wszystkich identyfikatorów logowania lokalnego, łączących się z rmtsrvname. Jeśli nie jest NULL, locallogin może być SQL Server Identyfikator logowania lub identyfikatora logowania systemu Windows. Identyfikator logowania systemu Windows musi mieć udzielono dostępu do SQL Server albo bezpośrednio lub za pomocą jego przynależności do grupy systemu Windows uprawnienia.

  • [ @rmtuser = ] 'rmtuser'
    Logowania zdalne jest używany do łączenia się z rmtsrvname Kiedy @ useself ma wartość FAŁSZ. When the remote server is an instance of SQL Server that does not use Windows Authentication, rmtuser is a SQL Server login.rmtuser is sysname, with a default of NULL.

  • [ @rmtpassword = ] 'rmtpassword'
    Is the password associated with rmtuser.rmtpassword is sysname, with a default of NULL.

Wartości kodów powrotnych

0 (sukces) lub 1 (brak)

Remarks

Gdy użytkownik loguje się do serwera lokalnego i wykonuje kwerendę rozproszonym, który uzyskuje dostęp do tabela serwer połączony, lokalny serwer musi zalogować się do serwer połączony w imieniu użytkownika, aby uzyskać dostęp do tej tabela.Aby określić poświadczenia logowania, korzystającej z serwera lokalnego do logowania się do serwer połączony za pomocą sp_addlinkedsrvlogin.

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.

Wykonując sp_addlinkedserver domyślnego odwzorowania między wszystkimi logowania na serwerze lokalnym i zdalnym logowania serwer połączony jest tworzona automatycznie.Mapowanie domyślne stwierdza, że SQL Server używa poświadczenia użytkownika lokalnego logowania podczas nawiązywania połączenia z serwer połączony ze strony logowania. Jest to równoważne wykonywanie sp_addlinkedsrvlogin użyciu @ useself ustawiona na true dla serwer połączony bez określania nazwy użytkownika lokalnego. Za pomocą sp_addlinkedsrvlogin tylko zmiana domyślnego odwzorowania lub dodać nowe mapowania dla określonych logowania lokalnego.Aby usunąć mapowanie domyślne lub inne mapowanie, należy użyć sp_droplinkedsrvlogin.

Zamiast używać sp_addlinkedsrvlogin utworzyć mapowanie do wcześniej określonego identyfikatora logowania SQL Server System Windows poświadczenia zabezpieczeń (nazwa logowania systemu Windows i hasło) użytkownika wydającego kwerendy automatycznie można użyć do łączenia się z serwer połączony, gdy wszystkie następujące warunki:

  • Użytkownik jest połączony z SQL Server za pomocą trybie uwierzytelnianie Windows.

  • Delegowanie konta zabezpieczeń znajduje się na klient i serwera wysyłającego.

  • Dostawca obsługuje tryb uwierzytelnianie systemu Windows, na przykład SQL Server z systemem Windows.

Uwaga

Delegowanie nie ma być włączone dla scenariuszy pojedynczy przeskok, ale jest to wymagane dla przeskoków wielu scenariuszy.

Po uwierzytelnianie została wykonana przez połączonego serwera za pomocą mapowania, które są definiowane przez wykonywanie sp_addlinkedsrvlogin na lokalne wystąpienie SQL Server, uprawnienia do poszczególnych obiektów w zdalnej bazie danych są określane przez serwer połączony serwera lokalnego.

sp_addlinkedsrvlogin nie mogą być wykonywane w programie w transakcji zdefiniowanej przez użytkownika.

Uprawnienia

Wymaga ALTER LOGIN bez uprawnień na serwerze.

Przykłady

A.Łączenie wszystkich identyfikatorów logowania lokalnego do serwer połączony za pomocą poświadczenia użytkownika

Poniższy przykład tworzy mapowania, aby upewnić się, że wszystkie identyfikatory logowania do serwera lokalnego połączenia do serwer połączony za pośrednictwem Accounts przy użyciu poświadczenia użytkownika.

EXEC sp_addlinkedsrvlogin 'Accounts'

Or

EXEC sp_addlinkedsrvlogin 'Accounts', 'true'

Uwaga

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

B.Łączenie z określonego identyfikatora logowania do serwer połączony korzystając z poświadczenia innego użytkownika

Poniższy przykład tworzy mapowania, aby upewnić się, że użytkownik systemu Windows Domain\Mary łączy się za pośrednictwem serwer połączony Accounts przy użyciu identyfikatora logowania MaryP i hasła d89q3w4u.

EXEC sp_addlinkedsrvlogin 'Accounts', 'false', 'Domain\Mary', 'MaryP', 'd89q3w4u'
Security noteSecurity Note:

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