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 ?

Respostas:


229

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

ALTER USER OrphanUser WITH LOGIN = correctedLoginName;

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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.