Jak połączyć istniejący login SQL Server z istniejącym użytkownikiem bazy danych SQL Server o tej samej nazwie

124

Czy istnieje polecenie SQL Server umożliwiające połączenie użytkownika pojedynczej bazy danych z loginem serwera bazy danych o tej samej nazwie?

Na przykład:

Serwer bazy danych - domyślna
baza danych instancji : TestDB

Logowanie do serwera -
użytkownik testowy Istniejący użytkownik w bazie danych TestDB - użytkownik testowy

Jeśli spróbuję, aby TestUserlogin był użytkownikiem TestDBbazy danych, „Użytkownik, grupa lub rola” już istnieje.

Czy ktoś zna łatwy sposób przypisania użytkownika DB do loginu serwera ?

jkelley
źródło

Odpowiedzi:

229

Nowy sposób (SQL 2008 roku) jest użycie ALTER USER

ALTER USER OrphanUser WITH LOGIN = correctedLoginName;
gbn
źródło
Czy jest to nowe zgodnie z SQL2008?
jkelley
2
Od SQL Server 2005. Odnośnik Gratzy odnosi się właśnie do tego.
gbn
Właśnie użyłem tego w SQL Server 2012 i mogę potwierdzić, że działa
Ubercoder
6

Myślę, że tak sp_change_users_login. Minęło trochę czasu, ale robiłem to podczas odłączania i ponownego podłączania baz danych.

Gratzy
źródło
1
Jeśli login SQL został utworzony przy użyciu loginu użytkownika Windows, to sp_change_users_login nie będzie działać - wpadłem na to dzisiaj, prowadząc mnie do tego pytania. msdn.microsoft.com/en-us/library/ms174378.aspx
Tom Miller
ta metoda jest teraz przestarzała na rzecz ALTER USERmetody powyżej
Liam,
@liam, czy naprawdę zagłosowałeś w dół na tę odpowiedź, która ma 8 lat i odwołujesz się do zaakceptowanej odpowiedzi, która również ma 8 lat i zawiera już informacje, że jest przestarzała?
Gratzy,
2

Wydaje mi się, że wykorzystałem tę sp_change_users_loginprocedurę, aby zrealizować ten scenariusz.

joelt
źródło