Cuando se trata de mover una base de datos de un servidor a otro, uno de los mayores desafíos es preservar los logins y usuarios de la base de datos. Si no se maneja correctamente, los logins pueden perderse durante el proceso de copia de seguridad y restauración. En este artículo, exploraremos diferentes alternativas para resolver este problema y garantizar una migración sin problemas.
Las bases de datos contenidas
SQL Server 2008 y versiones posteriores introdujeron la función de bases de datos contenidas, que le permite conectarse a una base de datos sin necesidad de un login. Al habilitar esta función, puede utilizar el usuario de la base de datos para conectarse directamente a la base de datos. Para habilitar las bases de datos contenidas, vaya a las Propiedades del servidor en SQL Server Management Studio (SSMS), navegue hasta la página Avanzado y establezca Habilitar bases de datos contenidas en Verdadero. Además, debe establecer la propiedad Tipo de contención de la base de datos que desea migrar a Parcial en la página Opciones. Esto le permitirá trabajar con logins y usuarios contenidos.
Una vez habilitado, puede crear nuevos usuarios utilizando la opción de usuario de SQL con contraseña. Esta función utiliza cuentas de SQL, así que asegúrese de configurar el modo de autenticación de SQL Server y Windows en la página Seguridad de las Propiedades del servidor. También es necesario reiniciar el servicio de SQL Server para que esta función surta efecto.
Para probar esta función, haga una copia de seguridad de su base de datos de origen y restáurela en el servidor de destino. Intente conectarse al servidor de SQL utilizando el usuario de la base de datos de SQL Server que creó. Si tiene éxito, podrá acceder a la base de datos utilizando un usuario de base de datos de SQL Server.
La tarea de transferencia de logins de SSIS
Si ya tiene una base de datos y es demasiado tarde para utilizar bases de datos contenidas, puede utilizar la tarea de transferencia de logins de SSIS. Esta tarea es útil cuando necesita personalizar el proceso de migración de la base de datos. Para comenzar, abra SQL Server Data Tools y cree un nuevo proyecto de Integration Services. Arrastre y suelte la tarea de transferencia de logins en el panel gráfico.
Especifique la conexión de origen y destino y seleccione los logins que desea transferir. Puede elegir eliminar, ignorar o omitir los logins existentes. También puede copiar los Sids de la base de datos de origen. Ejecute el paquete y, si todo es exitoso, los logins se copiarán. Sin embargo, tenga en cuenta que los logins de SQL Server se desactivarán y las contraseñas se cambiarán. Deberá habilitar y establecer nuevas contraseñas utilizando declaraciones T-SQL.
El Asistente para copiar bases de datos
El Asistente para copiar bases de datos es otra alternativa para copiar logins, y también le permite copiar toda la base de datos. Haga clic derecho en la base de datos que desea migrar en SQL Server Management Studio, seleccione Tareas y luego elija Copiar base de datos. El asistente lo guiará a través del proceso de especificar los servidores de origen y destino, así como otras opciones como desmontar y montar o utilizar el método de objeto de administración de SQL.
Puede seleccionar los logins que desea copiar y elegir si desea copiar todos los logins o seleccionarlos individualmente. El asistente creará un paquete y almacenará los eventos relacionados en el registro de eventos de Windows. Puede ejecutar el asistente para copiar bases de datos de inmediato o programarlo para que se ejecute en una fecha y hora específicas. Tenga en cuenta que la cuenta de servicio del Agente de SQL Server puede necesitar una cuenta de proxy para ejecutar el trabajo correctamente.
Los scripts de Microsoft
Si está utilizando SQL Server 2008 o versiones anteriores, los scripts de Microsoft pueden ser una buena alternativa. Sin embargo, para SQL Server 2012 y versiones posteriores, se recomienda utilizar las otras alternativas. Los scripts de Microsoft le permiten recuperar las contraseñas, pero tenga en cuenta que esta no es una opción fácil de usar. Deberá crear procedimientos almacenados, ejecutarlos y ejecutar los scripts en el servidor de destino.
Conclusión
En este artículo, hemos explorado cuatro formas diferentes de migrar bases de datos de SQL Server con logins. Cada método tiene sus propias ventajas y es adecuado para diferentes escenarios:
- Las bases de datos contenidas: Ideal para trabajar con múltiples logins de SQL Server y evitar problemas de migración.
- La tarea de transferencia de logins de SSIS: Recomendada para personalizar el proceso de migración y adecuada tanto para logins de Windows como de SQL Server.
- El Asistente para copiar bases de datos: Excelente opción para migrar bases de datos con logins de Windows y recomendada para aquellos sin experiencia en SSIS.
- Los scripts de Microsoft: Una buena alternativa para SQL Server 2008 y versiones anteriores, pero no recomendada para versiones más nuevas.
Al comprender estas alternativas, puede elegir el método que mejor se adapte a sus necesidades y garantizar una migración exitosa de sus bases de datos de SQL Server.