Roles personalizados para migraciones de SQL Server a Azure SQL Managed Instance con ADS

En este artículo se explica cómo configurar un rol personalizado en Azure para migraciones de bases de datos de SQL Server. El rol personalizado se configura solo con los permisos necesarios para iniciar y ejecutar migraciones mediante una instancia de Azure Database Migration Service, destinada a Azure SQL Managed Instance. Para aprovisionar una nueva instancia de Azure Database Migration Service, el usuario debe tener asignado el rol Propietario o Colaborador en el nivel de suscripción.

Los usuarios también pueden utilizar los siguientes roles integrados:

  • Rol de migración de SqlVM
  • Rol de migración de SqlMI
  • Rol de migración de SqlDB

Estos roles integrados permiten a los usuarios:

  1. Crear y eliminar instancias del Database Migration Service (DMS).
  2. Ejecuta migraciones de bases de datos usando DMS.

Nota:

Para configurar la migración mediante el portal de Azure, también necesitas acceso de Lector de datos de blobs de almacenamiento en el contenedor de blobs.

Para un puesto personalizado :

Use la sección AssignableScopes de la cadena JSON de definición de roles para controlar dónde aparecen los permisos en la interfaz de usuario Agregar asignación de roles de Azure Portal. Para no sobrecargar la interfaz de usuario con roles adicionales, puede ser conveniente definir el rol a nivel del grupo de recursos o incluso a nivel del recurso. El recurso al que se aplica el rol personalizado no realiza la asignación efectiva del rol.

{
    "properties": {
        "roleName": "DmsCustomRoleDemoForMI",
        "description": "",
        "assignableScopes": [
            "/subscriptions/<storageSubscription>/resourceGroups/<storageAccountRG>",
            "/subscriptions/<ManagedInstanceSubscription>/resourceGroups/<managedInstanceRG>",
            "/subscriptions/<DMSSubscription>/resourceGroups/<dmsServiceRG>"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.Storage/storageAccounts/read",
                    "Microsoft.Storage/storageAccounts/listkeys/action",
                    "Microsoft.Storage/storageAccounts/blobServices/read",
                    "Microsoft.Storage/storageAccounts/blobServices/write",
                    "Microsoft.Storage/storageAccounts/blobServices/containers/read",
                    "Microsoft.Sql/managedInstances/read",
                    "Microsoft.Sql/managedInstances/write",
                    "Microsoft.Sql/managedInstances/databases/read",
                    "Microsoft.Sql/managedInstances/databases/write",
                    "Microsoft.Sql/managedInstances/databases/delete",
                    "Microsoft.DataMigration/locations/operationResults/read",
                    "Microsoft.DataMigration/locations/operationStatuses/read",
                    "Microsoft.DataMigration/locations/sqlMigrationServiceOperationResults/read",
                    "Microsoft.DataMigration/databaseMigrations/write",
                    "Microsoft.DataMigration/databaseMigrations/read",
                    "Microsoft.DataMigration/databaseMigrations/delete",
                    "Microsoft.DataMigration/databaseMigrations/cancel/action",
                    "Microsoft.DataMigration/databaseMigrations/cutover/action",
                    "Microsoft.DataMigration/sqlMigrationServices/write",
                    "Microsoft.DataMigration/sqlMigrationServices/delete",
                    "Microsoft.DataMigration/sqlMigrationServices/read",
                    "Microsoft.DataMigration/sqlMigrationServices/listAuthKeys/action",
                    "Microsoft.DataMigration/sqlMigrationServices/regenerateAuthKeys/action",
                    "Microsoft.DataMigration/sqlMigrationServices/deleteNode/action",
                    "Microsoft.DataMigration/sqlMigrationServices/listMonitoringData/action",
                    "Microsoft.DataMigration/sqlMigrationServices/listMigrations/read",
                    "Microsoft.DataMigration/sqlMigrationServices/MonitoringData/read",
                    "Microsoft.DataMigration/SqlMigrationServices/tasks/read",
                    "Microsoft.DataMigration/SqlMigrationServices/tasks/write",
                    "Microsoft.DataMigration/SqlMigrationServices/tasks/delete",
                    "Microsoft.DataMigration/sqlMigrationServices/validateIR/action"
                ],
                "notActions": [],
                "dataActions": [
                  "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read"
                ],
                "notDataActions": []
            }
        ]
    }
}

Puede usar Azure Portal, Azure PowerShell, la CLI de Azure o la API de REST de Azure para crear los roles.

Para obtener más información, vea Creación o actualización de roles personalizados de Azure mediante Azure Portal y Roles personalizados de Azure.

Nota:

Al migrar a Azure SQL Managed Instance o Azure SQL Virtual Machine a través del portal Azure, asegúrate de que el usuario iniciado sesión tiene acceso a Storage Blob Data Reader en el contenedor de blob que contiene los archivos de respaldo. Este permiso es necesario para enumerar carpetas y archivos en el contenedor de blobs durante la configuración de la migración solo mediante Azure Portal.

Descripción de los permisos necesarios para migrar a Azure SQL Managed Instance

Acción de permiso Descripción
Microsoft.Storage/storageAccounts/read Devuelve la lista de cuentas de almacenamiento u obtiene las propiedades de la cuenta de almacenamiento especificada.
Microsoft.Storage/storageAccounts/listkeys/action Devuelve las claves de acceso de la cuenta de almacenamiento especificada.
Microsoft.Storage/storageAccounts/blobServices/read Enumerar servicios Blob.
Microsoft.Storage/storageAccounts/blobServices/write Devuelve el resultado de la operación de establecimiento de las propiedades del servicio Blob.
Microsoft.Storage/storageAccounts/blobServices/containers/read Devuelve una lista de contenedores.
Microsoft.Sql/managedInstances/read Devuelve la lista de instancias administradas u obtiene las propiedades de una instancia administrada específica.
Microsoft.Sql/managedInstances/write Crea una instancia administrada con los parámetros especificados o actualiza las propiedades o etiquetas de la instancia administrada especificada.
Microsoft.Sql/managedInstances/databases/read Obtiene una base de datos administrada ya existente.
Microsoft.Sql/managedInstances/databases/write Crea una nueva base de datos o actualiza una ya existente.
Microsoft.Sql/managedInstances/databases/delete Elimina una base de datos administrada ya existente.
Microsoft.DataMigration/locations/operationResults/read Obtiene el estado de una operación de larga ejecución relacionada con una respuesta "202 Aceptado".
Microsoft.DataMigration/locations/operationStatuses/read Obtiene el estado de una operación de larga ejecución relacionada con una respuesta "202 Aceptado".
Microsoft.DataMigration/locations/sqlMigrationServiceOperationResults/read Recuperar los resultados de la operación del servicio.
Microsoft.DataMigration/databaseMigrations/write Crea o actualiza un recurso de migración de base de datos.
Microsoft.DataMigration/databaseMigrations/read Recupera el recurso de migración de base de datos.
Microsoft.DataMigration/databaseMigrations/delete Elimina un recurso de migración de base de datos.
Microsoft.DataMigration/databaseMigrations/cancel/action Detiene la migración en curso de la base de datos.
Microsoft.DataMigration/databaseMigrations/cutover/action Operación de cambio de acceso para la migración en línea de la base de datos.
Microsoft.DataMigration/sqlMigrationServices/write Crea o cambia las propiedades de un servicio existente.
Microsoft.DataMigration/sqlMigrationServices/delete Elimina un servicio existente.
Microsoft.DataMigration/sqlMigrationServices/read Recupera los detalles del servicio de migración.
Microsoft.DataMigration/sqlMigrationServices/listAuthKeys/action Recupera la lista de claves de autenticación.
Microsoft.DataMigration/sqlMigrationServices/regenerateAuthKeys/action Regenera las claves de autenticación.
Microsoft.DataMigration/sqlMigrationServices/deleteNode/action Cancele el registro del nodo de IR.
Microsoft.DataMigration/sqlMigrationServices/listMonitoringData/action Enumera los datos de supervisión de todas las migraciones.
Microsoft.DataMigration/sqlMigrationServices/listMigrations/read Enumera las migraciones del usuario.
Microsoft.DataMigration/sqlMigrationServices/MonitoringData/read Recupera los datos de supervisión.
Microsoft.SqlVirtualMachine/sqlVirtualMachines/read Recupera los detalles de la máquina virtual de SQL.
Microsoft.SqlVirtualMachine/sqlVirtualMachines/write Crea una máquina virtual de SQL o cambia las propiedades de una existente.
Microsoft.DataMigration/SqlMigrationServices/tasks/read Obtención de detalles de la tarea del servicio de migración
Microsoft.DataMigration/SqlMigrationServices/tasks/write Tarea Crear o actualizar el servicio de migración
Microsoft.DataMigration/SqlMigrationServices/tasks/delete Eliminar tarea del servicio de migración
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read Leer contenedores de blobs en una cuenta de almacenamiento de Azure
Microsoft.DataMigration/sqlMigrationServices/validateIR/action Valida el tiempo de ejecución de integración.

Puedes obtener un script de ejemplo para crear un inicio de sesión y provisionarlo con los permisos necesarios para VMware, Hyper-V o servidores físicos, usando autenticación de Windows o SQL Server.

Asignación de roles

Para asignar un rol a un identificador de aplicación o usuario:

  1. En Azure Portal, vaya al recurso.

  2. En el menú de la izquierda, seleccione Control de acceso (IAM) y, a continuación, desplácese para buscar los roles personalizados que ha creado.

  3. Seleccione los roles que quiera asignar, seleccione el identificador de aplicación o usuario y guarde los cambios.

    Ahora, el identificador de aplicación o usuario aparece en la pestaña Asignaciones de roles.