Cómo conectar un inicio de sesión de SQL Server existente a un usuario de base de datos de SQL Server existente con el mismo nombre

124

¿Existe un comando de SQL Server para conectar a un usuario de una única base de datos a un inicio de sesión para el servidor de bases de datos del mismo nombre?

Por ejemplo:

Servidor de base de datos -
Base de datos de instancia predeterminada : TestDB

Inicio de sesión en el servidor - TestUser
Usuario existente en TestDB - TestUser

Si trato de hacer que el TestUserinicio de sesión sea un usuario de la TestDBbase de datos, el "Usuario, grupo o rol" ya existe.

¿Alguien sabe de una manera fácil de asignar el usuario DB al inicio de sesión del servidor ?

jkelley
fuente

Respuestas:

229

La nueva forma (SQL 2008 en adelante) es usar ALTER USER

ALTER USER OrphanUser WITH LOGIN = correctedLoginName;
gbn
fuente
¿Es esto nuevo por SQL2008?
jkelley
2
Desde SQL Server 2005. El enlace de Gratzy se refiere a esto en realidad.
gbn
Acabo de usar esto en SQL Server 2012 y puedo confirmar que funciona
Ubercoder
6

Creo que es sp_change_users_login. Ha pasado un tiempo, pero solía hacerlo al separar y volver a conectar bases de datos.

Gratzy
fuente
1
Si el inicio de sesión SQL se creó utilizando un inicio de sesión de usuario de Windows, entonces sp_change_users_login no funcionará; me encontré con esto hoy, lo que me llevó a esta pregunta. msdn.microsoft.com/en-us/library/ms174378.aspx
Tom Miller el
este método está en desuso ahora a favor del ALTER USERmétodo anterior
Liam
@liam, ¿realmente votaste en contra de esta respuesta que tiene 8 años y hace referencia a la respuesta aceptada que también tiene 8 años y que ya contiene la información que está en desuso?
Gratzy
2

He utilizado el sp_change_users_loginprocedimiento para lograr, creo, ese escenario.

joelt
fuente