Partilhar via


Autorizar o acesso aos sistemas de bases de dados SQL Database, SQL Managed Instance e Azure Synapse Analytics

Aplica-se a:Banco de Dados SQL do AzureInstância Gerenciada SQL do Azure do Azure Synapse Analytics

Neste artigo, você aprende sobre:

  • Opções de configuração para o Banco de Dados SQL do Azure, a Instância Gerenciada do SQL do Azure e o Azure Synapse Analytics que permitem que os usuários executem tarefas administrativas e acessem dados armazenados nesses bancos de dados.
  • Configuração de acesso e autorização após a criação inicial de um novo servidor.
  • Como adicionar logins e contas de usuário no master banco de dados e, em seguida, conceder permissões administrativas a essas contas.
  • Como adicionar contas de usuário em bancos de dados de usuários, associadas a logins ou como contas de usuário contidas.
  • Configure contas de usuário com permissões em bancos de dados de usuários 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 do SQL do Azure e no Azure Synapse são referidos coletivamente no restante deste artigo como bancos de dados, e o servidor está se referindo ao servidor lógico que gerencia bancos de dados para o Banco de Dados SQL do Azure e o Azure Synapse.

Observação

O Microsoft Entra ID era conhecido anteriormente como Azure Ative Directory (Azure AD).

Autenticação e autorização

A autenticação é o processo de provar que o usuário é quem afirma ser. Um usuário se conecta a um banco de dados usando uma conta de usuário. Quando um usuário tenta se conectar a um banco de dados, ele fornece uma conta de usuário e informações de autenticação. O usuário é autenticado usando um dos dois métodos de autenticação a seguir:

Logons e usuários: uma conta de usuário em um banco de dados pode ser associada a um logon armazenado no master banco de dados ou pode ser um nome de usuário armazenado em um banco de dados individual.

  • Um login é uma conta individual no master banco de dados, à qual uma conta de usuário em um ou mais bancos de dados pode ser vinculada. Com um login, as informações de credenciais da conta de usuário são armazenadas com o login.
  • Uma conta de usuário é uma conta individual em qualquer banco de dados que pode estar, mas não precisa estar, vinculada a um login. Com uma conta de usuário que não está vinculada a um login, as informações de credenciais são armazenadas com a conta de usuário.

A autorização para acessar dados e executar várias ações é gerenciada usando funções de banco de dados e permissões explícitas. Autorização refere-se às permissões atribuídas a um usuário e determina o que esse usuário tem permissão para fazer. A autorização é controlada pelas funções de associação de banco de dados e pelas permissões a nível de objeto da sua conta de utilizador. Como prática recomendada, você deve conceder aos usuários o mínimo de privilégios necessários.

Logins e contas de usuário existentes após a criação de um novo banco de dados

Quando implementar o SQL do Azure pela primeira vez, pode-se especificar um nome de utilizador e uma senha para um tipo especial de login administrativo, o administrador do servidor. A seguinte configuração de logins e utilizadores nas bases de dados e bases de dados de utilizador ocorre durante a implantação:

  • Um logon SQL com privilégios administrativos é criado usando o nome de logon especificado. Um login é uma conta individual para iniciar sessão no Banco de Dados SQL, na Instância Gerida do SQL e no Azure Synapse.
  • Esse login recebe permissões administrativas completas em todos os bancos de dados como um principal de nível de servidor . O login tem todas as permissões disponíveis e não pode ser limitado. Em uma Instância Gerenciada SQL, 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 dbo de usuário especial (conta de usuário, que existe em cada banco de dados de usuário. O dbo utilizador tem todas as permissões na base de dados e é membro da função de base de dados fixa db_owner. Funções de banco de dados fixas 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 seu servidor lógico ou instância gerenciada:

A captura de tela mostra a página Propriedades do SQL Server onde você pode obter o logon de administrador do servidor e os valores de administrador do Microsoft Entra.

A captura de tela mostra a página Propriedades da instância gerenciada SQL onde você pode obter os valores de login e administrador do Microsoft Entra.

Importante

O nome da conta de de administrador do Server não pode ser alterado após a sua criação. Para redefinir a senha do administrador do servidor, vá para o portal do Azure, selecione SQL Servers, selecione o servidor na lista e selecione Redefinir Senha. Para redefinir a senha da Instância Gerenciada do 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.

Criar logins adicionais e usuários com permissões administrativas

Neste ponto, seu servidor ou instância gerenciada só está configurado para acesso usando um único logon SQL e conta de usuário. Para criar logins adicionais com permissões administrativas totais ou parciais, você tem as seguintes opções (dependendo do seu modo de implantação):

  • 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. Esta conta pode ser uma conta individual ou de grupo de segurança. Um administrador do Microsoft Entradeve ser configurado se você quiser usar contas do Microsoft Entra para se conectar ao Banco de Dados SQL, à Instância Gerenciada do SQL ou à Sinapse do Azure. Para obter informações detalhadas sobre como habilitar a autenticação do Microsoft Entra para todos os tipos de implantação do Azure SQL, consulte os seguintes artigos:

  • Na Instância Gerenciada SQL, crie logons SQL com permissões administrativas completas

    Observação

    Os papéis dbmanager e loginmanagernão dizem respeito às implantações da Instância Gerenciada SQL do Azure.

  • Na Base de Dados SQL, crie inícios de sessão do SQL com permissões administrativas limitadas

    • Crie um logon SQL adicional no master banco de dados.
    • Adicione o Login às ##MS_DatabaseManager####MS_LoginManager## de ##MS_DatabaseConnector## servidor e e de login usando a instrução ALTER SERVER ROLE.

    Os membros de funções de banco de dados especiais master para o Banco de Dados SQL do Azure têm autoridade para criar e gerenciar bancos de dados ou para criar e gerenciar logons. Em bancos de dados criados por um usuário que é membro da dbmanager função, o membro é mapeado para a db_owner função de banco de dados fixa e pode fazer logon e gerenciar esse banco de dados usando a dbo conta de usuário. Essas funções não têm permissões explícitas fora do master banco de dados.

    Importante

    Não é possível criar um logon SQL adicional com permissões administrativas completas no Banco de Dados SQL do Azure. Somente a conta de administrador do servidor ou a conta de 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 do Banco de Dados SQL do Azure.

  • No pool SQL dedicado do Azure Synapse, crie logons SQL com permissões administrativas limitadas

    • Crie um logon SQL adicional no master banco de dados.
    • Crie uma conta de utilizador na base de dados master associada a este novo início de sessão.
    • Adicione a conta de utilizador à dbmanager, à função loginmanager ou a ambas na base de dados master usando a instrução sp_addrolemember.
  • No pool SQL sem servidor do Azure Synapse, crie logons SQL com permissões administrativas limitadas

Criar contas para usuários não administradores

Você pode criar contas para usuários não administrativos usando um dos dois métodos:

  • Criar um login

    Crie um logon SQL no master banco de dados. Em seguida, crie uma conta de usuário em cada banco de dados ao qual esse usuário precisa acessar e associe a conta de usuário a esse login. Essa abordagem é preferida quando o usuário deve acessar vários bancos de dados e você deseja manter as senhas sincronizadas. No entanto, essa abordagem tem complexidades quando usada com replicação geográfica, pois o login 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 utilizador

    Crie uma conta de usuário no banco de dados ao qual um usuário precisa acessar (também chamado de usuário contido).

    • Com o Banco de dados SQL, você sempre pode criar esse tipo de conta de usuário.
    • Com a Instância Gerenciada SQL suportando entidades de servidor Microsoft Entra, você pode criar contas de usuário para autenticação na Instância Gerenciada SQL sem exigir que os usuários do banco de dados sejam criados como um usuário de banco de dados contido.

    Com essa abordagem, as informações de autenticação do usuário são armazenadas em cada banco de dados e replicadas automaticamente para bancos de dados replicados geograficamente. No entanto, se a mesma conta existir em vários bancos de dados e você estiver usando a autenticação SQL, deverá manter as senhas sincronizadas manualmente. Além disso, se um usuário tiver uma conta em diferentes bancos de dados com senhas diferentes, lembrar essas senhas pode se tornar um problema.

Importante

Para criar usuários contidos mapeados para identidades do Microsoft Entra, você deve estar conectado usando uma conta do Microsoft Entra no banco de dados no Banco de Dados SQL do Azure. Na Instância SQL Gerenciada, um logon SQL com permissões sysadmin também pode criar um logon ou utilizador do Microsoft Entra.

Para obter exemplos mostrando como criar logins e usuários, consulte:

Sugestão

Para obter um tutorial de segurança que inclui a criação de usuários no Banco de Dados SQL do Azure, consulte Tutorial: Proteger um banco de dados no Banco de Dados SQL do Azure.

Usando funções de banco de dados fixas e personalizadas

Depois de criar uma conta de usuário em um banco de dados, com base em um login ou como um usuário contido, você pode autorizar esse usuário a executar várias ações e acessar dados em um banco de dados específico. Você pode usar os seguintes métodos para autorizar o acesso:

  • Funções de banco de dados fixas

    Adicione a conta de usuário a uma função de banco de dados fixa. Há 9 funções de banco de dados fixas, cada uma com um conjunto definido de permissões. As funções de banco de dados fixas mais comuns são: db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter e db_denydatareader. db_owner é comumente usado para conceder permissão total a apenas alguns usuários. As outras funções de banco de dados fixas são úteis para obter um banco de dados simples em desenvolvimento rapidamente, 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 do banco de dados, o que é mais do que o estritamente necessário.

    • Para adicionar um usuário a uma função de banco de dados fixa:

  • Função de banco de dados personalizada

    Crie uma função de banco de dados personalizada usando a instrução CREATE ROLE . Uma função personalizada permite que você crie suas próprias funções de banco de dados definidas pelo usuário e conceda cuidadosamente a cada função o mínimo de permissões necessárias para a necessidade comercial. Em seguida, você pode adicionar usuários à função personalizada. Quando um usuário é membro de várias funções, elas agregam 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 estão aninhadas. Por exemplo, a UPDATE permissão em um esquema inclui a UPDATE permissão em cada tabela dentro desse esquema. Como 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, pode ser necessário um estudo cuidadoso para projetar um sistema de permissão apropriado para proteger adequadamente seu banco de dados. Comece com a lista de permissões em Permissões (Mecanismo de Banco de Dados) e revise o gráfico de permissões em formato de cartaz.

Utilização de grupos

O gerenciamento eficiente de acesso usa permissões atribuídas a grupos de segurança do Ative Directory e funções fixas ou personalizadas, em vez de a 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 contido para o grupo. Adicione um ou mais usuários de banco de dados como membro 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 contidos no banco de dados. Coloque um ou mais usuários de banco de dados em uma função de banco de dados personalizada com permissões específicas apropriadas para esse grupo de usuários.

    Observação

    Você também pode usar grupos para usuários de banco de dados não contidos.

Você deve se familiarizar com os seguintes recursos que podem ser usados para limitar ou elevar as permissões:

Próximo passo