Cuando necesitamos mover una BD de un servidor a otro, pero queremos que los usuarios tengan los mismos privilegios que en el servidor actual, tenemos que llevar al nuevo servidor tambien los logins. En SQL server es diferente un login a un usuario. Un login es a nivel del Servidor y usario es a nivel de la BD. Si creamos por ejemplo el usuario fer en el servidor A, y luego creo un usuario fer en el servidor B y me llevo la BD produccion al server B el usuario fer es diferente, esto debido a que sql en realidad trabaja con SIDs en lugar del nombre del usuario. Para solucionar esto hay que llevarnos los logins al nuevo server. Como la BD se respalda con los usuarios incluidos, solo hay que recrear los usuarios con su mismo SID en el nuevo server. El script es como sigue:
Este script generara en la salida el script del procedimiento sp_addlogin para recrear los usuarios en el nuevo servidor. Solo hay que correr los scripts de creacion de los usuarios que necesitamos y listo.
Saludos.
FR.
SET NOCOUNT ON
SELECT 'EXEC sp_addlogin @loginame = ''' + loginname + ''''
,', @defdb = ''' + dbname + ''''
,', @deflanguage = ''' + language + ''''
,', @encryptopt = ''skip_encryption'''
,', @passwd ='
, cast(password AS varbinary(256))
,', @sid ='
, sid
FROM syslogins
WHERE name NOT IN ('sa')
AND isntname = 0
Este script generara en la salida el script del procedimiento sp_addlogin para recrear los usuarios en el nuevo servidor. Solo hay que correr los scripts de creacion de los usuarios que necesitamos y listo.
Saludos.
FR.
En mi computador hay muchos .mdf files. Y tengo complicaciónes con estos archivos. Pero he encontrado - reparar sql server en el Internet hace algunas jornadas. Despues el instrumento ha recuperado mis files durante un minuto y de balde como he recordado.
ResponderBorrarConsulta: El Script recrea los Logins, pero que pasa con los roles y/o permisos de cada usuario? hay que reasignarlos manualmente? Muchas gracias por la pronta respuesta.
ResponderBorrarSaludos
Si restauras las bases de datos, estos llevaran el ssid, permisos y roles, al ejecutar el script que roponen en esta pagina, haran un match entre usuarios de BD y logins del motor y ya estaran los permisos
ResponderBorrardonde generara en la salida el script
ResponderBorrarEn la misma ventana donde lo ejecutas. Saludos!
Borrar