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: Azure SQL Managed Instance
Neste artigo, aprenda a usar princípios de servidor (logins) apoiados por Microsoft Entra ID (anteriormente Azure Active Directory) para proteger um Azure SQL Managed Instance.
Neste tutorial, aprenderás como:
- Crie um login Microsoft Entra para uma instância gerida em SQL.
- Conceda permissões para logons em uma instância gerenciada pelo SQL.
- Criar utilizadores Microsoft Entra a partir dos logins.
- Atribua permissões aos usuários e gerencie a segurança do banco de dados.
- Use a impersonação com os utilizadores.
- 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
Microsoft Entra ID era anteriormente conhecido como Azure Active Directory (Azure d.C.).
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
- É possível aceder à instância SQL gerida e configurar um administrador do Microsoft Entra para a instância SQL gerida. Para saber mais, consulte:
Limitar o acesso
As instâncias gerenciadas pelo SQL podem ser acessadas por meio de um endereço IP privado. Tal como num ambiente SQL Server isolado, aplicações ou utilizadores precisam de acesso à rede SQL Managed Instance (VNet) antes de poder estabelecer uma ligação. Para mais informações, consulte Conecte a sua aplicação à Instância Gerida do SQL.
Também é possível configurar um endpoint de serviço numa instância gerida por SQL, o que permite ligações públicas da mesma forma que no Azure SQL Database. Para mais informações, consulte Configurar endpoint público em Azure SQL Managed Instance.
Criar um login Microsoft Entra usando SSMS
O administrador SQL pode criar o primeiro login do Microsoft Entra, ou utilizar o administrador do Microsoft Entra criado durante o provisionamento. Para mais informações, consulte Provisionar um administrador de Microsoft Entra para SQL Managed Instance.
Consulte os seguintes artigos para exemplos de ligação a SQL Managed Instance:
- Quickstart: Configure Azure VM para se ligar ao SQL Managed Instance
- Quickstart: Configure uma ligação ponto-para-sítio para SQL Managed Instance a partir de local
Conectar-se à sua instância gerida de SQL com um login SQL do sysadmin ou com o administrador Microsoft Entra usando o SQL Server Management Studio (SSMS).
Em Object Explorer, clique com o botão direito no servidor e escolha Nova Consulta.
Na janela de consulta, use a seguinte sintaxe para criar um login para uma conta local da 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 logins existentes devem ter permissões apropriadas ou fazer parte de funções de servidor apropriadas para criar outros logins Microsoft Entra.
Logons de autenticação SQL
Se o login for um servidor principal baseado em autenticação SQL, deve ser atribuído o papel sysadmin para criar logins para Microsoft Entra contas.
Microsoft Entra auth logins
- Se o login for um principal de servidor Microsoft Entra, deve ser atribuído ao papel de sysadmin ou securityadmin para criar logins para outros utilizadores, grupos e aplicações do Microsoft Entra.
- No mínimo, a permissão
ALTER ANY LOGINdeve ser concedida para criar outros Microsoft Entra logins. - Por defeito, as permissões padrão concedidas a logins Microsoft Entra recém-criados em
mastersãoCONNECT SQLeVIEW ANY DATABASE. - O papel de servidor sysadmin pode ser atribuído a muitos Microsoft Entra logins dentro de uma instância gerida em SQL.
Para adicionar o login à função de servidor sysadmin :
Volte a iniciar sessão na instância SQL gerida, ou use a ligação existente com o administrador Microsoft Entra ou a entidade principal SQL que seja um sysadmin.
Em Object Explorer, clique com o botão direito no servidor e escolha Nova Consulta.
Conceda ao Microsoft Entra login o papel 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
Crie logins adicionais do Microsoft Entra usando SSMS
Uma vez criado o Microsoft Entra login e recebido privilégios sysadmin, esse login pode criar logins adicionais usando a cláusula FROM EXTERNAL PROVIDER com CREATE LOGIN.
Ligue-se à instância gerida SQL com o Microsoft Entra login selecionando Ligar ao Servidor no SQL Server Management Studio (SSMS).
- Insira o seu nome de host SQL Managed Instance em nome do servidor.
- Para Autenticação, selecione Microsoft Entra MFA para abrir uma janela de login de autenticação multifator. Entrar. Para obter mais informações, consulte Autenticação universal (suporte SSMS para autenticação multifator).
Em Object Explorer, clique com o botão direito no servidor e escolha Nova Consulta.
Na janela de consulta, use a seguinte sintaxe para criar um login para outra conta Microsoft Entra:
USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GOEste exemplo cria um login para o utilizador Microsoft Entra
bob@aadsqlmi.net, cujo domínioaadsqlmi.neté federado com o domínio Microsoft Entraaadsqlmi.onmicrosoft.com.Execute o seguinte comando T-SQL. As contas Microsoft Entra federadas são as substituições do SQL Managed Instance para logins e utilizadores Windows on-premises.
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.
Em Object Explorer, clique com o botão direito 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 login SQL Managed Instance para um grupo no Microsoft Entra ID. O grupo precisa de existir no Microsoft Entra ID antes de adicionar o login ao SQL Managed Instance. Veja Crie um grupo básico e adicione membros usando 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 assume que existe um grupo chamado meugrupo em 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.
Em Object Explorer, clique com o botão direito no servidor e escolha Nova Consulta para a nova ligação.
Verifique as permissões do servidor para o recém-criado login Microsoft Entra executando o seguinte comando:
SELECT * FROM sys.fn_my_permissions (NULL, 'DATABASE') GO
O suporte da Azure SQL aos principais do Microsoft Entra como utilizadores e logins estende-se aos utilizadores convidados internos e externos do Microsoft Entra External ID. Os utilizadores convidados, tanto individualmente como em grupo, podem ser usados da mesma forma que qualquer outro utilizador do Microsoft Entra no Azure SQL. Se quiser que os utilizadores convidados possam criar outros logins de servidores Microsoft Entra ou utilizadores de bases de dados, devem ter permissões para ler outras identidades no diretório Microsoft Entra. Essa permissão é configurada no nível do diretório. Para mais informações, consulte permissões de acesso de visitantes em Microsoft Entra ID.
Crie um utilizador Microsoft Entra a partir do login Microsoft Entra
A autorização para bases de dados individuais funciona de forma muito semelhante no SQL Managed Instance como nas bases 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 iniciar sessão com a conta Microsoft Entra que tem as permissões padrão e tentar expandir a base de dados recém-criada, verá o seguinte erro:
Para mais informações sobre a concessão de permissões para bases de dados, consulte Como Começar com Database Engine Permissões.
Crie um utilizador Microsoft Entra e crie uma tabela de exemplo
Observação
Existem algumas limitações quando um utilizador inicia sessão como parte de um grupo Microsoft Entra.
Por exemplo, uma chamada para SUSER_SID devolve NULL, uma vez que o utilizador Microsoft Entra dado 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.
Inicia sessão na tua instância gerida SQL com uma conta sysadmin no SQL Server Management Studio.
Em Object Explorer, clique com o botão direito no servidor e escolha Nova Consulta.
Na janela de consulta, use a seguinte sintaxe para criar um utilizador a partir de um login 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 utilizador Microsoft Entra a partir de um login Microsoft Entra que seja um grupo.
O exemplo seguinte cria um login para o grupo de Microsoft Entra mygroup que existe no seu inquilino 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 USER a partir de um login Microsoft Entra, especifique o user_name como sendo 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.
Inicia sessão na tua instância gerida SQL com uma conta sysadmin usando SQL Server Management Studio.
Em Object Explorer, clique com o botão direito no servidor e escolha Nova Consulta.
Conceda ao utilizador Microsoft Entra o papel de base de dados db_datareader utilizando 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 utilizador Microsoft Entra criado na base de dados existe executando o seguinte comando:
SELECT * FROM sys.database_principals GOCrie uma nova ligação à instância gerida do SQL com o utilizador que foi adicionado à função db_datareader.
Expanda a base de dados em Object Explorer 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:
Falsificar inícios de sessão do Microsoft Entra
O SQL Managed Instance suporta a imitação de logins do Microsoft Entra.
Testar a representação
Inicia sessão na tua instância gerida SQL com uma conta sysadmin usando SQL Server Management Studio.
Em Object Explorer, clique com o botão direito 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 declaração
EXECUTE AS LOGIN.EXECUTE AS LOGIN = 'bob@aadsqlmi.net' GO SELECT SUSER_SNAME() REVERT GO
Observação
Apenas os logins SQL a nível de servidor que fazem parte do papel sysadmin podem executar as seguintes operações direcionadas a identidades do Microsoft Entra:
EXECUTE AS USEREXECUTE AS LOGIN
Usar consultas entre bancos de dados
Consultas entre bases de dados são suportadas para contas Microsoft Entra com logins Microsoft Entra. Para testar uma consulta entre bases de dados com um grupo Microsoft Entra, precisamos de criar outra base de dados e tabela. Você pode pular a criação de outro banco de dados e tabela, se já existir.
Inicia sessão na tua instância gerida SQL com uma conta sysadmin usando SQL Server Management Studio.
Em Object Explorer, clique com o botão direito 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] GOInicie sessão na instância gerida de SQL usando SQL Server Management Studio como membro do grupo de Microsoft Entra mygroup. 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
- A gestão do Agente SQL e a execução de tarefas são suportadas para logins Microsoft Entra.
- Os logins do Microsoft Entra podem executar operações de backup e restauro da base de dados.
- Auditoria de todas as instruções relacionadas com os logins do Microsoft Entra e eventos de autenticação.
- Ligação dedicada de administrador para Microsoft Entra logins que são membros do papel de servidor sysadmin.
- Microsoft Entra logins são suportados usando a utilidade sqlcmd e a ferramenta SQL Server Management Studio.
- Os gatilhos de login são suportados para eventos de login provenientes dos logins da Microsoft Entra.
- O Service Broker e o correio DB podem ser configurados usando logins do Microsoft Entra.
Conteúdo relacionado
- SQL Managed Instance funcionalidades de segurança
- Comece com a auditoria do Azure SQL Managed Instance
- Sempre criptografado
- Configurar Proteção Avançada contra Ameaças na Instância Gerida do Azure SQL
- Máscara de dados dinâmica
- Segurança em nível de linha
- Encriptação de dados transparente (TDE)
- O que é Azure SQL Managed Instance?