Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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:
- Ofereça suporte a funções de servidor para gerenciamento de permissões.
- Ofereça suporte a múltiplos usuários do Microsoft Entra com funções especiais para o Azure Synapse Analytics, como as funções
loginmanageredbmanager. - Paridade funcional entre logons SQL e logons do Microsoft Entra.
- Aumente o suporte à melhoria funcional, como usando autenticação somente Microsoft Entra. A autenticação exclusiva do Microsoft Entra permite que você desative a autenticação SQL, incluindo a conta de administrador do servidor SQL, os logins SQL e os usuários.
- Use logins de entidade de serviço do Microsoft Entra com funções especiais para automatizar totalmente a criação e a manutenção de usuários e bancos de dados usando aplicativos do Microsoft Entra.
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 DISABLENão pode afetar usuários de banco de dados contidos , porque eles não estão associados aos logins.ALTER LOGIN login_name DISABLEnã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
masterbanco de dados (por exemplo, um grupo de administradores da Microsoft Entra).Para que as alterações
DISABLEouENABLEentrem em vigor imediatamente, limpe o cache de autenticação e o cacheTokenAndPermUserStoreusando 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 PROVIDERCREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDEREXECUTE 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:
- Cláusula EXECUTE AS (Transact-SQL)
- EXECUTE AS (Transact-SQL)
- Há suporte para a representação de entidades de segurança (usuários) do banco de dados Microsoft Entra em um banco de dados de usuários.
- 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
mastercom 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 FLUSHAUTHCACHEpara 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_principalstabela. Essa limitação tem várias consequências, incluindo chamadas aSUSER_SID, que retornamNULL. - 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 SCHEMAaté 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.