Funções personalizadas no SQL Server para migrações do Banco de Dados SQL do Azure no Azure Data Studio

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 do Azure com o Banco de Dados 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": "DmsCustomRoleDemoForSqlDB",
        "description": "",
        "assignableScopes": [
            "/subscriptions/<SQLDatabaseSubscription>/resourceGroups/<SQLDatabaseResourceGroup>",
            "/subscriptions/<DatabaseMigrationServiceSubscription>/resourceGroups/<DatabaseMigrationServiceResourceGroup>"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.Sql/servers/read",
                    "Microsoft.Sql/servers/write",
                    "Microsoft.Sql/servers/databases/read",
                    "Microsoft.Sql/servers/databases/write",
                    "Microsoft.Sql/servers/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/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.

Permissões necessárias para migrar para o Banco de Dados SQL do Azure

Ação de permissão Descrição
Microsoft.Sql/servers/read Devolver a lista de recursos do banco de dados SQL ou obter as propriedades do banco de dados SQL especificado.
Microsoft.Sql/servers/write Criar um banco de dados SQL com os parâmetros especificados ou atualizar as propriedades ou marcas para o banco de dados SQL especificado.
Microsoft.Sql/servers/databases/read Obter um banco de dados SQL existente.
Microsoft.Sql/servers/databases/write Criar um novo banco de dados ou atualizar um existente.
Microsoft.Sql/servers/databases/delete Excluir um banco de dados SQL.
Microsoft.DataMigration/locations/operationResults/read Obter os resultados de uma operação de execução prolongada 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 Recuperar resultados da operação de serviço.
Microsoft.DataMigration/databaseMigrations/write Criar ou atualizar recurso de migração de banco de dados.
Microsoft.DataMigration/databaseMigrations/read Recuperar um recurso de migração de banco de dados.
Microsoft.DataMigration/databaseMigrations/delete Excluir um 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/sqlMigrationServices/write Criar um novo serviço ou alterar as propriedades de um serviço existente.
Microsoft.DataMigration/sqlMigrationServices/delete Excluir um serviço existente.
Microsoft.DataMigration/sqlMigrationServices/read Recuperar os detalhes do serviço de migração.
Microsoft.DataMigration/sqlMigrationServices/listAuthKeys/action Recuperar a lista de chaves de autenticação.
Microsoft.DataMigration/sqlMigrationServices/regenerateAuthKeys/action Gerar novamente a chaves de autenticação.
Microsoft.DataMigration/sqlMigrationServices/deleteNode/action Retirar registro de nó de runtime de integração.
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 Recuperar os dados de monitoramento.

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.