Пользовательские роли для миграций SQL Server в Виртуальные машины Azure с использованием ADS

В этой статье объясняется, как настроить пользовательскую роль в Azure для миграции баз данных SQL Server. Пользовательская роль настроена только с разрешениями, необходимыми для запуска и выполнения миграции с использованием экземпляра Azure Database Migration Service, с целью миграции на виртуальную машину Azure. Чтобы подготовить новый экземпляр службы миграции баз данных Azure, пользователю необходимо назначить роль владельца или участника на уровне подписки.

Пользователи также могут использовать следующие встроенные роли:

  • Роль миграции SqlVM
  • Роль миграции SqlMI
  • Роль миграции SqlDB

Эти встроенные роли позволяют пользователям:

  1. Создавайте и удаляйте экземпляры Database Migration Service (DMS).
  2. Выполняйте миграции баз данных с помощью DMS.

Замечание

Для настройки миграции через портал Azure также необходим доступ к Storage Blob Data Reader на контейнере blob.

Для роли Custom:

Используйте раздел AssignableScopes в строке JSON с определением роли, чтобы указать, где будут отображаться разрешения в пользовательском интерфейсе Добавить назначение роли на портале Azure. Чтобы избежать загромождения пользовательского интерфейса с дополнительными ролями, может потребоваться определить роль на уровне группы ресурсов или даже на уровне ресурса. Ресурс, к которому применяется пользовательская роль, не выполняет фактическое назначение ролей.

{
    "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",
                    "Microsoft.DataMigration/SqlMigrationServices/tasks/read",
                    "Microsoft.DataMigration/SqlMigrationServices/tasks/write",
                    "Microsoft.DataMigration/SqlMigrationServices/tasks/delete",
                    "Microsoft.DataMigration/sqlMigrationServices/validateIR/action"
                ],
                "notActions": [],
                "dataActions": [
                    "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read"
                ],
                "notDataActions": []
            }
        ]
    }
}

Для создания ролей можно использовать портал Azure, Azure PowerShell, Azure CLI или REST API Azure.

Дополнительные сведения см. в статьях «Создание или обновление пользовательских ролей Azure с помощью портала Azure» и «Пользовательские роли Azure».

Замечание

При миграции в Управляемый экземпляр SQL Azure или Azure SQL Virtual Machine через портал Azure убедитесь, что пользователь, выполнивший вход, имеет роль Storage Blob Data Reader для контейнера BLOB-объектов, содержащего файлы резервных копий. Это разрешение необходимо для перечисления папок и файлов в контейнере Blob во время настройки миграции через портал 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.
Microsoft.DataMigration/SqlMigrationServices/tasks/read Получение сведений о задаче службы миграции
Microsoft.DataMigration/SqlMigrationServices/tasks/write Создание или обновление задачи службы миграции
Microsoft.DataMigration/SqlMigrationServices/tasks/delete Удаление задачи Службы миграции
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read Чтение контейнеров BLOB в учетной записи хранилища Azure
Microsoft.DataMigration/sqlMigrationServices/validateIR/action Проверьте среду выполнения интеграции.

Вы можете получить примерный скрипт для создания входа и настройки его с необходимыми правами для VMware, Hyper-V или физических серверов, используя проверка подлинности Windows или SQL Server аутентификацию.

Назначение ролей

Чтобы назначить роль пользователю или идентификатору приложения:

  1. На портале Azure перейдите к ресурсу.

  2. В меню слева выберите элемент управления доступом (IAM), а затем прокрутите страницу, чтобы найти созданные пользовательские роли.

  3. Выберите роли для назначения, выберите идентификатор пользователя или приложения, а затем сохраните изменения.

    Теперь на вкладке "Назначения ролей" отображается идентификатор пользователя или приложения.