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 ?

Antworten:


229

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

ALTER USER OrphanUser WITH LOGIN = correctedLoginName;

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.


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.