Benutzerdefinierte Rollen für die Migration von SQL Server zu Azure SQL Managed Instance mit ADS

In diesem Artikel wird erläutert, wie Sie eine benutzerdefinierte Rolle in Azure für SQL Server-Datenbankmigrationen einrichten. Die benutzerdefinierte Rolle ist nur mit den Berechtigungen konfiguriert, die zum Initiieren und Ausführen von Migrationen mit einer Instanz des Azure-Datenbankmigrationsdiensts erforderlich sind und auf die azure SQL Managed Instance abzielen. Um eine neue Instanz des Azure-Datenbankmigrationsdiensts bereitzustellen, muss dem Benutzer entweder die Rolle " Besitzer " oder "Mitwirkender " auf Abonnementebene zugewiesen werden.

Benutzer können außerdem die folgenden eingebauten Rollen nutzen:

  • SQLVM-Migrationsrolle
  • SqlMI-Migrationsrolle
  • Rolle für die SqlDB-Migration

Diese integrierten Rollen ermöglichen es den Nutzern:

  1. Erstellen und löschen Sie Database Migration Service (DMS)-Instanzen.
  2. Führen Sie Datenbankmigrationen mittels DMS aus.

Hinweis

Um die Migration mit Azure Portal zu konfigurieren, benötigen Sie außerdem Zugriff auf Storage Blob Data Reader im Blob-Container.

Für die benutzerdefinierte Rolle :

Verwenden Sie den Abschnitt AssignableScopes der JSON-Zeichenfolge der Rollendefinition, um festzulegen, wo die Berechtigungen in der Benutzeroberfläche Rollenzuweisung hinzufügen im Azure-Portal angezeigt werden. Um zu vermeiden, dass die Benutzeroberfläche mit zusätzlichen Rollen überladen wird, sollten Sie die Rolle auf der Ebene der Ressourcengruppe oder sogar auf der Ebene der Ressource definieren. Die Ressource, für die die benutzerdefinierte Rolle gilt, führt nicht die tatsächliche Rollenzuweisung aus.

{
    "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": []
            }
        ]
    }
}

Sie können entweder das Azure-Portal, Azure PowerShell, Azure CLI oder die Azure REST-API verwenden, um die Rollen zu erstellen.

Weitere Informationen finden Sie unter Erstellen oder Aktualisieren benutzerdefinierter Rollen über das Azure-Portal und Benutzerdefinierte Azure-Rollen.

Hinweis

Wenn Sie über das Azure SQL Managed Instance oder die Azure SQL Virtual Machine über das Azure-Portal migrieren, stellen Sie sicher, dass der angemeldete Benutzer Zugriff auf den Storage Blob Data Reader auf dem Blob-Container hat, der die Backup-Dateien enthält. Diese Berechtigung ist erforderlich, um Ordner und Dateien im BLOB-Container während der Migration nur über das Azure-Portal auflisten zu können.

Beschreibung der Berechtigungen, die zum Migrieren zu Azure SQL Managed Instance erforderlich sind

Berechtigungsvorgang Beschreibung
Microsoft.Storage/storageAccounts/read Gibt die Liste mit Speicherkonten zurück oder ruft die Eigenschaften für das angegebene Speicherkonto ab.
Microsoft.Storage/storageAccounts/listkeys/action Gibt die Zugriffsschlüssel für das angegebene Speicherkonto zurück.
Microsoft.Storage/storageAccounts/blobServices/read Listet Blob-Dienste auf.
Microsoft.Storage/storageAccounts/blobServices/write Gibt das Ergebnis zum Festlegen der Eigenschaften des Blob-Diensts zurück.
Microsoft.Storage/storageAccounts/blobServices/containers/read Gibt eine Liste von Containern zurück.
Microsoft.Sql/managedInstances/read Gibt die Liste der verwalteten Instanzen zurück oder ruft die Eigenschaften für die angegebene verwaltete Instanz ab.
Microsoft.Sql/managedInstances/write Erstellt eine verwaltete Instanz mit den angegebenen Parametern oder aktualisiert die Eigenschaften oder Markierungen für die verwaltete Instanz.
Microsoft.Sql/managedInstances/databases/read Ruft eine vorhandene verwaltete Datenbank ab.
Microsoft.Sql/managedInstances/databases/write Erstellt eine neue Datenbank oder aktualisiert eine bereits vorhandene Datenbank.
Microsoft.Sql/managedInstances/databases/delete Löscht eine bestehende verwaltete Datenbank.
Microsoft.DataMigration/locations/operationResults/read Ruft den Status eines lang andauernden Vorgangs ab, der mit einer 202 Accepted-Antwort zusammenhängt.
Microsoft.DataMigration/locations/operationStatuses/read Ruft den Status eines lang andauernden Vorgangs im Zusammenhang mit einer Antwort mit dem Statuscode 202 Accepted ab.
Microsoft.DataMigration/locations/sqlMigrationServiceOperationResults/read Ruft Dienstvorgangsergebnisse ab.
Microsoft.DataMigration/databaseMigrations/write Erstellt oder aktualisiert die Datenbankmigrationsressource.
Microsoft.DataMigration/databaseMigrations/read Ruft die Datenbankmigrationsressource ab.
Microsoft.DataMigration/databaseMigrations/delete Löscht die Datenbankmigrationsressource.
Microsoft.DataMigration/databaseMigrations/cancel/action Beendet die laufende Migration für die Datenbank.
Microsoft.DataMigration/databaseMigrations/cutover/action Umschaltung des Online-Migrationsvorgangs für die Datenbank.
Microsoft.DataMigration/sqlMigrationServices/write Dient zum Erstellen eines neuen Diensts oder zum Ändern von Eigenschaften eines vorhandenen Diensts
Microsoft.DataMigration/sqlMigrationServices/delete Löscht einen bestehenden Dienst.
Microsoft.DataMigration/sqlMigrationServices/read Ruft Details zum Migrationsdienst a.
Microsoft.DataMigration/sqlMigrationServices/listAuthKeys/action Ruft eineListe der Authentifizierungsschlüssel ab.
Microsoft.DataMigration/sqlMigrationServices/regenerateAuthKeys/action Generiert erneut einen Authentifizierungsschlüssel.
Microsoft.DataMigration/sqlMigrationServices/deleteNode/action Melden Sie den IR-Knoten ab.
Microsoft.DataMigration/sqlMigrationServices/listMonitoringData/action Listet die Überwachungsdaten für alle Migrationen auf.
Microsoft.DataMigration/sqlMigrationServices/listMigrations/read Listet die Migrationen für den Benutzer auf.
Microsoft.DataMigration/sqlMigrationServices/MonitoringData/read Ruft die Überwachungsdaten ab.
Microsoft.SqlVirtualMachine/sqlVirtualMachines/read Ruft die Details eines virtuellen SQL-Computers ab.
Microsoft.SqlVirtualMachine/sqlVirtualMachines/write Erstellt einen virtuellen SQL-Computer oder ändert dessen Eigenschaften.
Microsoft.DataMigration/SqlMigrationServices/tasks/read Abrufen von Aufgabendetails des Migrationsdiensts
Microsoft.DataMigration/SqlMigrationServices/tasks/write Erstellen oder Aktualisieren der Migrationsdienstaufgabe
Microsoft.DataMigration/SqlMigrationServices/tasks/delete Migrationsdienstaufgabe löschen
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read Lesen von BLOB-Containern in einem Azure Storage-Konto
Microsoft.DataMigration/sqlMigrationServices/validateIR/action Validiert die Integrationslaufzeit.

Sie können ein Beispielskript erstellen, um eine Anmeldung zu erstellen und diese mit den notwendigen Berechtigungen für VMware, Hyper-V oder physische Server bereitzustellen, indem Sie Windows Authentication oder SQL Server Authentifizierung verwenden.

Rollenzuweisung

So weisen Sie einem Benutzer oder einer App-ID eine Rolle zu

  1. Navigieren Sie im Azure-Portal zu der Ressource.

  2. Wählen Sie im linken Menü Zugriffssteuerung (IAM) aus, und scrollen Sie dann, um die von Ihnen erstellten benutzerdefinierten Rollen zu finden.

  3. Wählen Sie die zuzuweisenden Rollen und dann den Benutzer oder die App-ID aus, und speichern Sie dann die Änderungen.

    Der Benutzer oder die App-ID wird nun auf der Registerkarte Rollenzuweisungen angezeigt.