使用 ADS 將 SQL Server 移轉至 Azure 虛擬機器的自訂角色

本文說明如何在 Azure 中設定自訂角色以進行 SQL Server 資料庫移轉。 自訂角色僅具有所需的權限,以建立和執行以 Azure 虛擬機器為目標的 Azure 資料庫移轉服務執行個體。

使用角色定義 JSON 字串的 AssignableScopes 區段來控制權限在 Azure 入口網站 [新增角色指派] UI 中的顯示位置。 如果要避免額外角色使 UI 變得雜亂無章,則建議您在資源群組,或甚至是資源等級定義角色。 自訂角色套用的資源不會執行實際的角色指派。

{
    "properties": {
        "roleName": "DmsCustomRoleDemoForVM",
        "description": "",
        "assignableScopes": [
            "/subscriptions/<storageSubscription>/resourceGroups/<storageAccountRG>",
            "/subscriptions/<ManagedInstanceSubscription>/resourceGroups/<virtualMachineRG>",
            "/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.SqlVirtualMachine/sqlVirtualMachines/read",
                    "Microsoft.SqlVirtualMachine/sqlVirtualMachines/write",
                    "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 入口網站、Azure PowerShell、Azure CLI 或 Azure REST API 來建立角色。

如需詳細資訊,請參閱使用 Azure 入口網站建立或更新 Azure 自訂角色Azure 自訂角色

移轉至虛擬機所需的權限描述

權限動作 描述
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 虛擬機器的屬性。

您可以取得範例指令碼,並使用 Windows 驗證或 SQL Server 驗證為 VMwareHyper-V實體伺服器建立登入並佈建必要權限。

角色指派

將角色指派給使用者或應用程式識別碼:

  1. 在 Azure 入口網站中,移至資源。

  2. 在左側功能表中,選取 [存取控制] (IAM),然後捲動以尋找您建立的自訂角色。

  3. 選取待指派的角色,再選取使用者或應用程式識別碼,然後儲存變更。

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