Comment connecter une connexion SQL Server existante à un utilisateur de base de données SQL Server existant du même nom

124

Existe-t-il une commande SQL Server pour connecter un utilisateur d'une seule base de données à une connexion pour le serveur de base de données du même nom?

Par exemple:

Serveur de base de données -
Base de données d' instance par défaut : TestDB

Connexion au serveur - TestUser
Utilisateur existant sur TestDB - TestUser

Si j'essaie de faire de la TestUserconnexion un utilisateur de la TestDBbase de données, le "Utilisateur, groupe ou rôle" existe déjà.

Quelqu'un connaît-il un moyen simple d'attribuer l' utilisateur DB à la connexion au serveur ?

jkelley
la source

Réponses:

229

La nouvelle façon (à partir de SQL 2008) est d'utiliser ALTER USER

ALTER USER OrphanUser WITH LOGIN = correctedLoginName;
gbn
la source
Est-ce nouveau par SQL2008?
jkelley
2
Depuis SQL Server 2005. Le lien de Gratzy y fait référence en fait.
gbn le
Je viens de l'utiliser dans SQL Server 2012 et je peux confirmer que cela fonctionne
Ubercoder
6

Je pense que c'est sp_change_users_login. Cela fait un petit moment, mais je faisais cela lors du détachement et du rattachement de bases de données.

Gratzy
la source
1
Si la connexion SQL a été créée à l'aide d'une connexion utilisateur Windows, sp_change_users_login ne fonctionnera pas - j'ai rencontré cela aujourd'hui, ce qui m'amène à cette question. msdn.microsoft.com/en-us/library/ms174378.aspx
Tom Miller
cette méthode est désormais obsolète au profit de la ALTER USERméthode ci
Liam
@ parl est-ce que vous venez de voter pour cette réponse qui date de 8 ans et de faire référence à la réponse acceptée qui a également 8 ans et qui contient déjà les informations qui sont obsolètes?
Gratzy
2

J'ai utilisé la sp_change_users_loginprocédure pour accomplir, je pense, ce scénario.

Joelt
la source