Partilhar via


Entidades de servidor Microsoft Entra

Aplica-se a:Banco de Dados SQL do Azure Azure SQL Managed InstanceAzure Synapse Analytics (somente pools SQLdedicados)

Agora você pode criar e utilizar entidades de servidor do Microsoft Entra ID (anteriormente Azure Ative Directory), que são logons no banco de dados virtual master de um Banco de Dados SQL. Há vários benefícios de usar entidades de servidor Microsoft Entra para o Banco de dados SQL:

  • Ofereça suporte a funções de servidor do Banco de Dados SQL do Azure para gerenciamento de permissões.
  • Ofereça suporte a vários usuários do Microsoft Entra com funções especiais para o Banco de dados SQL, como as loginmanager funções e dbmanager .
  • Paridade funcional entre logins SQL e logins do Microsoft Entra.
  • Aumente o suporte à melhoria funcional, como a utilização da autenticação somente Microsoft Entra. A autenticação somente do Microsoft Entra, permite que a autenticação SQL seja desabilitada, o que inclui o administrador do servidor SQL, logons SQL e usuários.
  • Permite que as entidades do Microsoft Entra ofereçam suporte a réplicas geográficas. As entidades do Microsoft Entra podem se conectar à réplica geográfica de um banco de dados de usuário, com permissões somente leitura e negar permissões para o servidor primário.
  • Use logins de entidade de serviço do Microsoft Entra com funções especiais para automatizar totalmente a criação e manutenção de usuários e bancos de dados com aplicativos Microsoft Entra.

Para obter mais informações sobre a autenticação do Microsoft Entra no Azure SQL, consulte Usar a autenticação do Microsoft Entra.

Nota

As entidades de servidor (logons) do Microsoft Entra estão atualmente em visualização pública para o Banco de Dados SQL do Azure e o Azure Synapse Analytics. Os logons do Microsoft Entra estão geralmente disponíveis para a Instância Gerenciada SQL do Azure e o SQL Server 2022.

Permissões

As permissões a seguir são necessárias para utilizar ou criar logons do Microsoft Entra no banco de dados virtual master .

  • Permissão de administrador do Microsoft Entra ou associação à loginmanager função de servidor. O primeiro login do Microsoft Entra só pode ser criado pelo administrador do Microsoft Entra.
  • Deve ser membro do Microsoft Entra ID dentro do mesmo diretório usado para o Banco de Dados SQL do Azure.

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

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

Criar login

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 virtual master .

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 usuário, grupo ou aplicativo do Microsoft Entra.

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

Criar utilizador a partir do início de sessão

A sintaxe T-SQL a seguir cria uma entidade de segurança do Microsoft Entra no nível de banco de dados mapeada para um logon 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 usuário baseado em login, o é de comprimento 18 com um AADE sufixoSID.

Nota

Anexar o sufixo AADE ao SID é como identificamos um usuário do Microsoft Entra como sendo criado a partir de um login. No entanto, isso também significa que os SIDs para o login e seu(s) usuário(s) não correspondem entre sys.server_principals e sys.database_principals. Para correlacionar o usuário de volta ao seu login, o sufixo AADE deve primeiro ser removido.

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).

Desativar ou ativar um login usando ALTER LOGIN

A sintaxe DDL ALTER LOGIN (Transact-SQL) é usada para habilitar ou desabilitar um logon do Microsoft Entra no Banco de Dados SQL do Azure.

ALTER LOGIN [login_name] DISABLE 

Quando um login é desativado, as conexões não são mais permitidas usando essa entidade de servidor. Ele também desativa todas as entidades de banco de dados (usuários) criadas a partir desse login de serem capazes de se conectar aos seus respetivos bancos de dados.

Nota

  • ALTER LOGIN login_name DISABLE não afetará os usuários do banco de dados contido, pois eles não estão associados a logins.

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

  • Um login individual desabilitado não pode pertencer a um usuário que faz parte de um grupo de logon criado no banco de dados (por exemplo, um grupo de administradores do master Microsoft Entra).

  • Para que as DISABLE alterações ou ENABLE tenham efeito imediato, o cache de autenticação e o cache TokenAndPermUserStore devem ser limpos usando os comandos T-SQL.

    DBCC FLUSHAUTHCACHE
    DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS 
    

Funções para entidades do Microsoft Entra

Funções especiais para o Banco de dados SQL podem ser atribuídas a usuários no banco de dados virtual master para entidades do Microsoft Entra, incluindo dbmanager e loginmanager.

As funções de servidor do Banco de Dados SQL do Azure podem ser atribuídas a logons no banco de dados virtual master .

Para obter um tutorial sobre como conceder essas funções, consulte Tutorial: Criar e utilizar logins de servidor do Microsoft Entra.

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.
  • 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]
  • Não há suporte para a representação de entidades de servidor (logons) do Microsoft Entra no Banco de Dados SQL do Azure e no Azure Synapse Analytics. Ele é suportado para SQL Managed Instance:
  • 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 do Microsoft Entra já tiver acesso ao servidor como administrador do Microsoft Entra, individualmente ou como parte de um grupo, qualquer início de sessão criado para esta conta não terá qualquer efeito. No entanto, a criação de login não é bloqueada através do T-SQL. Depois que a conta se autenticar no servidor, o logon terá as permissões efetivas de um administrador do Microsoft Entra e não de um login recém-criado.
  • Não há suporte para alterar permissões em um objeto de login específico do Microsoft Entra:
    • GRANT <PERMISSION> ON LOGIN :: <Microsoft Entra account> TO <Any other login>
  • Quando você altera as permissões para um logon do Microsoft Entra, por padrão, as alterações só entram em vigor na próxima vez que o logon se conectar ao Banco de Dados SQL do Azure. 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 ao fazer alterações de associação de função de servidor com ALTER SERVER ROLE.
  • No SQL Server Management Studio e no Azure Data Studio, o comando de script para criar um usuário não verifica se já há um logon master do Microsoft Entra com o mesmo nome. Ele sempre gera o T-SQL para um banco de dados contido usuário Microsoft Entra.
  • Poderá ocorrer um erro se estiver a tentar criar um início de sessão ou um utilizador a partir de uma entidade de serviço com um nome de apresentação não exclusivo. Para obter mais informações sobre como atenuar esse erro, consulte Logins do Microsoft Entra e usuários com nomes de exibição não exclusivos.

Limitações principais do servidor de grupo Microsoft Entra

Com os inícios de sessão do Microsoft Entra em pré-visualização pública para a Base de Dados SQL do Azure e o Azure Synapse Analytics, as seguintes limitações são conhecidas:

  • As funções de servidor do Banco de Dados SQL do Azure não são suportadas para grupos do Microsoft Entra.
  • Se o administrador do SQL for um grupo do Microsoft Entra, há algumas limitações quando os usuários desse grupo se conectam. Cada usuário do Microsoft Entra individualmente não faz parte da sys.server_principals tabela. Isto tem várias consequências, incluindo apelos ao SUSER_SID regresso NULL.
  • Os logins de usuário do Microsoft Entra que fazem parte dos logons de grupo do Microsoft Entra também não são criados implicitamente, o que significa que eles não terão um esquema padrão e não poderão executar operações como CREATE SCHEMA até que um logon para o usuário do Microsoft Entra seja criado ou um esquema padrão seja atribuído ao grupo.
  • Não há suporte para alterar a propriedade de um banco de dados para um grupo do Microsoft Entra como proprietário do banco 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.
      

Próximos passos