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 ?

Réponses:


229

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

ALTER USER OrphanUser WITH LOGIN = correctedLoginName;

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.


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.