So verbinden Sie eine vorhandene SQL Server-Anmeldung mit einem vorhandenen SQL Server-Datenbankbenutzer mit demselben Namen

124

Gibt es einen SQL Server-Befehl, um einen Benutzer einer einzelnen Datenbank mit einem Login für den gleichnamigen Datenbankserver zu verbinden ?

Beispielsweise:

Datenbankserver - Standardinstanzdatenbank
: TestDB

Server Login - TestUser
Bestehender Benutzer in TestDB - TestUser

Wenn ich versuche, die TestUserAnmeldung zu einem Benutzer der TestDBDatenbank zu machen, ist der "Benutzer, die Gruppe oder die Rolle" bereits vorhanden.

Kennt jemand eine einfache Möglichkeit, den DB- Benutzer dem Server- Login zuzuweisen ?

jkelley
quelle

Antworten:

229

Der neue Weg (ab SQL 2008) ist die Verwendung von ALTER USER

ALTER USER OrphanUser WITH LOGIN = correctedLoginName;
gbn
quelle
Ist das neu gemäß SQL2008?
Jkelley
2
Seit SQL Server 2005. Gratzys Link verweist tatsächlich darauf.
Gbn
Ich habe dies gerade in SQL Server 2012 verwendet und kann bestätigen, dass es funktioniert
Ubercoder
6

Ich denke es ist sp_change_users_login. Es ist eine Weile her, aber ich habe das immer getan, wenn ich Datenbanken getrennt und wieder angehängt habe.

Gratzy
quelle
1
Wenn die SQL-Anmeldung mit einer Windows-Benutzeranmeldung erstellt wurde, funktioniert sp_change_users_login nicht. Ich bin heute darauf gestoßen, was mich zu dieser Frage führte. msdn.microsoft.com/en-us/library/ms174378.aspx
Tom Miller
Diese Methode ist jetzt zugunsten der ALTER USERoben genannten
Liam
@liam hast du diese 8 Jahre alte Antwort wirklich nur abgelehnt und auf die akzeptierte Antwort verwiesen, die ebenfalls 8 Jahre alt ist und bereits die Informationen enthält, die veraltet sind?
Gratzy
2

Ich habe das sp_change_users_loginVerfahren verwendet, um dieses Szenario zu erreichen.

Joelt
quelle