Come connettere un account di accesso di SQL Server esistente a un utente di database di SQL Server esistente con lo stesso nome


124

Esiste un comando SQL Server per connettere un utente di un singolo database a un account di accesso per il server di database con lo stesso nome?

Per esempio:

Server database -
Database istanza predefinito : TestDB

Accesso al server - TestUser
Utente esistente su TestDB - TestUser

Se provo a rendere il TestUserlogin un utente del TestDBdatabase, "Utente, gruppo o ruolo" esiste già.

Qualcuno conosce un modo semplice per assegnare l' utente DB all'accesso al server ?

Risposte:


229

Il nuovo modo (SQL 2008 in poi) consiste nell'usare ALTER USER

ALTER USER OrphanUser WITH LOGIN = correctedLoginName;

È nuovo per SQL2008?
jkelley

2
Da SQL Server 2005. Il collegamento di Gratzy si riferisce a questo in realtà.
gbn

L'ho appena usato in SQL Server 2012 e posso confermare che funziona
Ubercoder

6

Penso che lo sia sp_change_users_login. È passato un po 'di tempo, ma lo facevo quando scollegavo e ricollegavo i database.


1
Se l'account di accesso SQL è stato creato utilizzando un accesso utente di Windows, sp_change_users_login non funzionerà: mi sono imbattuto in questo oggi, portandomi a questa domanda. msdn.microsoft.com/en-us/library/ms174378.aspx
Tom Miller

questo metodo è ora deprecato a favore del ALTER USERmetodo, sopra
Liam

@liam hai davvero appena votato questa risposta che ha 8 anni e hai fatto riferimento alla risposta accettata che ha anche 8 anni che contiene già le informazioni che sono deprecate?
Gratzy

2

Ho usato la sp_change_users_loginprocedura per realizzare, credo, quello scenario.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.