Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:Azure SQL Managed Instance
Neste artigo, aprenda a usar entidades de servidor (logons) apoiadas pelo Microsoft Entra ID (anteriormente Azure Ative Directory) para proteger uma Instância Gerenciada SQL do Azure.
Neste tutorial, aprenderás como:
- Crie um login do Microsoft Entra para uma instância gerenciada pelo SQL.
- Conceda permissões para logons em uma instância gerenciada pelo SQL.
- Crie usuários do Microsoft Entra a partir de logins.
- Atribua permissões aos usuários e gerencie a segurança do banco de dados.
- Use a representação com os usuários.
- Use consultas entre bancos de dados com usuários.
- Saiba mais sobre os recursos de segurança, como proteção contra ameaças, auditoria, mascaramento de dados e criptografia.
Observação
O Microsoft Entra ID era conhecido anteriormente como Azure Ative Directory (Azure AD).
Pré-requisitos
Para concluir o tutorial, verifique se você tem os seguintes pré-requisitos:
- SQL Server Management Studio (SSMS)
- Uma instância gerenciada pelo SQL
- Siga este artigo: Guia de início rápido: criar uma instância gerenciada pelo SQL
- Capaz de acessar sua instância gerenciada SQL e provisionou um administrador do Microsoft Entra para a instância gerenciada SQL. Para saber mais, consulte:
Limitar o acesso
As instâncias gerenciadas pelo SQL podem ser acessadas por meio de um endereço IP privado. Assim como um ambiente isolado do SQL Server, os aplicativos ou usuários precisam acessar a rede de Instância Gerenciada do SQL (VNet) antes que uma conexão possa ser estabelecida. Para obter mais informações, consulte Conectar seu aplicativo à instância gerenciada do SQL.
Também é possível configurar um ponto de extremidade de serviço em uma instância gerenciada pelo SQL, que permite conexões públicas da mesma forma que para o Banco de Dados SQL do Azure. Para obter mais informações, consulte Configurar ponto de extremidade público na Instância Gerenciada SQL do Azure.
Criar um login do Microsoft Entra usando o SSMS
O administrador SQL pode criar o primeiro login do Microsoft Entra ou o administrador do Microsoft Entra criado durante o provisionamento. Para obter mais informações, consulte Provisionar um administrador do Microsoft Entra para instância gerenciada do SQL.
Consulte os seguintes artigos para obter exemplos de conexão com a Instância Gerenciada SQL:
- Guia de início rápido: configurar a VM do Azure para se conectar à Instância Gerenciada do SQL
- Guia de início rápido: configurar uma conexão ponto a site com a instância gerenciada do SQL a partir do local
Conecte-se à sua instância gerenciada SQL com um logon sysadmin SQL ou o administrador do Microsoft Entra usando o SQL Server Management Studio (SSMS).
No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e escolha Nova Consulta.
Na janela de consulta, use a seguinte sintaxe para criar um logon para uma conta local do Microsoft Entra:
USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GOEste exemplo cria um login para a conta
nativeuser@aadsqlmi.onmicrosoft.com.USE master GO CREATE LOGIN [nativeuser@aadsqlmi.onmicrosoft.com] FROM EXTERNAL PROVIDER GONa barra de ferramentas, selecione Executar para criar o login.
Verifique o login recém-adicionado executando o seguinte comando T-SQL:
SELECT * FROM sys.server_principals; GO
Para obter mais informações, consulte CREATE LOGIN.
Conceder permissões para criar logins
Os logons existentes devem ter permissões apropriadas ou fazer parte de funções de servidor apropriadas para criar outros logons do Microsoft Entra.
Logons de autenticação SQL
Se o logon for uma entidade de servidor baseada em autenticação SQL, deverá ser atribuída a função sysadmin para criar logons para contas do Microsoft Entra.
Logins de autenticação do Microsoft Entra
- Se o logon for uma entidade de servidor do Microsoft Entra, ele deverá ser atribuído à função de servidor sysadmin ou securityadmin para criar logons para outros usuários, grupos e aplicativos do Microsoft Entra.
- No mínimo, a
ALTER ANY LOGINpermissão deve ser concedida para criar outros logins do Microsoft Entra. - Por padrão, as permissões padrão concedidas aos logons recém-criados do Microsoft Entra são
masterCONNECT SQLeVIEW ANY DATABASE. - A função de servidor sysadmin pode ser concedida a muitos logons do Microsoft Entra em uma instância gerenciada pelo SQL.
Para adicionar o login à função de servidor sysadmin :
Faça logon na instância gerenciada do SQL novamente ou use a conexão existente com o administrador do Microsoft Entra ou a entidade de segurança SQL que é um administrador de sistemas.
No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e escolha Nova Consulta.
Conceda ao login do Microsoft Entra a função de servidor sysadmin usando a seguinte sintaxe T-SQL:
ALTER SERVER ROLE sysadmin ADD MEMBER login_name GOO exemplo a seguir concede a função de servidor sysadmin ao logon
nativeuser@aadsqlmi.onmicrosoft.com:ALTER SERVER ROLE sysadmin ADD MEMBER [nativeuser@aadsqlmi.onmicrosoft.com] GO
Criar logins adicionais do Microsoft Entra usando o SSMS
Depois que o login do Microsoft Entra tiver sido criado e concedido privilégios sysadmin , esse logon poderá criar logons adicionais usando a FROM EXTERNAL PROVIDER cláusula com CREATE LOGIN.
Conecte-se à instância gerenciada do SQL com o logon do Microsoft Entra selecionando Conectar ao Servidor no SQL Server Management Studio (SSMS).
- Insira o nome do host da Instância Gerenciada SQL em Nome do servidor.
- Em Autenticação, selecione Microsoft Entra MFA para abrir uma janela de logon de autenticação multifator. Entrar. Para obter mais informações, consulte Autenticação universal (suporte SSMS para autenticação multifator).
No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e escolha Nova Consulta.
Na janela de consulta, use a seguinte sintaxe para criar um logon para outra conta do Microsoft Entra:
USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GOEste exemplo cria um logon para o usuário
bob@aadsqlmi.netdo Microsoft Entra , cujo domínioaadsqlmi.neté federado com o domínio do Microsoft Entraaadsqlmi.onmicrosoft.com.Execute o seguinte comando T-SQL. As contas federadas do Microsoft Entra são as substituições da Instância Gerenciada SQL para logins e usuários locais do Windows.
USE master GO CREATE LOGIN [bob@aadsqlmi.net] FROM EXTERNAL PROVIDER GOCrie um banco de dados na instância gerenciada SQL usando a sintaxe CREATE DATABASE . Esse banco de dados será usado para testar logins de usuários na próxima seção.
No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e escolha Nova Consulta.
Na janela de consulta, use a sintaxe a seguir para criar um banco de dados chamado MyMITestDB.
CREATE DATABASE MyMITestDB; GO
Crie um logon de Instância Gerenciada SQL para um grupo no Microsoft Entra ID. O grupo precisa existir no Microsoft Entra ID antes de adicionar o logon à Instância Gerenciada SQL. Consulte Criar um grupo básico e adicionar membros usando o Microsoft Entra ID. Crie um grupo mygroup e adicione membros a esse grupo.
Abra uma nova janela de consulta no SQL Server Management Studio.
Este exemplo pressupõe que existe um grupo chamado mygroup no Microsoft Entra ID. Execute o seguinte comando:
USE master GO CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER GOComo teste, faça login na instância gerenciada do SQL com o logon ou grupo recém-criado. Abra uma nova conexão com a instância gerenciada do SQL e use o novo logon ao autenticar.
No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e escolha Nova Consulta para a nova conexão.
Verifique as permissões do servidor para o login recém-criado do Microsoft Entra executando o seguinte comando:
SELECT * FROM sys.fn_my_permissions (NULL, 'DATABASE') GO
O suporte do SQL do Azure aos principais do Microsoft Entra como usuários e logons se estende aos usuários convidados internos e externos do Microsoft Entra External ID . Os usuários convidados, tanto individualmente quanto como parte de um grupo, podem ser usados da mesma forma que qualquer outro usuário do Microsoft Entra no Azure SQL. Se você quiser que os usuários convidados possam criar outros logons de servidor do Microsoft Entra ou usuários de banco de dados, eles devem ter permissões para ler outras identidades no diretório do Microsoft Entra. Essa permissão é configurada no nível do diretório. Para obter mais informações, consulte Permissões de acesso de convidado no Microsoft Entra ID.
Criar um usuário do Microsoft Entra a partir do login do Microsoft Entra
A autorização para bancos de dados individuais funciona da mesma forma na Instância Gerenciada do SQL como nos bancos de dados no SQL Server. Você pode criar um usuário a partir de um logon existente em um banco de dados que recebeu permissões para esse banco de dados ou foi adicionado a uma função de banco de dados.
Agora que criamos um banco de dados chamado MyMITestDB e um login que só tem permissões padrão, a próxima etapa é criar um usuário a partir desse login. No momento, o logon pode se conectar à instância gerenciada SQL e ver todos os bancos de dados, mas não pode interagir com os bancos de dados. Se você entrar com a conta do Microsoft Entra que tem as permissões padrão e tentar expandir o banco de dados recém-criado, verá o seguinte erro:
Para obter mais informações sobre como conceder permissões de banco de dados, consulte Introdução às permissões do Mecanismo de Banco de Dados.
Criar um usuário do Microsoft Entra e criar uma tabela de exemplo
Observação
Há algumas limitações quando um usuário entra como parte de um grupo do Microsoft Entra.
Por exemplo, uma chamada para SUSER_SID retorna NULL, uma vez que determinado usuário do Microsoft Entra não faz parte da tabela sys.server_principals .
Portanto, o acesso a determinados procedimentos armazenados ou a uma lista de permissões concedidas pode ser limitado nesse caso.
Faça logon em sua instância gerenciada SQL com uma conta sysadmin no SQL Server Management Studio.
No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e escolha Nova Consulta.
Na janela de consulta, use a seguinte sintaxe para criar um usuário a partir de um login do Microsoft Entra:
USE <Database Name> -- provide your database name GO CREATE USER user_name FROM LOGIN login_name GOO exemplo a seguir cria um usuário
bob@aadsqlmi.neta partir do loginbob@aadsqlmi.net:USE MyMITestDB GO CREATE USER [bob@aadsqlmi.net] FROM LOGIN [bob@aadsqlmi.net] GOTambém é suportado para criar um usuário do Microsoft Entra a partir de um login do Microsoft Entra que é um grupo.
O exemplo a seguir cria um logon para o grupo mygroup do Microsoft Entra que existe no locatário do Microsoft Entra:
USE MyMITestDB GO CREATE USER [mygroup] FROM LOGIN [mygroup] GOTodos os usuários que pertencem ao mygroup podem acessar o banco de dados MyMITestDB .
Importante
Ao criar um USUÁRIO a partir de um login do Microsoft Entra, especifique o user_name como o mesmo login_name de
LOGIN.Para obter mais informações, consulte CREATE USER.
Em uma nova janela de consulta, crie uma tabela de teste usando o seguinte comando T-SQL:
USE MyMITestDB GO CREATE TABLE TestTable ( AccountNum varchar(10), City varchar(255), Name varchar(255), State varchar(2) );Crie uma conexão no SSMS com o usuário que foi criado. Você notará que não pode ver a tabela TestTable que foi criada pelo sysadmin anteriormente. Precisamos fornecer ao usuário permissões para ler dados do banco de dados.
Você pode verificar a permissão atual que o usuário tem executando o seguinte comando:
SELECT * FROM sys.fn_my_permissions('MyMITestDB','DATABASE') GO
Adicionar usuários a funções no nível de banco de dados
Para que o usuário veja os dados no banco de dados, podemos fornecer funções no nível do banco de dados para o usuário.
Faça logon em sua instância gerenciada SQL com uma conta sysadmin usando o SQL Server Management Studio.
No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e escolha Nova Consulta.
Conceda ao usuário do Microsoft Entra a função de banco de dados db_datareader usando a seguinte sintaxe T-SQL:
Use <Database Name> -- provide your database name ALTER ROLE db_datareader ADD MEMBER user_name GOO exemplo a seguir fornece ao usuário
bob@aadsqlmi.nete ao grupo mygrouppermissões de db_datareader no banco de dados MyMITestDB :USE MyMITestDB GO ALTER ROLE db_datareader ADD MEMBER [bob@aadsqlmi.net] GO ALTER ROLE db_datareader ADD MEMBER [mygroup] GOVerifique se o usuário do Microsoft Entra que foi criado no banco de dados existe executando o seguinte comando:
SELECT * FROM sys.database_principals GOCrie uma nova conexão com a instância gerenciada SQL com o usuário que foi adicionado à função db_datareader .
Expanda o banco de dados no Pesquisador de Objetos para ver a tabela.
Abra uma nova janela de consulta e execute a seguinte
SELECTinstrução:SELECT * FROM TestTableVocê é capaz de ver os dados da tabela? Você deve ver as colunas sendo retornadas como demonstrado na captura de tela a seguir:
Representar logins do Microsoft Entra
A Instância Gerenciada SQL oferece suporte à representação de logons do Microsoft Entra.
Testar a representação
Faça logon em sua instância gerenciada SQL com uma conta sysadmin usando o SQL Server Management Studio.
No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e escolha Nova Consulta.
Na janela de consulta, use o seguinte comando para criar um novo procedimento armazenado:
USE MyMITestDB GO CREATE PROCEDURE dbo.usp_Demo WITH EXECUTE AS 'bob@aadsqlmi.net' AS SELECT user_name(); GOUse o comando a seguir para ver que o usuário que você está personificando ao executar o procedimento armazenado é
bob@aadsqlmi.net.Exec dbo.usp_DemoTeste a representação usando a
EXECUTE AS LOGINinstrução:EXECUTE AS LOGIN = 'bob@aadsqlmi.net' GO SELECT SUSER_SNAME() REVERT GO
Observação
Somente logons no nível do SQL Server que fazem parte da função sysadmin podem executar as seguintes operações direcionadas às entidades do Microsoft Entra:
EXECUTE AS USEREXECUTE AS LOGIN
Usar consultas entre bancos de dados
As consultas entre bancos de dados são suportadas para contas do Microsoft Entra com logons do Microsoft Entra. Para testar uma consulta entre bancos de dados com um grupo do Microsoft Entra, precisamos criar outro banco de dados e tabela. Você pode pular a criação de outro banco de dados e tabela, se já existir.
Faça logon em sua instância gerenciada SQL com uma conta sysadmin usando o SQL Server Management Studio.
No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e escolha Nova Consulta.
Na janela de consulta, use o seguinte comando para criar um banco de dados chamado MyMITestDB2 e uma tabela chamada TestTable2:
CREATE DATABASE MyMITestDB2; GO USE MyMITestDB2 GO CREATE TABLE TestTable2 ( EmpId varchar(10), FirstName varchar(255), LastName varchar(255), Status varchar(10) );Em uma nova janela de consulta, execute o seguinte comando para criar o usuário mygroup no novo banco de dados MyMITestDB2 e conceda
SELECTpermissões nesse banco de dados a mygroup:USE MyMITestDB2 GO CREATE USER [mygroup] FROM LOGIN [mygroup] GO GRANT SELECT TO [mygroup] GOEntre na instância gerenciada do SQL usando o SQL Server Management Studio como membro do grupo mygroup do Microsoft Entra. Abra uma nova janela de consulta e execute a instrução cross-database
SELECT:USE MyMITestDB SELECT * FROM MyMITestDB2..TestTable2 GOVocê deve ver os resultados da tabela de TestTable2.
Cenários suportados adicionais
- O gerenciamento do SQL Agent e as execuções de tarefas são suportados para logons do Microsoft Entra.
- Os logins do Microsoft Entra podem executar operações de backup e restauração do banco de dados.
- Auditoria de todas as instruções relacionadas a logins e eventos de autenticação do Microsoft Entra.
- Conexão de administrador dedicada para logons do Microsoft Entra que são membros da função de servidor sysadmin .
- Os logons do Microsoft Entra são suportados com o uso do utilitário sqlcmd e da ferramenta SQL Server Management Studio .
- Os gatilhos de logon são suportados para eventos de logon provenientes de logons do Microsoft Entra.
- O Service Broker e o DB mail podem ser configurados usando logins do Microsoft Entra.
Conteúdo relacionado
- Recursos de segurança da Instância Gerenciada SQL
- Comece com a auditoria da Instância Gerenciada SQL do Azure
- Sempre criptografado
- Configurar a Proteção Avançada contra Ameaças na Instância Gerenciada SQL do Azure
- Máscara de dados dinâmica
- Segurança em nível de linha
- Encriptação de dados transparente (TDE)
- O que é a Instância Gerenciada SQL do Azure?