Partilhar via


Funções personalizadas para as migrações do SQL Server para a Instância Gerenciada de SQL do Azure usando o ADS

Este artigo explica como configurar uma função personalizada no Azure para migrações de banco de dados do SQL Server. A função personalizada tem apenas as permissões necessárias para criar e executar um Serviço de Migração de Banco de Dados com uma Instância Gerenciada de SQL do Azure como destino.

Use a seção AssignableScopes da cadeia de caracteres JSON de definição de função para controlar o local em que as permissões serão exibidas na interface do usuário de Adicionar atribuição de função no portal do Azure. Para evitar a desorganização da interface do usuário com funções extras, é necessário definir a função no nível do grupo de recursos ou até mesmo no nível do recurso. O recurso ao qual a função personalizada se aplica não executa a atribuição de função de fato.

{
    "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": []
            }
        ]
    }
}

Você pode usar o portal do Azure, o Azure PowerShell, a CLI do Azure ou a API REST do Azure para criar as funções.

Para obter mais informações, confira Criar ou atualizar funções personalizadas do Azure usando o portal do Azure e Funções personalizadas do Azure.

Descrição das permissões necessárias para migrar para uma Instância Gerenciada de SQL do Azure

Ação de permissão Descrição
Microsoft.Storage/storageAccounts/read Retornar a lista de contas de armazenamento ou obter as propriedades da conta de armazenamento especificada.
Microsoft.Storage/storageAccounts/listkeys/action Retornar as chaves de acesso da conta de armazenamento especificada.
Microsoft.Storage/storageAccounts/blobServices/read Lista os serviços de blob.
Microsoft.Storage/storageAccounts/blobServices/write Retorna o resultado da inserção de propriedades do serviço de blob.
Microsoft.Storage/storageAccounts/blobServices/containers/read Retorna a lista de contêineres.
Microsoft.Sql/managedInstances/read Retornar a lista de instâncias gerenciadas ou obter as propriedades para a instância gerenciada especificada.
Microsoft.Sql/managedInstances/write Criar uma instância gerenciada com os parâmetros especificados ou atualizar as propriedades ou marcas para a instância gerenciada especificada.
Microsoft.Sql/managedInstances/databases/read Obtém um banco de dados gerenciado existente.
Microsoft.Sql/managedInstances/databases/write Cria um novo banco de dados ou atualiza um banco de dados existente.
Microsoft.Sql/managedInstances/databases/delete Exclui um banco de dados gerenciado existente.
Microsoft.DataMigration/locations/operationResults/read Obtém o status de uma operação de execução longa relacionada a uma resposta 202 – Aceito.
Microsoft.DataMigration/locations/operationStatuses/read Obtém o status de uma operação de execução longa relacionada a uma resposta 202 – Aceito.
Microsoft.DataMigration/locations/sqlMigrationServiceOperationResults/read Recupera resultados da operação de serviço.
Microsoft.DataMigration/databaseMigrations/write Cria ou atualiza o recurso de Migração de Banco de Dados.
Microsoft.DataMigration/databaseMigrations/read Recupera o recurso de Migração de Banco de Dados.
Microsoft.DataMigration/databaseMigrations/delete Exclui o recurso de Migração de Banco de Dados.
Microsoft.DataMigration/databaseMigrations/cancel/action Interrompe a migração contínua para o banco de dados.
Microsoft.DataMigration/databaseMigrations/cutover/action Operação de migração online de substituição para o banco de dados.
Microsoft.DataMigration/sqlMigrationServices/write Cria uma propriedade nova ou alterada do Serviço existente
Microsoft.DataMigration/sqlMigrationServices/delete Exclui o serviço existente.
Microsoft.DataMigration/sqlMigrationServices/read Recupera detalhes do serviço de migração.
Microsoft.DataMigration/sqlMigrationServices/listAuthKeys/action Recupera a lista de chaves de autenticação.
Microsoft.DataMigration/sqlMigrationServices/regenerateAuthKeys/action Regenera as chaves de autenticação.
Microsoft.DataMigration/sqlMigrationServices/deleteNode/action Cancele o registro do nó de IR.
Microsoft.DataMigration/sqlMigrationServices/listMonitoringData/action Lista os dados de monitoramento para todas as migrações.
Microsoft.DataMigration/sqlMigrationServices/listMigrations/read Lista as migrações para o usuário.
Microsoft.DataMigration/sqlMigrationServices/MonitoringData/read Recupera os dados de monitoramento.
Microsoft.SqlVirtualMachine/sqlVirtualMachines/read Recupera detalhes da máquina virtual do SQL.
Microsoft.SqlVirtualMachine/sqlVirtualMachines/write Cria uma propriedade ou altera as propriedades de uma máquina virtual do SQL.

Obtenha um script de exemplo para criar um logon e provisioná-lo com as permissões necessárias, para VMware, Hyper-V ou servidores físicos, usando a autenticação do Windows ou a autenticação do SQL Server.

Atribuição de função

Para atribuir uma função a um usuário ou a uma ID do aplicativo:

  1. No portal do Azure, vá para o recurso.

  2. No menu à esquerda, selecione Controle de acesso (IAM) e faça a rolagem para encontrar as funções personalizadas que você criou.

  3. Selecione a função para atribuir, selecione o usuário ou a ID do aplicativo e salve as alterações.

    Agora. os usuários ou as IDs de aplicativo são exibidas na guia Atribuições de função.