Tutorial: Proteger com logins do Microsoft Entra - Instância Gerenciada SQL do Azure

Aplica-se a:Instância Gerenciada SQL do Azure

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, irá aprender a:

  • Criar um login do Microsoft Entra para uma instância gerenciada
  • Conceder permissões para logins em uma instância gerenciada
  • Criar usuários do Microsoft Entra a partir de logins
  • Atribua permissões a usuários e gerencie a segurança do banco de dados
  • Usar representação com usuários
  • Usar 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

Nota

Microsoft Entra ID é o novo nome para o Azure Ative Directory (Azure AD). Estamos atualizando a documentação neste momento.

Pré-requisitos

Para concluir o tutorial, verifique se você tem os seguintes pré-requisitos:

Limitar o acesso

As instâncias gerenciadas 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, veja Ligar a aplicação ao SQL Managed Instance.

Também é possível configurar um ponto de extremidade de serviço em uma instância gerenciada, 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 o ponto final público no Azure SQL Managed Instance.

Criar um login do Microsoft Entra usando o SSMS

O primeiro login do Microsoft Entra pode ser criado pelo administrador do SQL ou pelo 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:

  1. Conecte-se à sua instância gerenciada com um sysadmin logon SQL ou com o administrador do Microsoft Entra usando o SQL Server Management Studio (SSMS).

  2. No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e escolha Nova Consulta.

  3. 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
    GO
    

    Este exemplo cria um login para a conta nativeuser@aadsqlmi.onmicrosoft.com.

    USE master
    GO
    CREATE LOGIN [nativeuser@aadsqlmi.onmicrosoft.com] FROM EXTERNAL PROVIDER
    GO
    
  4. Na barra de ferramentas, selecione Executar para criar o login.

  5. Verifique o login recém-adicionado, executando o seguinte comando T-SQL:

    SELECT *  
    FROM sys.server_principals;  
    GO
    

    Screenshot of the Results tab in the S S M S Object Explorer showing the name, principal_id, sid, type, and type_desc of the newly added login.

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 sysadmin função 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 à sysadmin função de servidor ou securityadmin para criar logons para outros usuários, grupos e aplicativos do Microsoft Entra.
  • No mínimo, a permissão ALTER ANY LOGIN deve ser concedida para criar outros logins do Microsoft Entra.
  • Por padrão, as permissões padrão concedidas aos logins recém-criados do Microsoft Entra sãomaster: CONNECT SQL e VIEW ANY DATABASE.
  • A sysadmin função de servidor pode ser concedida a muitos logons do Microsoft Entra em uma instância gerenciada.

Para adicionar o login à sysadmin função de servidor:

  1. Faça logon na instância gerenciada novamente ou use a conexão existente com o administrador do Microsoft Entra ou a entidade de segurança SQL que é um sysadminarquivo .

  2. No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e escolha Nova Consulta.

  3. Conceda ao logon do Microsoft Entra a sysadmin função de servidor usando a seguinte sintaxe T-SQL:

    ALTER SERVER ROLE sysadmin ADD MEMBER login_name
    GO
    

    O exemplo a seguir concede a função de sysadmin servidor 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

Uma vez que o login do Microsoft Entra tenha sido criado e concedido sysadmin privilégios, esse logon pode criar logons adicionais usando a cláusula FROM EXTERNAL PROVIDER com CREATE LOGIN.

  1. Conecte-se à instância gerenciada com o logon do Microsoft Entra selecionando Conectar ao Servidor no SQL Server Management Studio (SSMS).

    1. Insira o nome do host da Instância Gerenciada SQL em Nome do servidor.
    2. Em Autenticação, selecione Ative Directory - Universal com suporte a MFA para abrir uma janela de login de autenticação multifator. Inicie sessão. Para obter mais informações, consulte Autenticação universal (suporte SSMS para autenticação multifator).
  2. No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e escolha Nova Consulta.

  3. 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
    GO
    

    Este exemplo cria um logon para o usuário bob@aadsqlmi.netdo Microsoft Entra , cuja aadsqlmi.net de domínio é federada com o domínio Microsoft Entra aadsqlmi.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
    GO
    
  4. Crie um banco de dados na instância gerenciada usando a sintaxe CREATE DATABASE . Esse banco de dados será usado para testar logins de usuários na próxima seção.

    1. No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e escolha Nova Consulta.

    2. Na janela de consulta, use a sintaxe a seguir para criar um banco de dados chamado MyMITestDB.

      CREATE DATABASE MyMITestDB;
      GO
      
  5. 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 este grupo.

  6. 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
    GO
    
  7. Como teste, faça login na instância gerenciada com o login ou grupo recém-criado. Abra uma nova conexão com a instância gerenciada e use o novo login ao autenticar.

  8. No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e escolha Nova Consulta para a nova conexão.

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

Os usuários convidados são suportados como usuários individuais (sem fazer parte de um grupo do Microsoft Entra (embora possam ser)) e os logons podem ser criados diretamente master (por exemplo, joe@contoso.con) usando a sintaxe de logon atual.

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 usuário a partir de um logon existente em um banco de dados que recebe permissões para esse banco de dados ou é 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 login pode se conectar à instância gerenciada 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:

Screenshot of an error message from the the S S M S Object Explorer that reads

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

Nota

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 o usuário do Microsoft Entra não faz parte da sys.server_principals tabela. Portanto, o acesso a determinados procedimentos armazenados ou uma lista de permissões concedidas pode ser limitado neste caso.

  1. Faça logon em sua instância gerenciada usando uma conta usando o sysadmin SQL Server Management Studio.

  2. No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e escolha Nova Consulta.

  3. 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
    GO
    

    O exemplo a seguir cria um usuário bob@aadsqlmi.net a partir do login bob@aadsqlmi.net:

    USE MyMITestDB
    GO
    CREATE USER [bob@aadsqlmi.net] FROM LOGIN [bob@aadsqlmi.net]
    GO
    
  4. També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 em seu locatário do Microsoft Entra.

    USE MyMITestDB
    GO
    CREATE USER [mygroup] FROM LOGIN [mygroup]
    GO
    

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

  5. 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)
    );
    
  6. 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 anterior. Precisamos fornecer ao usuário permissões para ler dados do banco de dados.

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

  1. Faça logon em sua instância gerenciada usando uma conta usando o sysadmin SQL Server Management Studio.

  2. No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e escolha Nova Consulta.

  3. Conceda ao usuário do Microsoft Entra a função de banco de dados usando a db_datareader seguinte sintaxe T-SQL:

    Use <Database Name> -- provide your database name
    ALTER ROLE db_datareader ADD MEMBER user_name
    GO
    

    O exemplo a seguir fornece ao usuário bob@aadsqlmi.net e ao grupo mygroup permissões 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]
    GO
    
  4. Verifique se o usuário do Microsoft Entra que foi criado no banco de dados existe executando o seguinte comando:

    SELECT * FROM sys.database_principals
    GO
    
  5. Crie uma nova conexão com a instância gerenciada com o usuário que foi adicionado à db_datareader função.

  6. Expanda o banco de dados no Pesquisador de Objetos para ver a tabela.

    Screenshot from Object Explorer in S S M S showing the folder structure for Tables in MyMITestDB. The dbo.TestTable folder is highlighted.

  7. Abra uma nova janela de consulta e execute a seguinte instrução SELECT:

    SELECT *
    FROM TestTable
    

    Você é capaz de ver os dados da tabela? Você verá as colunas sendo retornadas.

    Screenshot of the Results tab in the S S M S Object Explorer showing the table column headers AccountNum, City, Name, and State.

Representar logins do Microsoft Entra

A Instância Gerenciada SQL oferece suporte à representação de logons do Microsoft Entra.

Testar a representação

  1. Faça logon em sua instância gerenciada usando uma conta usando o sysadmin SQL Server Management Studio.

  2. No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e escolha Nova Consulta.

  3. 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();  
    GO
    
  4. Use 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_Demo
    
  5. Teste a representação usando a instrução EXECUTE AS LOGIN:

    EXECUTE AS LOGIN = 'bob@aadsqlmi.net'
    GO
    SELECT SUSER_SNAME()
    REVERT
    GO
    

Nota

Somente logons no nível de servidor SQL que fazem parte da sysadmin função podem executar as seguintes operações direcionadas a entidades do Microsoft Entra:

  • EXECUTAR COMO UTILIZADOR
  • EXECUTAR COMO 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.

  1. Faça logon em sua instância gerenciada usando uma conta usando o sysadmin SQL Server Management Studio.

  2. No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e escolha Nova Consulta.

  3. 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)
    );
    
  4. Em uma nova janela de consulta, execute o seguinte comando para criar o usuário mygroup no novo banco de dados MyMITestDB2 e conceda permissões SELECT nesse banco de dados para mygroup:

    USE MyMITestDB2
    GO
    CREATE USER [mygroup] FROM LOGIN [mygroup]
    GO
    GRANT SELECT TO [mygroup]
    GO
    
  5. Entre na instância gerenciada 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 SELECT entre bancos de dados:

    USE MyMITestDB
    SELECT * FROM MyMITestDB2..TestTable2
    GO
    

    Você 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.
  • As operações de backup e restauração do banco de dados podem ser executadas por logins do Microsoft Entra.
  • 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 sysadmin função de servidor.
  • 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.

Próximos passos

Ativar recursos de segurança

Consulte o artigo Recursos de segurança da instância gerenciada SQL para obter uma lista abrangente de maneiras de proteger seu banco de dados. São discutidos os seguintes elementos de segurança:

Recursos da instância gerenciada SQL

Para obter uma visão geral completa dos recursos da Instância Gerenciada SQL, consulte: