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 ?

Odpowiedzi:


229

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

ALTER USER OrphanUser WITH LOGIN = correctedLoginName;

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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.