Logons de servidor do Microsoft Entra

Você pode criar e usar entidades de segurança de servidor do Microsoft Entra ID (anteriormente Azure Active Directory) como logins no banco de dados virtual master de um pool SQL dedicado do Azure Synapse Analytics.

Note

As entidades de segurança do servidor do Microsoft Entra estão atualmente em versão prévia para o Azure Synapse Analytics.

Existem vários benefícios em usar entidades de segurança no nível do servidor do Microsoft Entra com um pool de SQL dedicado:

Para mais informações, veja Microsoft Entra authentication for Azure Synapse Analytics.

Permissions

Para usar ou criar logins Microsoft Entra no banco de dados virtualmaster, você precisa das seguintes permissões:

  • Permissão de administrador do Microsoft Entra ou associação na função de servidor loginmanager. Apenas o administrador do Microsoft Entra pode criar o primeiro login do Microsoft Entra.
  • Deve ser membro do Microsoft Entra ID dentro do mesmo diretório usado pelo Azure Synapse Analytics.

Por padrão, os logins do Microsoft Entra recém-criados no banco de dados master recebem a permissão VIEW ANY DATABASE.

Sintaxe de entidades principais do Microsoft Entra

Use a sintaxe a seguir para criar e gerenciar entidades de segurança do servidor e do banco de dados do Microsoft Entra.

Criar logon

Essa sintaxe cria um logon no nível do servidor com base em uma identidade do Microsoft Entra. Somente o administrador do Microsoft Entra pode executar esse comando no banco de dados virtualmaster.

CREATE LOGIN login_name
  { 
    FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] 
    | WITH <option_list> [,..] 
  }

<option_list> ::=
    PASSWORD = { 'password' }
    [ , SID = sid ]

O login_name especifica o principal do Microsoft Entra, ou seja, um usuário, grupo ou aplicativo do Microsoft Entra.

Para obter mais informações, confira CRIAR LOGON (Transact-SQL).

Criar usuário a partir do login

A sintaxe T-SQL a seguir cria um principal do Microsoft Entra no nível do banco de dados, mapeado para um logon do Microsoft Entra, no banco de dados virtual master. Semelhante à sintaxe usada para criar um usuário do Microsoft Entra contido no banco de dados, a única diferença é especificar FROM LOGIN [login_name] em vez de FROM EXTERNAL PROVIDER.

Para criar um usuário do Microsoft Entra por meio de um logon do Microsoft Entra, use a sintaxe a seguir.

CREATE USER [user_name] FROM LOGIN [login_name]

Você pode usar a coluna SID de sys.database_principals para distinguir entre um usuário de banco de dados contido do Microsoft Entra e um usuário do Microsoft Entra criado a partir de um login. Para um usuário de banco de dados independente, o SID é uma sequência binária de comprimento 16. Para um usuário baseado em login, o SID tem comprimento 18, com o sufixo AADE.

Note

Adicionar o AADE sufixo ao SID é como você identifica um usuário do Microsoft Entra como sendo criado a partir de um login. No entanto, isso também significa que os SIDs do login e seus usuários não correspondem entre sys.server_principals e sys.database_principals. Para correlacionar o usuário de volta ao seu login, você deve primeiro remover o sufixo AADE.

Para entender a diferença conceitual entre usuários com base em logon e usuários de banco de dados independente, consulte Usuários de banco de dados independente.

Para obter mais informações sobre toda a sintaxe de CREATE USER, consulte CREATE USER (Transact-SQL).

Desative ou habilite um login usando ALTER LOGIN

Use a sintaxe DDL ALTER LOGIN (Transact-SQL) para ativar ou desativar um login Microsoft Entra em um pool SQL dedicado do Azure Synapse Analytics.

ALTER LOGIN [login_name] DISABLE

Quando você desativa um login, o principal do servidor não consegue mais se conectar. Desativar um login também impede que todas as entidades de segurança do banco de dados (usuários) que você criou a partir desse login se conectem aos respectivos bancos de dados.

Note

  • ALTER LOGIN login_name DISABLE Não pode afetar usuários de banco de dados contidos , porque eles não estão associados aos logins.

  • ALTER LOGIN login_name DISABLE não é suportado para grupos do Microsoft Entra.

  • Um login individual desativado não pode pertencer a um usuário que faz parte de um grupo de login que você criou no master banco de dados (por exemplo, um grupo de administradores da Microsoft Entra).

  • Para que as alterações DISABLE ou ENABLE entrem em vigor imediatamente, limpe o cache de autenticação e o cache TokenAndPermUserStore usando os seguintes comandos T-SQL:

    DBCC FLUSHAUTHCACHE
    DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
    

Limitações e comentários

  • O administrador do servidor SQL não pode criar logons ou usuários do Microsoft Entra em nenhum banco de dados.
  • Pools SQL dedicados nos workspaces do Azure Synapse Analytics não usam servidores SQL lógicos.
  • Um administrador ou usuário SQL não pode executar as seguintes operações do Microsoft Entra:
    • CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
    • CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER
    • EXECUTE AS USER [bob@contoso.com]
    • ALTER AUTHORIZATION ON securable::name TO [bob@contoso.com]
  • A personificação das entidades de segurança do servidor Microsoft Entra (logins) não é suportada para Azure Synapse Analytics:
  • Os logins do Microsoft Entra não podem coincidir com os do administrador do Microsoft Entra. O administrador do Microsoft Entra tem prioridade sobre qualquer login. Se uma conta do Microsoft Entra já tiver acesso ao servidor como administrador do Microsoft Entra, individualmente ou como membro de um grupo, o logon criado para essa conta não terá qualquer efeito. Entretanto, a criação de logon não é bloqueada por meio de T-SQL. Depois que a conta se autentica no servidor, o login tem as permissões efetivas de um administrador do Microsoft Entra, e não de um login recém-criado.
  • Alterar permissões em um objeto específico de login Microsoft Entra não é suportado:
    • GRANT <PERMISSION> ON LOGIN :: <Microsoft Entra account> TO <Any other login>
  • Quando você altera permissões para um login do Microsoft Entra, por padrão as mudanças só entram em vigor na próxima vez que o login se conecta ao pool SQL dedicado. Quaisquer conexões abertas existentes com o logon não são afetadas. Para forçar as alterações de permissões a terem efeito imediato, você pode limpar manualmente a autenticação e o TokenAndPermUserStore, conforme descrito anteriormente em desabilitar ou habilitar um logon usando ALTER LOGON. Esse comportamento também se aplica ao alterar a associação a funções de servidor com ALTER SERVER ROLE.
  • No SQL Server Management Studio, o comando de script para criar um usuário não verifica se já existe um login do Microsoft Entra em master com o mesmo nome. Ele sempre gera o T-SQL para um usuário do Microsoft Entra de um banco de dados contido.
  • Pode ocorrer um erro se você estiver tentando criar um login ou um usuário a partir de uma entidade de serviço com um nome de exibição não exclusivo. Para mais informações sobre como mitigar esse erro, veja Considerações sobre o nome.
  • Usuários de banco de dados criados usando logins do Microsoft Entra podem enfrentar atrasos ao receber funções e permissões. Se você encontrar esse problema, use os seguintes comandos:
    • Remova o usuário do banco de dados do usuário.
    • Execute DBCC FREESYSTEMCACHE('TokenAndPermUserStore') para limpar os caches de segurança no banco de dados.
    • Execute DBCC FLUSHAUTHCACHE para limpar o cache de contexto de autenticação federada.
    • Crie o usuário com base no logon.

Limitações do logon de servidor de grupo do Microsoft Entra

As seguintes limitações se aplicam aos logins de grupo Microsoft Entra no Azure Synapse Analytics:

  • Funções de servidor não são suportadas para grupos Microsoft Entra.
  • Se seu administrador SQL for um grupo da Microsoft Entra, os usuários desse grupo enfrentam algumas limitações ao se conectar. Cada usuário do Microsoft Entra não está listado individualmente na sys.server_principals tabela. Essa limitação tem várias consequências, incluindo chamadas a SUSER_SID, que retornam NULL.
  • Logins de usuários do Microsoft Entra que fazem parte de logins de grupos do Microsoft Entra não são criados implicitamente. Esses usuários não têm um esquema padrão e não podem realizar operações como CREATE SCHEMA até que você crie um login para o usuário do Microsoft Entra ou atribua um esquema padrão ao grupo.
  • Você não pode mudar a propriedade de um banco de dados para um grupo Microsoft Entra como proprietário do banco de dados.
    • ALTER AUTHORIZATION ON database::<mydb> TO [my_aad_group] falhou com a seguinte mensagem de erro:

      Msg 33181, Level 16, State 1, Line 4
      The new owner cannot be Azure Active Directory group.
      

Próximas Etapas