Mappare un Utente del Database con Login di Accesso SQL

Quando in MSSQL Server si trasferisce un database da un server da un altro, può succedere che un utente definito nel database non sia stato definito come login di accesso a SQL Server. Ad esempio, posso avere un utente del database chiamato DuffyDuck che non è definito come login di accesso. Se io creo un nuovo account SQL e lo chiamo DuckDodgers, questo non corrisponderà all’utente del database DuckDodgers, e ciò sarà fonte di problemi nell’accesso al database da parte delle applicazioni.

Per ovviare al problema bisogna mappare l’utente del database e l’account SQL, e ciò è possibile grazie all’utilizzo della stored procedure sp_change_users_login. Ipotizzando di avere un database chiamato “Universo”, per collegare l’utente del database DuckDodgers al login SQL DuckDodgers, digitare la seguente istruzione T-SQL da Query Analyzer:

use universo
exec sp_change_users_login ‘update_one’, ‘DuckDodgers’, ‘DuckDodgers’
go

In questo modo ho risolto il problema.