Como conectar um logon existente do SQL Server a um usuário existente do banco de dados do SQL Server com o mesmo nome

124

Existe um comando do SQL Server para conectar um usuário de um único banco de dados a um logon para o servidor de banco de dados com o mesmo nome?

Por exemplo:

Servidor de banco de dados -
banco de dados de instância padrão : TestDB

Login do servidor - TestUser
Usuário existente no TestDB - TestUser

Se eu tentar fazer do TestUserlogon um usuário do TestDBbanco de dados, o "Usuário, grupo ou função" já existe.

Alguém conhece uma maneira fácil de atribuir o usuário do banco de dados ao logon do servidor ?

jkelley
fonte

Respostas:

229

A nova maneira (SQL 2008 em diante) é usar ALTER USER

ALTER USER OrphanUser WITH LOGIN = correctedLoginName;
gbn
fonte
Isso é novo para o SQL2008?
jkelley
2
Desde o SQL Server 2005. O link de Gratzy se refere a isso, na verdade.
gbn 29/06
Eu apenas usei isso no SQL Server 2012 e posso confirmar que funciona
Ubercoder
6

Eu acho que é sp_change_users_login. Já faz um tempo, mas eu costumava fazer isso ao desanexar e reconectar os bancos de dados.

Gratzy
fonte
1
Se o logon do SQL foi criado usando um logon de usuário do Windows, o sp_change_users_login não funcionará - eu o encontrei hoje, levando-me a essa pergunta. msdn.microsoft.com/pt-br/library/ms174378.aspx
Tom Miller
este método é preterido agora em favor do ALTER USERmétodo, acima
Liam
@liam, você realmente acabou de votar esta resposta que tem 8 anos e faz referência à resposta aceita que também tem 8 anos e que já contém as informações que estão obsoletas?
Gratzy
2

Eu usei o sp_change_users_loginprocedimento para realizar, eu acho, esse cenário.

joelt
fonte