Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2022 (16.x)
Este artigo descreve um processo passo a passo para configurar a autenticação com o Microsoft Entra ID e demonstra como usar diferentes métodos de autenticação do Microsoft Entra.
Observação
Microsoft Entra ID era anteriormente conhecido como Azure Ative Directory (Azure AD).
Neste tutorial, você aprenderá a:
- Criar e registrar um aplicativo Microsoft Entra
- Conceder permissões ao aplicativo Microsoft Entra
- Criar e atribuir um certificado
- Configurar a autenticação do Microsoft Entra para SQL Server através do portal do Azure
- Criar logins e usuários
- Conectar-se com um método de autenticação suportado
Pré-requisitos
Um Windows Server local físico ou virtual com uma instância do SQL Server 2022 (16.x).
Para o SQL Server em VMs do Azure, consulte a autenticação do Microsoft Entra para o SQL Server 2022 em VMs do Azure.
O servidor e a instância habilitados pelo Azure Arc. Para obter mais informações, consulte Ligar o seu SQL Server ao Azure Arc.
O acesso ao Microsoft Entra ID está disponível para fins de autenticação. Para obter mais informações, consulte Autenticação do Microsoft Entra para SQL Server.
SQL Server Management Studio (SSMS) versão 18.0 ou superior está instalado na máquina cliente. Ou baixe o mais recente do Azure Data Studio.
Um certificado suportado.
Requisitos de rede para habilitar a autenticação do Entra ID
O Microsoft Entra ID suporta certificados CSP. O Entra ID não suporta certificados CNG.
Pré-requisitos de autenticação
Observação
Você pode usar o Azure para criar automaticamente o certificado do Cofre da Chave do Azure e o aplicativo Microsoft Entra ao configurar um administrador do Microsoft Entra para o servidor. Para obter mais informações, consulte Tutorial: Usando a automação para configurar o administrador do Microsoft Entra para SQL Server.
Registro de aplicativo Microsoft Entra para SQL Server. O registro de uma instância do SQL Server como um aplicativo do Microsoft Entra permite que a instância consulte a ID do Microsoft Entra e permite que o aplicativo Microsoft Entra se autentique em nome da instância do SQL Server. O registro de aplicativos também requer algumas permissões, que são usadas pelo SQL Server para determinadas consultas.
O SQL Server usa um certificado para essa autenticação, que é armazenado no Azure Key Vault (AKV). O agente do Azure Arc baixa o certificado para o host da instância do SQL Server.
Advertência
As conexões autenticadas pelo Microsoft Entra ID são sempre criptografadas. Se o SQL Server estiver usando um certificado autoassinado, você deverá adicionar trust server cert = true
na cadeia de conexão. As conexões autenticadas do SQL Server e do Windows não exigem criptografia, mas é altamente recomendada.
O SQL Server se conecta diretamente à ID do Microsoft Entra para autenticação. URLs de firewall explícitas precisam ser abertas para acesso direto, ou é necessário usar um servidor proxy. O Microsoft Entra ID não usa o proxy do Arc Connected Machine Agent para autenticação. Se a máquina requer o uso de um servidor proxy, o Microsoft Entra ID requer que o proxy WinHTTP no nível da máquina seja definido usando os seguintes comandos (substitua <http://proxyserver:port>
pelo valor apropriado):
netsh winhttp set proxy proxy-server="<http://proxyserver:port>"
A autenticação do Microsoft Entra ID não utiliza a configuração de proxy do agente Arc. O proxy do Arc Agent pode ser definido usando os seguintes comandos (substitua <http://proxyserver:port>
pelo valor apropriado):
azcmagent config set proxy.url "<http://proxyserver:port>"
Criar e registrar um aplicativo Microsoft Entra
- Vá para o portal do Azure, selecione Microsoft Entra ID>Registos de Aplicativo>Novo Registo.
- Especifique um nome - O exemplo neste artigo usa SQLServerCTP1.
- Selecione Tipos de contas suportados e use Somente contas neste diretório da organização
- Não defina um URI de redirecionamento
- Selecione Registo
Veja o registro do aplicativo abaixo:
Conceder permissões de aplicativo
Selecione o aplicativo recém-criado e, no menu do lado esquerdo, selecione Permissões de API.
Selecione Adicionar uma permissão>permissões de aplicação do Microsoft Graph>
- Verifique a permissão Directory.Read.All
- Selecione Adicionar permissões
Selecione Adicionar uma permissão>Microsoft Graph>permissões delegadas
- Verifique Application.Read.All
- Confirme Directory.AccessAsUser.All
- Verifique Group.Read.All
- Verificar User.Read.All
- Selecione Adicionar permissões
Selecione Conceder consentimento de administrador
Observação
Para conceder consentimento de Administrador às permissões acima, sua conta do Microsoft Entra requer a função de Administrador de Função Privilegiada ou permissões superiores.
Criar e atribuir um certificado
Vá para o portal do Azure, selecione Cofres de chavese selecione o cofre de chaves que deseja usar ou crie um novo. Selecione Certificados>Gerar/Importar
Para o método de criação de certificados, use Gerar.
Adicione um nome e um assunto do certificado.
O período de validade recomendado é, no máximo, de 12 meses. O restante dos valores pode ser deixado como padrão.
Selecione Criar.
Observação
Assim que o certificado for criado, pode aparecer que está desativado. Atualize o site e ele mostrará o certificado como habilitado.
Navegue até o novo certificado e selecione a linha da versão mais recente do certificado. Selecione Download no formato CER para salvar a chave pública do certificado.
Observação
Isso não precisa ser feito no host do SQL Server. Em vez disso, qualquer cliente que acederá o portal do Azure para dar o próximo passo.
No portal do Azure, navegue até o registro de aplicativo criado acima e selecione Certificados lista
- Selecione carregue certificado.
- Selecione a chave pública (arquivo .cer) baixada na última etapa.
- Selecione Adicionar.
No portal do Azure, obtenha a ID do objeto do Azure Arc Machine.
Em Azure Arc Resources>Machines, selecione a máquina.
Em Visão Geral, localize Vista JSON.
Em Identity, copie o valor de principalId.
No portal, navegue até a instância do Cofre da Chave do Azure onde o certificado está armazenado e conceda acesso ao(s) recurso(s) da Máquina do Azure. No menu de navegação do Azure Key Vault, navegue até Configuraçõese Configuração de acesso. Para obter etapas detalhadas para gerenciar atribuições de função, revise Atribuir funções do Azure usando o portal do Azure.
A sua experiência depende da configuração de acesso ao cofre de chaves:
Para usar controle de acesso baseado em função do Azure (recomendado):
Adicione as seguintes funções ao seu Recurso.
- Usuário do certificado do Key Vault
- Usuário do Key Vault Secrets
Verifique as funções neste local:
Para usar a política de acesso ao Vault :
Selecione políticas de acesso no menu de navegação.
Selecione Criar.
Para permissões secretas, selecione Obter>Lista.
Para permissões de Certificado, selecione Obter>Lista.
Selecione Avançar.
Para a página principal, procure o nome da sua instância do Machine - Azure Arc, que é o nome do host do SQL Server.
Selecione Rever + Criar.
Verifique se o valor para Principal ID de Objeto> corresponde ao Principal ID de da identidade gerida atribuída à instância.
Para confirmar, vá para a página de recursos e selecione Visualização JSON no canto superior direito da caixa Essentials da página Visão geral. Em identidade , irá encontrar principalId
Selecione Criar.
Você deve selecionar Criar para garantir que as permissões sejam aplicadas. Para garantir que as permissões foram armazenadas, atualize a janela do navegador e confirme se sua instância do Azure Arc está presente.
Configurar a autenticação do Microsoft Entra para SQL Server através do portal do Azure
Observação
Você pode configurar a autenticação do Microsoft Entra com qualquer uma das seguintes experiências:
Vá para o portal do Azuree selecione SQL Server – Azure Arce selecione a instância para seu host do SQL Server.
Verifique o estado do seu recurso de SQL Server - Azure Arc e veja se ele está conectado acessando o menu Propriedades. Para obter mais informações, consulte Validar os recursos do SQL Server - Azure Arc.
Selecione Microsoft Entra ID e Purview nas Configurações no menu de recursos.
Selecione definir Admin para abrir o painel Microsoft Entra ID e escolha uma conta para definir como login de administrador para o SQL Server.
Selecione certificado gerido pelo cliente e Selecione um certificado.
Selecione Alterar certificadoe selecione sua instância AKV e certificado que você criou anteriormente no novo painel.
Selecione Registro de aplicativo gerenciado pelo cliente.
Selecione Alterar o registo da aplicaçãoe selecione o registo da aplicação que criou anteriormente.
Selecione Salvar. Isso envia uma solicitação para o agente do servidor Arc, que configura a autenticação do Microsoft Entra para essa instância do SQL Server.
Leva vários minutos para baixar certificados e definir configurações. Depois de definir todos os parâmetros e selecionar Salvar no portal do Azure, a seguinte mensagem pode aparecer:
SQL Server's Azure Arc agent is currently processing a request. Values below may be incorrect. Please wait until the agent is done before continuing
. Aguarde até que o processo de salvamento seja confirmado comSaved successfully
, antes de tentar um login do Microsoft Entra.O agente do servidor Azure Arc só pode ser atualizado depois que a ação anterior for concluída. Isso significa que salvar uma nova configuração do Microsoft Entra antes que a última seja finalizada pode causar uma falha. Se vir a mensagem Chamada estendida falhou quando seleciona Guardar, aguarde 5 minutos e depois tente novamente.
Observação
Depois que o logon de administrador do Microsoft Entra recebe a função
sysadmin
, alterar o administrador do Microsoft Entra no portal do Azure não remove o logon anterior que permanece como umsysadmin
. Para remover o login, ele deve ser eliminado manualmente.A alteração de administrador do Microsoft Entra para a instância do SQL Server ocorre sem uma reinicialização do servidor, assim que o processo é concluído com o agente Azure Arc do SQL Server. Para que o novo administrador seja exibido no
sys.server_principals
, a instância do SQL Server deve ser reiniciada e, até lá, o administrador antigo é exibido. O administrador atual do Microsoft Entra pode ser verificado no portal do Azure.
Criar logins e usuários
Depois que o agente do Azure Arc no host do SQL Server concluir a sua operação, a conta de administrador selecionada no menu de ID do Microsoft Entra no portal será um sysadmin
na instância do SQL Server. Entre no SQL Server com a conta de administrador do Microsoft Entra que tenha permissões de sysadmin
no servidor usando um cliente como SSMS ou Azure Data Studio.
Observação
Todas as conexões com o SQL Server feitas com a autenticação do Microsoft Entra exigem uma conexão criptografada. Se o administrador de banco de dados (DBA) não tiver configurado um certificado SSL/TLS confiável para o servidor, os logons provavelmente falharão com a mensagem A cadeia de certificados foi emitida por uma autoridade não confiável. Para corrigir isso, configure a instância do SQL Server para usar um certificado SSL/TLS confiável pelo cliente ou selecione certificado de servidor confiável nas propriedades de conexão avançadas. Para obter mais informações, consulte Habilitar conexões criptografadas com o Mecanismo de Banco de Dados.
Criar sintaxe de login
A mesma sintaxe para criar logons e usuários do Microsoft Entra no Banco de Dados SQL do Azure e na Instância Gerenciada SQL do Azure agora pode ser usada no SQL Server.
Observação
No SQL Server, qualquer conta que tenha a permissão ALTER ANY LOGIN
ou ALTER ANY USER
pode criar logons ou usuários do Microsoft Entra, respectivamente. A conta não precisa ser um login do Microsoft Entra.
Para criar um logon para uma conta do Microsoft Entra, execute o seguinte comando T-SQL no banco de dados master
:
CREATE LOGIN [principal_name] FROM EXTERNAL PROVIDER;
Para os usuários, o nome principal deve estar no formato user@tenant.com
. No Microsoft Entra ID, este é o nome principal do usuário. Para todos os outros tipos de conta, como grupos ou aplicativos do Microsoft Entra, o nome principal é o nome do objeto do Microsoft Entra.
Eis alguns exemplos:
-- login creation for Microsoft Entra user
CREATE LOGIN [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra group
CREATE LOGIN [my_group_name] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra application
CREATE LOGIN [my_app_name] FROM EXTERNAL PROVIDER;
GO
Para listar os logons do Microsoft Entra no banco de dados master
, execute o comando T-SQL:
SELECT * FROM sys.server_principals
WHERE type IN ('E', 'X');
Para conceder a um usuário do Microsoft Entra a associação para a função sysadmin
(por exemplo, admin@contoso.com
), execute os seguintes comandos no master
:
CREATE LOGIN [admin@contoso.com] FROM EXTERNAL PROVIDER;
GO
ALTER SERVER ROLE sysadmin ADD MEMBER [admin@contoso.com];
GO
O procedimento armazenado sp_addsrvrolemember
deve ser executado como membro da função de servidor SQL Server sysadmin
.
Criar sintaxe de usuário
Você pode criar um utilizador de base de dados a partir do Microsoft Entra ID, seja como um utilizador de base de dados associado a um login de servidor ou como um utilizador contido na base de dados.
Para criar um usuário do Microsoft Entra a partir de um logon do Microsoft Entra em um banco de dados do SQL Server, use a seguinte sintaxe:
CREATE USER [principal_name] FROM LOGIN [principal_name];
A sintaxe principal_name
é a mesma para logins.
Eis alguns exemplos:
-- for Azure AD user
CREATE USER [user@contoso.com] FROM LOGIN [user@contoso.com];
GO
-- for Azure AD group
CREATE USER [my_group_name] FROM LOGIN [my_group_name];
GO
-- for Azure AD application
CREATE USER [my_app_name] FROM LOGIN [my_app_name];
GO
Para criar um usuário de banco de dados contido do Microsoft Entra, que é um usuário não vinculado a um logon de servidor, a seguinte sintaxe pode ser executada:
CREATE USER [principal name] FROM EXTERNAL PROVIDER;
Use o nome do grupo Microsoft Entra ou o nome do aplicativo Microsoft Entra como <principal name>
ao criar um usuário de banco de dados do Microsoft Entra a partir de um grupo ou aplicativo.
Eis alguns exemplos:
-- for Azure AD contained user
CREATE USER [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- for Azure AD contained group
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO
--for Azure AD contained application
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO
Para listar os usuários criados no banco de dados, execute o seguinte comando T-SQL:
SELECT * FROM sys.database_principals;
Um novo banco de dados tem permissão Connect por padrão. Todas as outras permissões do SQL Server devem ser concedidas explicitamente por outorgantes autorizados.
Contas de convidado do Microsoft Entra
A sintaxe CREATE LOGIN
e CREATE USER
também suporta usuários convidados. Por exemplo, se testuser@outlook.com
for convidado para o locatário contoso.com
, ele poderá ser adicionado como um logon ao SQL Server com a mesma sintaxe da criação de qualquer outro usuário ou logon do Microsoft Entra. Ao criar usuários convidados e logins, use o e-mail de origem da conta de convidado, não seu nome principal de usuário no locatário. Nos exemplos, outlook.com
é fornecido mesmo que a conta esteja registrada no locatário contoso.com
.
Criar um usuário convidado a partir de um login existente
CREATE USER [testuser@outlook.com] FROM LOGIN [testuser@outlook.com];
Criar um usuário convidado como um usuário contido
CREATE USER [testuser@outlook.com] FROM EXTERNAL PROVIDER;
Conectar-se com um método de autenticação suportado
O SQL Server oferece suporte a vários métodos de autenticação do Microsoft Entra:
- Predefinição
- Nome de utilizador e palavra-passe
- Integrado
- Universal com autenticação multifator
- Principal de Serviço
- Identidade gerenciada
- Token de acesso
Use um desses métodos para se conectar à instância do SQL Server. Para obter mais informações, consulte Autenticação do Microsoft Entra para SQL Server.
Exemplo de autenticação usando o SSMS
Observação
Embora Microsoft Entra ID seja o novo nome para o Azure Active Directory (Azure AD), para evitar a disrupção de ambientes existentes, o Azure AD ainda permanece em alguns elementos codificados, como áreas de interface do usuário, provedores de conexão, códigos de erro e cmdlets. Neste artigo, os dois nomes são intercambiáveis.
Abaixo está o instantâneo da página de conexão do SQL Server Management Studio (SSMS) usando o método de autenticação Azure Ative Directory - Universal com MFA.
Durante o processo de autenticação, um banco de dados onde o usuário foi criado deve ser explicitamente indicado no SSMS. Expanda Opções > Propriedades de conexão > Conectar-se ao banco de dados: database_name
.
Para obter mais informações, consulte Usando a autenticação multifator do Microsoft Entra.
As ferramentas do SQL Server que dão suporte à autenticação Microsoft Entra para o SQL do Azure também são suportadas para o SQL Server 2022 (16.x).
Local onde os parâmetros de ID do Microsoft Entra são armazenados
Advertência
Os parâmetros de ID do Microsoft Entra são configurados pelo agente do Azure Arc e não devem ser reconfigurados manualmente.
No Linux, os parâmetros de ID do Microsoft Entra são armazenados em mssql-conf
. Para obter mais informações sobre as opções de configuração no Linux, consulte Configurar o SQL Server no Linux com a ferramenta mssql-conf.
Problemas conhecidos
- A atualização do certificado não se propaga:
Depois que a autenticação do Microsoft Entra estiver configurada para o SQL Server, a atualização do certificado no recurso SQL Server - Azure Arc, no painel Microsoft Entra ID e Purview, pode não se propagar completamente. Isso resulta em a gravação ser bem-sucedida , mas o valor antigo continuar a ser exibido. Para atualizar o certificado, faça o seguinte:
- Selecione Remover Admin.
- Selecione Salvar.
- Selecione Set Admin e reconfigure a autenticação do Microsoft Entra com o novo certificado.
- Selecione Salvar.