2011-05-12 19 views
7

tenemos un db en una instancia de SQLServer que se debe transferir a otra instancia (digamos dbname="testdb" con un usuario testuser).¿Cómo transferir una base de datos Y sus usuarios de un servidor SQL a otro?

Esta transferencia funciona fácilmente cuando utilizamos SQL Server Management Studio (copia de seguridad de la base de datos en la máquina de origen y restaurarla en la máquina de destino).

El problema ahora es que no puedo conectarme con el testuser en la máquina de destino. Es parte de la base de datos pero no forma parte de los inicios de sesión amplios de SQL Server.

Ahora mi pregunta. ¿Cómo puedo agregar el usuario desde el DB a los inicios de sesión de SQL Server?

¡Gracias de antemano por cualquier comentario!

Cheers, Helmut

Respuesta

3

Lo que realmente me ayudó en el extremo corría la siguiente secuencia de comandos SQL (después de la restauración)

USE testdb; 
GO 
EXEC sp_change_users_login 'Auto_Fix', 'testuser', NULL, 'testpwd'; 
GO 

Este "conecta" el usuario de base de datos "testuser" al inicio de sesión del servidor "testuser". Si no existe un inicio de sesión de servidor "testuser", se crea uno nuevo.

Para documentación ver http://msdn.microsoft.com/en-us/library/ms174378.aspx

1

I utilizadas para enfrentar la misma querida problema. La solución para su es Tienes que crear inicio de sesión en el servidor con la siguiente declaración

Utilice [testdb] --Tu nombre de la base

CREAR USUARIO [usuarioprueba] para iniciar la sesión [usuarioprueba]

aquí su [testuser] es el usuario de su base de datos y el segundo [testuser] el nombre de inicio de sesión de su servidor y con esta declaración nos mapeamos entre nosotros.

+0

Gracias! Esto suena similar a la solución que encontré. (s. http://stackoverflow.com/questions/5977114/how-to-transfer-a-database-and-its-users-from-one-sql-server-to-another/5988594#5988594) – agez

Cuestiones relacionadas