Partilhar via


Principal de serviço do Microsoft Entra com o SQL do Azure

Aplica-se a:Banco de Dados SQL do Azure Instância Gerenciada SQLdo Azure

O Microsoft Entra ID (anteriormente Azure Ative Directory) dá suporte à criação de usuários no Banco de Dados SQL do Azure (Banco de Dados SQL) em nome de aplicativos Microsoft Entra (entidades de serviço). Isso é suportado para o Banco de Dados SQL do Azure e a Instância Gerenciada SQL do Azure.

Suporte a entidade de serviço (aplicativos Microsoft Entra)

Este artigo aplica-se a aplicações que estão integradas com o Microsoft Entra ID e fazem parte do registo do Microsoft Entra. Esses aplicativos geralmente precisam de autenticação e acesso de autorização ao SQL do Azure para executar várias tarefas. Esse recurso permite que as entidades de serviço criem usuários do Microsoft Entra no Banco de dados SQL.

Quando um aplicativo do Microsoft Entra é registrado usando o portal do Azure ou um comando do PowerShell, dois objetos são criados no locatário do Microsoft Entra:

  • Um objeto de aplicativo
  • Um objeto principal de serviço

Para obter mais informações sobre aplicativos Microsoft Entra, consulte Objetos de entidade de aplicativo e serviço no Microsoft Entra ID e Criar uma entidade de serviço do Azure com o Azure PowerShell.

O Banco de Dados SQL e a Instância Gerenciada SQL oferecem suporte aos seguintes objetos do Microsoft Entra:

  • Usuários do Microsoft Entra (gerenciados, federados e convidados)
  • Grupos do Microsoft Entra (gerenciados e federados)
  • Aplicações Microsoft Entra

Os usuários, grupos e aplicativos do Microsoft Entra podem ser criados em um banco de dados usando o comando CREATE USER [Azure_AD_Object] FROM EXTERNAL PROVIDERT-SQL .

Funcionalidade de criação de usuários do Microsoft Entra usando entidades de serviço

O suporte a essa funcionalidade é útil em processos de automação de aplicativos do Microsoft Entra em que os objetos do Microsoft Entra são criados e mantidos no Banco de dados SQL sem interação humana. As entidades de serviço podem ser um administrador do Microsoft Entra para o servidor lógico SQL, como parte de um grupo ou um usuário individual. O aplicativo pode automatizar a criação de objetos do Microsoft Entra no Banco de dados SQL quando executado como administrador do sistema e não requer nenhum privilégio SQL adicional. Isso permite uma automação completa da criação de um usuário de banco de dados. Esse recurso também oferece suporte à identidade gerenciada atribuída pelo sistema Microsoft Entra e à identidade gerenciada atribuída pelo usuário que pode ser criada como usuários no Banco de dados SQL em nome de entidades de serviço. Para obter mais informações, consulte O que são identidades gerenciadas para recursos do Azure?

Habilitar entidades de serviço para criar usuários do Microsoft Entra

Para habilitar a criação de objetos do Microsoft Entra no Banco de dados SQL em nome de um aplicativo Microsoft Entra, as seguintes configurações são necessárias:

  1. Atribua a identidade do servidor. A identidade do servidor atribuído representa a Identidade de Serviço Gerenciado (MSI). A identidade do servidor pode ser uma identidade gerenciada atribuída pelo sistema ou pelo usuário. Para obter mais informações, consulte Identidade gerenciada atribuída pelo usuário no Microsoft Entra ID para SQL do Azure.

    • Para um novo servidor lógico SQL do Azure, execute o seguinte comando do PowerShell:
    New-AzSqlServer -ResourceGroupName <resource group> -Location <Location name> -ServerName <Server name> -ServerVersion "12.0" -SqlAdministratorCredentials (Get-Credential) -AssignIdentity
    

    Para obter mais informações, consulte o comando New-AzSqlServer ou o comando New-AzSqlInstance for SQL Managed Instance.

    • Para servidores SQL Lógicos do Azure existentes, execute o seguinte comando:
    Set-AzSqlServer -ResourceGroupName <resource group> -ServerName <Server name> -AssignIdentity
    

    Para obter mais informações, consulte o comando Set-AzSqlServer ou o comando Set-AzSqlInstance para SQL Managed Instance.

    • Para verificar se a identidade do servidor está atribuída ao servidor, execute o comando Get-AzSqlServer.

    Nota

    A identidade do servidor também pode ser atribuída usando comandos REST API e CLI. Para obter mais informações, consulte az sql server create, az sql server update e Servers - REST API.

  2. Conceda a permissão Microsoft Entra ID Directory Readers para a identidade do servidor criada ou atribuída ao servidor.

    • Para conceder essa permissão, siga a descrição usada para a Instância Gerenciada SQL disponível no seguinte artigo: Provisionar o Microsoft Entra admin (Instância Gerenciada SQL)
    • O usuário do Microsoft Entra que está concedendo essa permissão deve fazer parte da função de Administrador Global ou Administrador de Funções Privilegiadas do Microsoft Entra ID.
    • Para pools SQL dedicados em um espaço de trabalho do Azure Synapse, use a identidade gerenciada do espaço de trabalho em vez da identidade do servidor SQL do Azure.

Importante

Com o suporte do Microsoft Graph para SQL do Azure, a função Leitores de Diretório pode ser substituída pelo uso de permissões de nível inferior. Para obter mais informações, consulte Identidade gerenciada atribuída pelo usuário na ID do Microsoft Entra para SQL do Azure

As etapas 1 e 2 devem ser executadas na ordem acima. Primeiro, crie ou atribua a identidade do servidor, seguida pela concessão da permissão Leitores de Diretório ou permissões de nível inferior discutidas em Identidade gerenciada atribuída pelo usuário no Microsoft Entra ID para Azure SQL. Omitir uma dessas etapas, ou ambas, causará um erro de execução durante a criação do objeto Microsoft Entra no SQL do Azure em nome de um aplicativo Microsoft Entra.

Você pode atribuir a função Leitores de Diretório a um grupo no Microsoft Entra ID. Os proprietários do grupo podem então adicionar a identidade gerenciada como um membro desse grupo, o que ignoraria a necessidade de um Administrador Global ou Administrador de Funções Privilegiadas para conceder a função de Leitores de Diretório . Para obter mais informações sobre esse recurso, consulte Função Leitores de Diretório no Microsoft Entra ID para Azure SQL.

Solução de problemas e limitações

  • Ao criar objetos do Microsoft Entra no SQL do Azure em nome de um aplicativo Microsoft Entra sem habilitar a identidade do servidor e conceder permissão aos Leitores de Diretório , ou permissões de nível inferior discutidas em Identidade gerenciada atribuída pelo usuário no Microsoft Entra ID para Azure SQL, a operação falhará com os seguintes possíveis erros. O erro de exemplo a seguir é para uma execução de comando do PowerShell para criar um usuário myapp do Banco de dados SQL no artigo Tutorial: Criar usuários do Microsoft Entra usando aplicativos do Microsoft Entra.
    • Exception calling "ExecuteNonQuery" with "0" argument(s): "'myapp' is not a valid login or you do not have permission. Cannot find the user 'myapp', because it does not exist, or you do not have permission."
    • Exception calling "ExecuteNonQuery" with "0" argument(s): "Principal 'myapp' could not be resolved. Error message: 'Server identity is not configured. Please follow the steps in "Assign a Microsoft Entra identity to your server and add Directory Reader permission to your identity" (https://aka.ms/sqlaadsetup)'"
    • Para esse erro, siga as etapas para Atribuir uma identidade ao servidor lógico e Atribuir permissão de leitores de diretório à identidade do servidor lógico.
    • A configuração da entidade de serviço (aplicativo Microsoft Entra) como um administrador do Microsoft Entra para o Banco de Dados SQL é suportada usando os comandos portal do Azure, PowerShell, API REST e CLI.
  • O uso de um aplicativo Microsoft Entra com entidade de serviço de outro locatário do Microsoft Entra falhará ao acessar o Banco de Dados SQL ou a Instância Gerenciada SQL criada em um locatário diferente. Uma entidade de serviço atribuída a este aplicativo deve ser do mesmo locatário que o servidor lógico SQL ou a Instância Gerenciada SQL.
  • O módulo Az.Sql 2.9.0 ou superior é necessário ao usar o PowerShell para configurar um aplicativo Microsoft Entra individual como administrador do Microsoft Entra para Azure SQL. Certifique-se de que está atualizado para o módulo mais recente.

Próximos passos