ADS を使用した SQL Server から Azure SQL Managed Instance への移行のためのカスタム ロール

この記事では、データベースの移行のために Azure でカスタム ロールを設定する方法について説明します。 カスタム ロールには、SQL Managed Instance をターゲットとして使用して Database Migration Service を作成して実行するために必要なアクセス許可のみが付与されます。

ロール定義 json 文字列の AssignableScopes セクションを使用すると、ポータルの [ロール割り当ての追加] UI でアクセス許可を表示する場所を制御できます。 追加のロールで UI が乱雑にならないように、リソース グループまたはリソース レベルでロールを定義することをお勧めします。 これにより、実際のロールの割り当てが実行されることはありません。

{
    "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"
                ],
                "notActions": [],
                "dataActions": [],
                "notDataActions": []
            }
        ]
    }
}

ロールの作成には、Azure portal、AZ PowerShell、Azure CLI、Azure REST API のいずれかを使用できます。

詳細については、「Azure portal を使用してカスタム ロールを作成する」と「Azure カスタム ロール」の記事を参照してください。

Azure SQL Managed Instance に移行するために必要なアクセス許可の説明

アクセス許可アクション 説明
Microsoft.Storage/storageAccounts/read ストレージ アカウントの一覧を返すか、指定されたストレージ アカウントのプロパティを取得します。
Microsoft.Storage/storageAccounts/listkeys/action 指定されたストレージ アカウントのアクセス キーを返します。
Microsoft.Storage/storageAccounts/blobServices/read BLOB サービスを一覧表示します。
Microsoft.Storage/storageAccounts/blobServices/write BLOB サービスのプロパティの設定結果を返します。
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 202 Accepted 応答に関連した長時間実行操作の状態を取得します。
Microsoft.DataMigration/locations/operationStatuses/read 202 Accepted 応答に関連した長時間実行操作の状態を取得します。
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 IR ノードの登録を解除します。
Microsoft.DataMigration/sqlMigrationServices/listMonitoringData/action すべての移行の監視データを一覧表示します。
Microsoft.DataMigration/sqlMigrationServices/listMigrations/read ユーザーの移行を一覧表示します。
Microsoft.DataMigration/sqlMigrationServices/MonitoringData/read 監視データを取得します。
Microsoft.SqlVirtualMachine/sqlVirtualMachines/read SQL 仮想マシンの詳細を取得します。
Microsoft.SqlVirtualMachine/sqlVirtualMachines/write 新しい SQL 仮想マシンを作成するか、既存の SQL 仮想マシンのプロパティを変更します。

ロール割り当て

ユーザー/アプリ ID にロールを割り当てるには、Azure portal を開き、次の手順を実行します。

  1. リソースに移動し、[アクセス制御] に移動し、スクロールして先ほど作成したカスタム ロールを見つけます。

  2. 適切なロールを選択し、ユーザーまたはアプリ ID を選択して、変更を保存します。

これで、ユーザーまたはアプリ ID が [ロールの割り当て] タブに表示されます。

次のステップ