Partager via


Rôles personnalisés pour les migrations de SQL Server vers des machines virtuelles Azure avec ADS

Cet article explique comment configurer un rôle personnalisé dans Azure pour les migrations de base de données SQL Server. Le rôle personnalisé est configuré uniquement avec les autorisations nécessaires pour lancer et exécuter des migrations à l’aide d’une instance d’Azure Database Migration Service, ciblant une machine virtuelle Azure. Pour provisionner une nouvelle instance d’Azure Database Migration Service, l’utilisateur doit être affecté au rôle Propriétaire ou Contributeur au niveau de l’abonnement.

Utilisez la section AssignableScopes de la chaîne JSON de définition de rôle pour contrôler l’emplacement des autorisations dans l’interface utilisateur Ajouter une attribution de rôle dans le portail Azure. Pour éviter d’encombrer l’interface utilisateur avec des rôles supplémentaires, vous pouvez définir le rôle au niveau du groupe de ressources ou même de la ressource. La ressource à laquelle le rôle personnalisé s’applique n’effectue pas l’attribution de rôle réelle.

{
    "properties": {
        "roleName": "DmsCustomRoleDemoForVM",
        "description": "",
        "assignableScopes": [
            "/subscriptions/<storageSubscription>/resourceGroups/<storageAccountRG>",
            "/subscriptions/<ManagedInstanceSubscription>/resourceGroups/<virtualMachineRG>",
            "/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.SqlVirtualMachine/sqlVirtualMachines/read",
                    "Microsoft.SqlVirtualMachine/sqlVirtualMachines/write",
                    "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"
                ],
                "notActions": [],
                "dataActions": [
                    "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read"
                ],
                "notDataActions": []
            }
        ]
    }
}

Vous pouvez utiliser le Portail Azure, Azure PowerShell, Azure CLI ou l’API REST Azure pour créer les rôles.

Pour plus d’informations, consultez Créer ou mettre à jour des rôles personnalisés Azure à l’aide du portail Azure et Rôles personnalisés Azure.

Note

Lors de la migration vers Azure SQL Managed Instance ou une machine virtuelle Azure SQL via le portail Azure, assurez-vous que l’utilisateur connecté dispose d’un accès lecteur de données blob de stockage sur le conteneur d’objets blob qui contient les fichiers de sauvegarde. Cette autorisation est nécessaire pour répertorier les dossiers et les fichiers dans le conteneur d’objets blob lors de la configuration de la migration via le portail Azure uniquement.

Description des autorisations nécessaires pour migrer vers une machine virtuelle

Action d’autorisation Descriptif
Microsoft.Storage/storageAccounts/read Retourne la liste des comptes de stockage ou récupère les propriétés du compte de stockage spécifié.
Microsoft.Storage/storageAccounts/listkeys/action Retourne les clés d’accès au compte de stockage spécifié.
Microsoft.Storage/storageAccounts/blobServices/read Liste les services blob.
Microsoft.Storage/storageAccounts/blobServices/write Retourne le résultat des propriétés du service blob de placement.
Microsoft.Storage/storageAccounts/blobServices/containers/read Retourne la liste des conteneurs.
Microsoft.Sql/managedInstances/read Retourne la liste des instances gérées ou obtient les propriétés de l’instance gérée spécifiée.
Microsoft.Sql/managedInstances/write Crée une instance gérée avec les paramètres spécifiés ou met à jour les propriétés ou balises pour l’instance gérée spécifiée.
Microsoft.Sql/managedInstances/databases/read Obtient une base de données managée existante.
Microsoft.Sql/managedInstances/databases/write Crée une base de données ou met à jour une base de données existante.
Microsoft.Sql/managedInstances/databases/delete Supprime une base de données managée existante.
Microsoft.DataMigration/locations/operationResults/read Obtient l’état d’une opération longue liée à une réponse 202 Accepté.
Microsoft.DataMigration/locations/operationStatuses/read Obtient l’état d’une opération longue liée à une réponse 202 Accepté.
Microsoft.DataMigration/locations/sqlMigrationServiceOperationResults/read Récupère les résultats de l’opération de service.
Microsoft.DataMigration/databaseMigrations/write Crée ou met à jour la ressource de migration de base de données.
Microsoft.DataMigration/databaseMigrations/read Récupère la ressource de migration de base de données.
Microsoft.DataMigration/databaseMigrations/delete Supprime la ressource de migration de base de données.
Microsoft.DataMigration/databaseMigrations/cancel/action Arrête la migration continue pour la base de données.
Microsoft.DataMigration/databaseMigrations/cutover/action Bascule l’opération de migration en ligne pour la base de données.
Microsoft.DataMigration/sqlMigrationServices/write Créer ou modifier les propriétés d’un service existant
Microsoft.DataMigration/sqlMigrationServices/delete Supprime un service existant.
Microsoft.DataMigration/sqlMigrationServices/read Récupère les détails du service de migration.
Microsoft.DataMigration/sqlMigrationServices/listAuthKeys/action Récupère la liste des clés d’authentification.
Microsoft.DataMigration/sqlMigrationServices/regenerateAuthKeys/action Régénère les clés d’authentification.
Microsoft.DataMigration/sqlMigrationServices/deleteNode/action Désinscrit le nœud IR.
Microsoft.DataMigration/sqlMigrationServices/listMonitoringData/action Liste les données de monitoring pour toutes les migrations.
Microsoft.DataMigration/sqlMigrationServices/listMigrations/read Liste les migrations pour l’utilisateur.
Microsoft.DataMigration/sqlMigrationServices/MonitoringData/read Récupère les données de monitoring.
Microsoft.SqlVirtualMachine/sqlVirtualMachines/read Récupère les détails de la machine virtuelle SQL.
Microsoft.SqlVirtualMachine/sqlVirtualMachines/write Crée ou modifie les propriétés d’une machine virtuelle SQL existante.
Microsoft.DataMigration/SqlMigrationServices/tasks/read Obtenir les détails de la tâche du service de migration
Microsoft.DataMigration/SqlMigrationServices/tasks/write Créer ou mettre à jour une tâche de service de migration
Microsoft.DataMigration/SqlMigrationServices/tasks/delete Supprimer la tâche du service de migration
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read Lire des conteneurs blob dans un compte de stockage Azure

Vous pouvez obtenir un exemple de script pour créer une connexion et l’approvisionner avec les autorisations nécessaires, pour VMware, Hyper-V ou serveurs physiques, à l’aide de l’authentification Windows ou celle de SQL Server.

Attribution de rôle

Pour attribuer un rôle à un ID d’utilisateur ou d’application :

  1. Dans le portail Azure, accédez à la ressource.

  2. Dans le menu de gauche, sélectionnez Contrôle d’accès (IAM), puis faites défiler pour rechercher les rôles personnalisés que vous avez créés.

  3. Sélectionnez les rôles à attribuer, sélectionnez l’ID d’utilisateur ou d’application, puis enregistrez les changements.

    L’ID d’utilisateur ou d’application s’affiche désormais sous l’onglet Attributions de rôle.