Condividi tramite


Ruoli personalizzati per le migrazioni da SQL Server a Istanza gestita di SQL di Azure utilizzando ADS

Questo articolo illustra come configurare un ruolo personalizzato in Azure per le migrazioni di database di SQL Server. Il ruolo personalizzato è configurato con solo le autorizzazioni necessarie per avviare ed eseguire migrazioni usando un'istanza del Servizio Migrazione del database di Azure, destinata a Istanza gestita di SQL di Azure. Per effettuare il provisioning di una nuova istanza del Servizio Migrazione del database di Azure, all'utente deve essere assegnato il ruolo Proprietario o Collaboratore a livello di sottoscrizione.

Usare la sezione AssignableScopes della stringa JSON di definizione del ruolo per controllare dove vengono visualizzate le autorizzazioni nell'interfaccia utente Aggiungi assegnazione di ruolo nel portale di Azure. Per evitare confusione nell'interfaccia utente con ruoli aggiuntivi, è possibile definire il ruolo a livello del gruppo di risorse o anche il livello della risorsa. La risorsa a cui si applica il ruolo personalizzato non esegue l'assegnazione di ruolo effettiva.

{
    "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"
                ],
                "notActions": [],
                "dataActions": [
                  "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read"
                ],
                "notDataActions": []
            }
        ]
    }
}

Per creare i ruoli è possibile utilizzare il portale di Azure, Azure PowerShell, la riga di comando Azure o l’API REST di Azure.

Per altre informazioni, consultate Creare o aggiornare i ruoli personalizzati di Azure utilizzando il portale di Azure e i ruoli personalizzati di Azure.

Annotazioni

Quando si esegue la migrazione a Azure SQL Managed Instance o Azure SQL Virtual Machine dal portale di Azure, assicurarsi che l'utente connesso disponga dell'accesso Storage Blob Data Reader al contenitore di BLOB che contiene i file di backup. Questa autorizzazione è necessaria per elencare solo cartelle e file nel contenitore BLOB durante la configurazione della migrazione tramite il portale di Azure.

Descrizione delle autorizzazioni necessarie per eseguire la migrazione a Istanza gestita di SQL di Azure

Autorizzazioni azioni Descrizione
Microsoft.Storage/storageAccounts/read Restituisce l'elenco di account di archiviazione o ottiene le proprietà per l’account di archiviazione specificato.
Microsoft.Storage/storageAccounts/listkeys/action Restituisce le chiavi di accesso per l'account di archiviazione specificato.
Microsoft.Storage/storageAccounts/blobServices/read Elencare i servizi BLOB.
Microsoft.Storage/storageAccounts/blobServices/write Restituisce il risultato della creazione/aggiornamento delle proprietà del servizio BLOB.
Microsoft.Storage/storageAccounts/blobServices/containers/read Restituisce l'elenco dei contenitori.
Microsoft.Sql/managedInstances/read Restituisce l'elenco delle istanze gestite o ottiene le proprietà per l'istanza gestita specificata.
Microsoft.Sql/managedInstances/write Crea un'istanza gestita con i parametri specificati o aggiorna le proprietà o i tag per l'istanza gestita specificata.
Microsoft.Sql/managedInstances/databases/read Ottiene un database gestito esistente.
Microsoft.Sql/managedInstances/databases/write Crea un nuovo database o ne aggiorna uno esistente.
Microsoft.Sql/managedInstances/databases/delete Elimina un database gestito esistente.
Microsoft.DataMigration/locations/operationResults/read Recuperare lo stato di un'operazione a esecuzione prolungata correlata a una risposta 202 - Accettato.
Microsoft.DataMigration/locations/operationStatuses/read Recuperare lo stato di un'operazione a esecuzione prolungata correlata a una risposta 202 - Accettato.
Microsoft.DataMigration/locations/sqlMigrationServiceOperationResults/read Recupera i risultati dell'operazione del servizio.
Microsoft.DataMigration/databaseMigrations/write Creare o aggiornare la risorsa migrazione del database.
Microsoft.DataMigration/databaseMigrations/read Recuperare la risorsa Migrazione del database.
Microsoft.DataMigration/databaseMigrations/delete Eliminare la risorsa Migrazione del database.
Microsoft.DataMigration/databaseMigrations/cancel/action Arrestare la migrazione in corso per il database.
Microsoft.DataMigration/databaseMigrations/cutover/action Operazione di migrazione online di cutover per il database.
Microsoft.DataMigration/sqlMigrationServices/write Creare un nuovo servizio o modificare le proprietà di quello esistente
Microsoft.DataMigration/sqlMigrationServices/delete Eliminare il servizio esistente.
Microsoft.DataMigration/sqlMigrationServices/read Recuperare i dettagli del servizio migrazione.
Microsoft.DataMigration/sqlMigrationServices/listAuthKeys/action Recuperare l'elenco delle chiavi di autenticazione.
Microsoft.DataMigration/sqlMigrationServices/regenerateAuthKeys/action Rigenerare le chiavi di autenticazione.
Microsoft.DataMigration/sqlMigrationServices/deleteNode/action Annullare la registrazione del nodo IR.
Microsoft.DataMigration/sqlMigrationServices/listMonitoringData/action Elenca i dati di monitoraggio per tutte le migrazioni.
Microsoft.DataMigration/sqlMigrationServices/listMigrations/read Elenca le migrazioni per l'utente.
Microsoft.DataMigration/sqlMigrationServices/MonitoringData/read Recuperare i dati di monitoraggio.
Microsoft.SqlVirtualMachine/sqlVirtualMachines/read Recuperare i dettagli della macchina virtuale SQL.
Microsoft.SqlVirtualMachine/sqlVirtualMachines/write Creare una nuova o modificare le proprietà della macchina virtuale SQL esistente.
Microsoft.DataMigration/SqlMigrationServices/tasks/read Ottenere i dettagli dell'attività del servizio migrazione
Microsoft.DataMigration/SqlMigrationServices/tasks/write Creare o aggiornare l'attività del servizio di migrazione
Microsoft.DataMigration/SqlMigrationServices/tasks/delete Elimina attività del servizio di migrazione
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read Leggere i contenitori BLOB in un account di archiviazione di Azure

È possibile ottenere uno script di esempio per creare un account di accesso ed eseguirne il provisioning con le autorizzazioni necessarie, per VMware, Hyper-V o server fisici, usando autenticazione di Windows o l'autenticazione di SQL Server.

Assegnazione di ruolo

Assegnare un utente a un ID app:

  1. Nel portale di Azure, passare alla risorsa.

  2. Nel menu a sinistra selezionare Controllo di accesso (IAM) e quindi scorrere per trovare i ruoli personalizzati creati.

  3. Selezionare i ruoli da assegnare, selezionare l'ID utente o l'app e quindi salvare le modifiche.

    L'ID utente o app viene ora visualizzato nella scheda Assegnazioni del ruolo.