Migración de inicios de sesión y grupos de SQL

Completado

Para una transición perfecta y segura de las bases de datos de SQL Server a Azure SQL, es esencial comprender y administrar eficazmente la migración de la información de seguridad.

Decisión de cuándo migrar los inicios de sesión y grupos de SQL

Imagine una organización grande con una infraestructura de SQL Server local sustancial que atiende a varias unidades de negocio. Cada unidad de negocio tiene su propio conjunto de inicios de sesión de SQL, roles de usuario y permisos personalizados para sus necesidades específicas. La organización decide migrar estas bases de datos a Azure SQL Database para usar las ventajas de escalabilidad de la nube.

En este escenario, migrar los inicios de sesión por adelantado, antes que la base de datos, podría introducir una complejidad innecesaria en la fase de pruebas.

La migración de inicios de sesión al final de un proyecto de migración de base de datos puede facilitar las pruebas, especialmente en escenarios complejos. Si los inicios de sesión se migran por adelantado, pueden provocar retrasos en las pruebas debido a la evolución de los esquemas de base de datos. La espera para migrar los inicios de sesión permite que las configuraciones de seguridad se alineen con la estructura final, lo que simplifica el proceso de migración, especialmente cuando la seguridad dependiente de tablas es fundamental para la protección de los datos.

Desafíos Explicación
Estructura de permisos complejos La migración de inicios de sesión en una fase posterior permite adaptar los permisos a medida que la estructura de la base de datos evoluciona durante la migración.
Retrasos en las pruebas La migración temprana de los inicios de sesión puede ralentizar las pruebas y complicar la validación de seguridad junto con los cambios de esquema.
Seguridad basada en tablas El retraso de la migración de los inicios de sesión permite ajustar las configuraciones de seguridad para que coincidan con las estructuras de base de datos finales si cambian durante la migración.

En el escenario, este enfoque le permite centrarse en garantizar que las medidas de seguridad se alineen perfectamente con la estructura de base de datos finalizada, lo que reduce las posibles complicaciones y hace que el proyecto de migración sea más fácil de administrar.

Migración de inicios de sesión mediante PowerShell o la CLI de Azure

Puede usar Azure Database Migration Service con PowerShell (módulo Az.DataMigration) o la CLI de Azure para migrar inicios de sesión y roles de servidor de SQL Server locales al destino de Azure SQL. Este proceso de migración de inicio de sesión automatiza tareas manuales, como la sincronización de inicios de sesión con sus asignaciones de usuario correspondientes y la replicación de permisos de servidor y roles de servidor.

Actualmente, la migración de inicio de sesión admite Azure SQL Managed Instance o SQL Server en destinos de máquina virtual de Azure.

  • Azure SQL Managed Instance: cuentas de Windows e inicios de sesión de SQL.
  • SQL Server en una máquina virtual de Azure - solo inicios de sesión de SQL.

Si no ha completado la migración de la base de datos y se inicia el proceso de migración de inicio de sesión, la migración de inicios de sesión y roles de servidor seguirá ocurriendo, pero las asignaciones de inicio de sesión o roles no se realizarán correctamente.

En el ejemplo siguiente se muestra cómo migrar inicios de sesión mediante PowerShell:

New-AzDataMigrationLoginsMigration `
    -SourceSqlConnectionString "<YourSourceConnectionString>" `
    -TargetSqlConnectionString "<YourTargetConnectionString>" `
    -ListOfLogin "login1" "login2" `
    -AADDomainName "<YourAADDomainName>"    # Required for Windows logins

Para la CLI de Azure, use el az datamigration login-migration comando :

az datamigration login-migration \
    --src-sql-connection-str "<YourSourceConnectionString>" \
    --tgt-sql-connection-str "<YourTargetConnectionString>" \
    --list-of-login "login1" "login2" \
    --aad-domain-name "<YourAADDomainName>"

Para un gran número de inicios de sesión, puede usar el --csv-file-path parámetro para pasar un archivo CSV que contiene la lista de inicios de sesión que se van a migrar.

Script MoveLogins

El script MoveLogins ayuda a transferir información de inicio de sesión de servidores SQL Server locales a Azure SQL Database u otras ofertas de PaaS.

El script MoveLogins habilita una búsqueda de Active Directory para los usuarios, lo que le permite obtener su nombre principal de usuario (UPN).

El script, escrito en PowerShell, genera un script de T-SQL que se puede aplicar al entorno SQL de destino para transferir inicios de sesión, usuarios de base de datos, roles y permisos. No ejecuta los comandos en el entorno de destino. Debe revisar cuidadosamente la salida del script generado antes de aplicarlo al entorno de destino.

El script genera resultados diferentes en función de si usa Azure SQL Database o Azure SQL Managed Instance. En Azure SQL Database, no se pueden crear inicios de sesión de Microsoft Entra y usuarios de base de datos relacionados; en su lugar, los usuarios de Microsoft Entra se crean en el nivel de base de datos. Para Azure SQL Managed Instance, es similar a las instancias locales de SQL Server con inicios de sesión de nivel de servidor y usuarios de base de datos.

Nota

Se recomienda empezar con PowerShell o la CLI de Azure para transferir inicios de sesión. Si tiene algún problema con estas herramientas recomendadas, puede considerar métodos alternativos como el uso del script MoveLogins.