用于使用 ADS 从 SQL Server 迁移到 Azure SQL 托管实例的自定义角色
本文介绍如何在 Azure 中为 SQL Server 数据库迁移设置自定义角色。 自定义角色仅具有创建和运行以 Azure SQL 托管实例为目标的 Azure 数据库迁移服务实例所需的权限。
使用角色定义 JSON 字符串的 AssignableScopes
部分,可以控制权限在 Azure 门户中的“添加角色分配” 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 门户、Azure PowerShell、Azure CLI 或 Azure REST API 来创建角色。
有关详细信息,请参阅使用 Azure 门户创建或更新 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 虚拟机的属性。 |
可以使用Windows 身份验证或 SQL Server 身份验证获取示例脚本来创建登录名,并使用 VMware、Hyper-V 或物理服务器所需的权限对其进行预配。
角色分配
向用户或应用 ID 分配角色:
在 Azure 门户中,转到资源。
在左侧菜单中,选择“访问控制 (IAM)”,然后滚动查找创建的自定义角色。
选择要分配的角色,选择用户或应用 ID,然后保存更改。
用户或应用 ID 随即显示在“角色分配”选项卡上。