次の方法で共有


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

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

Azure portal の [ロール割り当ての追加] UI でアクセス許可が表示される場所を制御するには、ロール定義 JSON 文字列の AssignableScopesセクションを使用します。 余分なロールで 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、Azure PowerShell、Azure CLI、Azure REST API のいずれかを使用できます。

詳細については、「Azure ポータルと Azure カスタム ロールを使用した 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 仮想マシンのプロパティを変更します。

Windows 認証または SQL Server 認証を使用して、VMwareHyper-V、または物理サーバーに対して、ログインを作成し、必要なアクセス許可でプロビジョニングするサンプル スクリプトを取得できます。

ロール割り当て

ユーザーまたはアプリ ID にロールを割り当てるには:

  1. Azure portal でリソースに移動します。

  2. 左側のメニューで [アクセス制御 (IAM)] を選んでから、スクロールして作成したカスタム ロールを見つけます。

  3. 割り当てるロールを選び、ユーザーまたはアプリ ID を選んでから、変更を保存します。

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