Autorizar acesso ao Banco de Dados SQL, à Instância Gerenciada de SQL e ao Azure Synapse Analytics
Aplica-se a: Banco de Dados SQL do Azure Instância Gerenciada de SQL do AzureAzure Synapse Analytics
Neste artigo, você aprenderá sobre:
- Opções de configuração para o Banco de Dados SQL do Azure, a Instância Gerenciada de SQL do Azure e o Azure Synapse Analytics que permitem que os usuários executem tarefas administrativas e acessem os dados armazenados nesses bancos de dados.
- Configuração de acesso e autorização após um novo servidor ser criado inicialmente.
- Como adicionar logons e contas de usuário no banco de dados
master
e conceder permissões administrativas a essas contas. - Como adicionar contas de usuário a bancos de dados de usuário associadas a logons ou a contas de usuário independentes.
- Configurar contas de usuário com permissões nos bancos de dados do usuário usando funções de banco de dados e permissões explícitas.
Importante
Os bancos de dados no Banco de Dados SQL do Azure, na Instância Gerenciada de SQL do Azure e no Azure Synapse são mencionados coletivamente no restante deste artigo como bancos de dados, e o servidor está se referindo ao servidor lógico que gerencia os bancos de dados do Banco de Dados SQL do Azure e do Azure Synapse.
Observação
O Microsoft Entra ID era anteriormente conhecido como Azure Active Directory (Azure AD).
Autenticação e autorização
A autenticação é o processo de provar que o usuário é quem diz ser. Um usuário se conecta a um banco de dados com uma conta de usuário. Uma conta de usuário e informações de autenticação são fornecidas quando um usuário tenta se conectar a um banco de dados. O usuário é autenticado usando um dos dois métodos de autenticação a seguir:
-
O usuário envia um nome de conta de usuário e uma senha associada para estabelecer uma conexão ao usar esse método de autenticação. Essa senha é armazenada no banco de dados
master
das contas de usuário vinculadas a um logon ou é armazenada no banco de dados que contém as contas de usuário não vinculadas a um logon.Observação
O Banco de Dados SQL do Azure só impõe complexidade de senha para política de senha. Para obter a política de senha na Instância Gerenciada de SQL do Azure, confira Perguntas frequentes sobre a Instância Gerenciada de SQL do Azure.
autenticação do Microsoft Entra
Com esse método de autenticação, o usuário envia um nome de conta de usuário e solicita que o serviço use as informações de credenciais armazenadas no Microsoft Entra ID (anteriormente Azure Active Directory).
Logons e usuários: uma conta de usuário em um banco de dados pode ser associada a um logon que é armazenado no banco de dados master
ou pode ser um nome de usuário que é armazenado em um banco de dados individual.
- Um Logon é uma conta individual no banco de dados
master
ao qual uma conta de usuário pode ser vinculada em um ou mais bancos de dados. Com um logon, as informações de credencial para a conta de usuário são armazenadas com o logon. - Uma conta de usuário é uma conta individual em qualquer banco de dados que pode, mas não precisa, estar vinculada a um logon. Com uma conta de usuário que não está vinculada a um logon, as informações da credencial são armazenadas com a conta de usuário.
A autorização para acessar dados e executar várias ações são gerenciadas usando funções de banco de dados e permissões explícitas. A autorização refere-se às permissões atribuídas a um usuário e determina o que o usuário tem permissão para fazer. A autorização é controlada pelas associações de função e permissões no nível do objeto do banco de dados da conta de usuário. Como uma prática recomendada, você deve conceder aos usuários os privilégios mínimos necessários.
Logons existentes e contas de usuário após criar um novo banco de dados
Ao implantar SQL do Azure pela primeira vez, você poderá especificar uma ID de logon e uma senha para um tipo especial de logon administrativo, o Administrador do servidor. A seguinte configuração de logons e usuários nos bancos de dados mestre e de usuário ocorre durante a implantação:
- Um logon do SQL com privilégios de administrador é criado usando o nome de logon especificado. Um logon é uma conta individual para fazer logon no Banco de Dados SQL, na Instância Gerenciada SQL e no Azure Synapse.
- Esse logon recebe permissões administrativas completas em todos os bancos de dados como uma entidade de segurança no nível do servidor. O logon tem todas as permissões disponíveis e não pode ser limitado. Em uma instância gerenciada, esse logon é adicionado à função de servidor fixa sysadmin (essa função não existe no Banco de Dados SQL do Azure).
- Quando essa conta entra em um banco de dados, ela é correspondida à conta de usuário especial
dbo
(conta de usuário, que existe em cada banco de dados de usuário. O usuário dbo tem todas as permissões de banco de dados no banco de dados e é membro da função de banco de dados fixadb_owner
. Funções de banco de dados fixa adicionais são discutidas posteriormente neste artigo.
Para identificar a conta de Administrador do servidor, abra o portal do Azure e navegue até a guia Propriedades do servidor lógico ou da instância gerenciada:
Importante
O nome da conta de Administrador do servidor não pode ser alterado após sua criação. Para redefinir a senha do administrador do servidor, vá para o portal do Azure, selecione SQL Server, selecione o servidor na lista e clique em Redefinir Senha. Para redefinir a senha da Instância Gerenciada de SQL, vá para o portal do Azure, selecione a instância e selecione Redefinir senha. Você também pode usar o PowerShell ou a CLI do Azure.
Crie logons e usuários adicionais com permissões administrativas
Neste ponto, o servidor ou a instância gerenciada só são configurados para acesso usando uma única conta de usuário e logon do SQL. Você tem as seguintes opções (dependendo do seu modo de implantação) para criar logons adicionais com permissões administrativas totais ou parciais:
Criar uma conta de administrador do Microsoft Entra com permissões administrativas completas
Habilite a autenticação do Microsoft Entra e adicione um administrador do Microsoft Entra. Uma conta do Microsoft Entra pode ser configurada como um administrador da implantação do SQL do Azure com permissões administrativas completas. Essa conta pode ser uma conta de grupo de segurança ou individual. Um administrador do Microsoft Entra deve ser configurado quando você quer usar as contas do Microsoft Entra para se conectar ao Banco de Dados SQL, à Instância Gerenciada de SQL ou ao Azure Synapse. Para obter informações detalhadas sobre como habilitar a autenticação do Microsoft Entra para todos os tipos de implantação do SQL do Azure, veja os seguintes artigos:
Na Instância Gerenciada de SQL, crie logons do SQL com permissões administrativas completas
- Crie um logon do SQL adicional no banco de dados
master
. - Adicione o logon à função de servidor fixa sysadmin usando a instrução ALTERAR FUNÇÃO DE SERVIDOR. Este logon terá permissões administrativas totais.
- Crie um logon do Microsoft Entra usando a sintaxe CRIAR LOGON como alternativa.
Observação
As funções
dbmanager
eloginmanager
não pertencem a implantações da Instância Gerenciada de SQL do Azure.- Crie um logon do SQL adicional no banco de dados
No Banco de Dados SQL, crie logons do SQL com permissões administrativas limitadas
- Crie um logon do SQL adicional no banco de dados
master
. - Adicione o Logon às funções de nível do servidor
##MS_DatabaseManager##
,##MS_LoginManager##
e##MS_DatabaseConnector##
usando a instrução ALTER SERVER ROLE.
Os membros das funções de banco de dados
master
especiais para Banco de Dados SQL do Azure têm autoridade para criar e gerenciar bancos de dados ou criar e gerenciar logons. Em bancos de dados criados por um usuário que seja membro da funçãodbmanager
, o membro é mapeado na função de banco de dados fixadb_owner
e pode fazer logon e gerenciar esse banco de dados usando a conta de usuário dodbo
. Essas funções não têm permissões explícitas fora do banco de dadosmaster
.Importante
Você não pode criar um logon do SQL adicional com permissões administrativas totais no Banco de Dados SQL do Azure. Somente a conta do administrador do servidor ou a conta do administrador do Microsoft Entra (que pode ser um grupo do Microsoft Entra) pode adicionar ou remover outros logons de ou para funções de servidor. Isso é específico para o Banco de Dados SQL do Azure.
- Crie um logon do SQL adicional no banco de dados
No pool de SQL dedicado do Azure Synapse, crie logons do SQL com permissões administrativas limitadas
- Crie um logon do SQL adicional no banco de dados
master
. - Crie uma conta de usuário no banco de dados
master
associado ao novo logon. - Adicione a conta de usuário à função
dbmanager
,loginmanager
ou ambas no banco de dadosmaster
usando a instrução sp_addrolemember.
- Crie um logon do SQL adicional no banco de dados
No pool de SQL sem servidor do Azure Synapse, crie logons do SQL com permissões administrativas limitadas
- Crie um logon do SQL adicional no banco de dados
master
. - Adicione o logon do SQL à função de servidor fixa sysadmin usando a instrução ALTERAR FUNÇÃO DE SERVIDOR.
- Crie um logon do Microsoft Entra usando a sintaxe CRIAR LOGON como alternativa.
- Crie um logon do SQL adicional no banco de dados
Crie contas para usuários não administradores
Você pode criar contas para usuários não administradores usando um dos dois métodos:
Criar um logon
Crie um logon do SQL no banco de dados
master
. Depois crie uma conta de usuário em cada banco de dados ao qual o usuário precisa acessar e associe a conta de usuário a esse logon. Essa abordagem é preferida quando o usuário deve acessar vários bancos de dados e se você quiser manter as senhas sincronizadas. No entanto, essa abordagem tem complexidades quando usadas com replicação geográfica, já que o logon deve ser criado no servidor primário e no(s) servidor(es) secundário(s). Para obter mais informações, consulte Configurar e gerenciar a segurança do Banco de Dados SQL do Azure para restauração geográfica ou failover .Criar uma conta de usuário
Crie uma conta de usuário no banco de dados para a qual um usuário precisa de acesso (também chamado de usuário independente).
- Você sempre pode criar esse tipo de conta de usuário com o Banco de Dados SQL.
- Com a Instância Gerenciada de SQL que suporta entidades do servidor do Microsoft Entra, você pode criar contas de usuário para autenticação com a Instância Gerenciada de SQL sem exigir que os usuários do banco de dados sejam criados como usuários de banco de dados independentes.
Com essa abordagem, as informações de autenticação de usuário são armazenadas em cada banco de dados e replicadas automaticamente nos bancos de dados replicados geograficamente. No entanto, se a mesma conta existir em vários bancos de dados e você estiver usando autenticação do SQL, deverá manter as senhas sincronizadas manualmente. Além disso, se um usuário tiver uma conta em bancos de dados diferentes com senhas diferentes, lembrar dessas senhas pode se tornar um problema.
Importante
Você deve estar conectado usando uma conta do Microsoft Entra no banco de dados no Banco de Dados SQL do Azure para criar usuários independentes mapeados para identidades do Microsoft Entra. Na Instância Gerenciada de SQL, um logon do SQL com permissões sysadmin
também pode criar um logon ou usuário do Microsoft Microsoft Entra.
Para obter exemplos de criar logons e usuários, consulte:
- Criar logon para o Banco de Dados SQL do Azure
- Criar logon para a Instância Gerenciada de SQL do Azure
- Criar logon para o Azure Synapse
- Criar usuário
- Criar usuários contidos do Microsoft Entra
Dica
Para ver um tutorial de segurança que inclui a criação de usuários no Banco de Dados SQL do Azure, consulte Tutorial: Proteger o Banco de Dados SQL do Azure.
Usando funções de banco de dados fixas e personalizadas
Após criar uma conta de usuário em um banco de dados, seja com base em um logon ou como um usuário independente, você pode autorizar esse usuário a executar várias ações e acessar dados em um banco de dados em particular. Você pode usar os seguintes métodos para autorizar o acesso:
Funções de banco de dados fixa
Adicione a conta do usuário a uma função de banco de dados fixa. Há 9 funções de banco de dados fixa, cada uma com um conjunto definido de permissões. As funções de banco de dados fixa mais comuns são: db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter e db_denydatareader. db_owner é usada normalmente para conceder permissão total a apenas alguns usuários. As outras funções fixas de banco de dados são úteis para mover rapidamente um banco de dados simples para desenvolvimento, mas não são recomendadas para a maioria dos bancos de dados de produção. Por exemplo, a função de banco de dados fixa db_datareader concede acesso de leitura a todas as tabelas no banco de dados, sendo mais do que é estritamente necessário.
Para adicionar um usuário a uma função de banco de dados fixa:
- No pool de SQL sem servidor do Azure Synapse e Banco de Dados SQL do Azure, use a instrução ALTER ROLE. Para obter exemplos, consulte Exemplos de ALTERAR FUNÇÃO
- No pool de SQL dedicado do Azure Synapse, use a instrução sp_addrolemember. Para obter exemplos, consulte Exemplos de sp_addrolemember.
Função de banco de dados personalizada
Crie uma função de banco de dados personalizada usando a instrução CRIAR FUNÇÃO. Uma função personalizada permite criar suas próprias funções de banco de dados definidas pelo usuário e conceder cuidadosamente a cada função o mínimo de permissões necessárias para a necessidade de negócios. Você pode adicionar usuários à função personalizada. Quando um usuário for membro de várias funções, ele agregará as permissões de todas elas.
Conceder permissões diretamente
Conceda permissões à conta de usuário diretamente. Há mais de 100 permissões que podem ser concedidas ou negadas individualmente no Banco de Dados SQL. Muitas dessas permissões são aninhadas. Por exemplo, a permissão
UPDATE
em um esquema inclui a permissãoUPDATE
em cada tabela dentro desse esquema. Assim como ocorre na maioria dos sistemas de permissão, a negação de uma permissão substitui uma concessão. Devido à natureza aninhada e ao número de permissões, talvez seja necessário realizar um estudo cuidadoso para criar um sistema de permissões apropriado a fim de proteger corretamente o banco de dados. Comece com a lista de permissões em Permissões (Mecanismo do Banco de Dados) e examine o gráfico com tamanho de pôster das permissões.
Usando grupos
O gerenciamento de acesso eficiente usa permissões atribuídas a grupos de segurança do Active Directory e funções fixas ou personalizadas em vez de usuários individuais.
Ao usar a autenticação do Microsoft Entra, coloque os usuários do Microsoft Entra em um grupo de segurança do Microsoft Entra. Crie um usuário de banco de dados independente para o grupo. Adicione um ou mais usuários de banco de dados como membros a funções de banco de dados personalizadas ou internas com as permissões específicas apropriadas para esse grupo de usuários.
Ao usar a autenticação SQL, crie usuários de banco de dados independentes no banco de dados. Coloque um ou mais usuários do banco de dados em uma função de banco de dados personalizada com permissões específicas adequadas para esse grupo de usuários.
Observação
Você também pode usar grupos para usuários de banco de dados dependentes.
Você deve estar familiarizado com os seguintes recursos que podem ser usados para limitar ou elevar as permissões:
- Representação e assinatura de módulo podem ser usadas para elevar permissões temporariamente com segurança.
- Segurança em nível de linha pode ser usado para limitar quais linhas de um usuário pode acessar.
- Mascaramento de dados pode ser usado para limitar a exposição de dados confidenciais.
- Procedimentos armazenados podem ser usados para limitar as ações que podem ser executadas no banco de dados.