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 ?

Respuestas:


229

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

ALTER USER OrphanUser WITH LOGIN = correctedLoginName;

¿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.


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.