使用 ADS 進行 SQL Server 至 Azure SQL 受控執行個體移轉的自訂角色

本文說明如何在 Azure 中設定自訂角色,進行資料庫移轉。 自訂角色只有建立和執行資料移轉服務所需的權限,以 SQL 受控執行個體作為目標。

角色定義 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 入口網站、AZ PowerShell、Azure CLI 或 Azure REST API 來建立角色。

如需詳細資訊,請參閱使用 Azure 入口網站建立自訂角色Azure 自訂角色文章。

移轉至 Azure SQL 受控執行個體所需的權限描述

權限動作 描述
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 已接受」回應相關且長時間執行作業的狀態。
Microsoft.DataMigration/locations/operationStatuses/read 取得與「202 已接受」回應相關且長時間執行作業的狀態。
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 虛擬機器的屬性。

角色指派

若要將角色指派給使用者/應用程式識別碼,請開啟 Azure 入口網站,執行下列步驟:

  1. 瀏覽至資源,移至 [存取控制],然後捲動以尋找您已建立的自訂角色。

  2. 選取適當的角色、選取使用者或應用程式識別碼,然後儲存變更。

使用者或應用程式識別碼現在會列示在 [角色指派] 索引標籤上。

下一步