Principais do servidor Microsoft Entra

Pode criar e usar entidades de segurança do servidor a partir do Microsoft Entra ID (anteriormente Azure Active Directory) como logins na base 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 pré-visualização para o Azure Synapse Analytics.

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

  • Suportar funções de servidor para gestão de permissões.
  • Apoie múltiplos utilizadores do Microsoft Entra com funções especiais para o Azure Synapse Analytics, como as funções loginmanager e dbmanager.
  • Paridade funcional entre logins SQL e logins do Microsoft Entra.
  • Aumentar o suporte à melhoria funcional, como através da autenticação exclusiva do Microsoft Entra. A autenticação exclusiva do Microsoft Entra permite-lhe desativar a autenticação SQL, que inclui o administrador do servidor SQL, logins SQL e utilizadores.
  • Utilize logins do principal de serviço do Microsoft Entra com funções especiais para totalmente automatizar a criação e manutenção de utilizadores e bases de dados com aplicações do Microsoft Entra.

Para mais informações, consulte autenticação Microsoft Entra para Azure Synapse Analytics.

Permissions

Para usar ou criar logins Microsoft Entra na base de dados virtualmaster, precisa das seguintes permissões:

  • Permissão de administrador do Microsoft Entra ou associação à loginmanager função de servidor. Só 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 utilizado pelo Azure Synapse Analytics.

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

Sintaxe dos principais do Microsoft Entra

Utilize a sintaxe a seguir para criar e gerir principais de servidor e banco de dados Microsoft Entra.

Criar conta

Essa sintaxe cria um logon no nível do servidor com base em uma identidade do Microsoft Entra. Só o administrador da Microsoft Entra pode executar este comando na base 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 a entidade de segurança do Microsoft Entra, que é um utilizador, grupo ou aplicação do Microsoft Entra.

Para obter mais informações, consulte CREATE LOGIN (Transact-SQL).

Criar utilizador a partir do login

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

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

CREATE USER [user_name] FROM LOGIN [login_name]

Você pode usar a SID coluna 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 contido, o SID é uma cadeia binária de comprimento 16. Para um utilizador que faz login, o SID tem um comprimento de 18 com um sufixo AADE.

Note

Adicionar o AADE sufixo ao SID é a forma de identificar um utilizador Microsoft Entra como tendo sido criado a partir de um login. No entanto, isto também significa que os SIDs para o login e os seus utilizadores não coincidem entre sys.server_principals e sys.database_principals. Para correlacionar o utilizador de volta ao seu início de sessão, deve primeiro remover o sufixo AADE.

Para entender a diferença conceitual entre usuários baseados em login e usuários de banco de dados contidos, consulte Usuários de banco de dados contidos.

Para obter mais informações sobre toda a sintaxe de usuário de criação, consulte CREATE USER (Transact-SQL).

Desative ou ative um login usando ALTER LOGIN

Utilize a sintaxe DDL ALTER LOGIN (Transact-SQL) para ativar ou desativar um início de sessão do Microsoft Entra num conjunto de SQL dedicado do Azure Synapse Analytics.

ALTER LOGIN [login_name] DISABLE

Quando desativas um login, o server principal deixa de conseguir estabelecer ligação. Desativar um login também impede que todas as entidades de segurança da base de dados (utilizadores) que criou a partir desse login se liguem às respetivas bases de dados.

Note

  • ALTER LOGIN login_name DISABLE Não podem afetar utilizadores de bases de dados contidas , porque não estão associados aos logins.

  • ALTER LOGIN login_name DISABLEnão é suportado para grupos Microsoft Entra.

  • Um login individual desativado não pode pertencer a um utilizador que criou na master base de dados e que faz parte de um grupo de login (por exemplo, um grupo de administradores da Microsoft Entra).

  • Para que as alterações de DISABLE ou de ENABLE tenham efeito imediato, limpe a cache de autenticação e a cache de TokenAndPermUserStore utilizando os seguintes comandos T-SQL:

    DBCC FLUSHAUTHCACHE
    DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
    

Limitações e observações

  • O administrador do SQL Server não pode criar logons ou usuários do Microsoft Entra em nenhum banco de dados.
  • Pools SQL dedicados nos espaços de trabalho do Azure Synapse Analytics não usam servidores SQL lógicos.
  • Um administrador SQL 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 representação de entidades de segurança do servidor do Microsoft Entra (logins) não é suportada para o Azure Synapse Analytics:
  • Os logins do Microsoft Entra não podem se sobrepor ao administrador do Microsoft Entra. O administrador do Microsoft Entra tem precedência sobre qualquer login. Se uma conta Microsoft Entra já tiver acesso ao servidor como administrador do Microsoft Entra, seja individualmente ou como parte de um grupo, qualquer login criado para essa conta não terá efeito algum. No entanto, a criação de login não é bloqueada através do T-SQL. Depois de a conta autenticar-se 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 num objeto específico de login Microsoft Entra não é suportado:
    • GRANT <PERMISSION> ON LOGIN :: <Microsoft Entra account> TO <Any other login>
  • Quando alteras permissões para um login Microsoft Entra, por defeito as alterações só entram em vigor na próxima vez que o login se liga ao pool SQL dedicado. Quaisquer conexões abertas existentes com o login 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 TokenAndPermUserStore, conforme descrito anteriormente em desabilitar ou habilitar um login usando ALTER LOGIN. Esse comportamento também se aplica quando se fazem alterações de associação de função de servidor com ALTER SERVER ROLE.
  • No SQL Server Management Studio, o comando de script para criar um utilizador 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 Microsoft Entra de banco de dados contido.
  • Poderá ocorrer um erro se estiver a tentar criar uma conta de acesso ou um utilizador a partir de um principal de serviço com um nome de apresentação não exclusivo. Para mais informações sobre como mitigar este erro, consulte Considerações sobre o Nome.
  • Utilizadores de bases de dados criados através de logins do Microsoft Entra podem experienciar atrasos ao receber funções e permissões. Se encontrar este problema, use os seguintes comandos:
    • Solte o usuário do banco de dados de usuários.
    • Execute DBCC FREESYSTEMCACHE('TokenAndPermUserStore') para limpar 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 login.

Limitações principais do servidor de grupo Microsoft Entra

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

  • Os papéis de servidor não são suportados para grupos Microsoft Entra.
  • Se o seu administrador SQL for um grupo Microsoft Entra, os utilizadores desse grupo encontram algumas limitações quando se ligam. Cada utilizador da Microsoft Entra não está listado individualmente na sys.server_principals tabela. Esta limitação tem várias consequências, incluindo chamadas a SUSER_SID que devolvem NULL.
  • Os logins dos utilizadores Microsoft Entra que fazem parte dos logins do grupo Microsoft Entra não são criados implicitamente. Estes utilizadores não têm um esquema padrão e não podem realizar operações como CREATE SCHEMA até criar um início de sessão para o utilizador do Microsoft Entra ou atribuir um esquema padrão ao grupo.
  • Não podes mudar a propriedade de uma base de dados para um grupo Microsoft Entra como proprietário da base de dados.
    • ALTER AUTHORIZATION ON database::<mydb> TO [my_aad_group] Falha com uma mensagem de erro:

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

Passos seguintes