Tutorial: Proteger um banco de dados no Banco de Dados SQL do Azure

Aplica-se a:Banco de Dados SQL do Azure

Neste tutorial, você aprenderá a:

  • Criar regras de firewall no nível do servidor e do banco de dados
  • Configurar um administrador do Microsoft Entra
  • Gerenciar o acesso do usuário com a autenticação do SQL, a autenticação do Microsoft Entra e cadeias de conexão seguras
  • Habilitar recursos de segurança, como o Microsoft Defender para SQL, a auditoria, o mascaramento de dados e a criptografia

Observação

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

O Banco de Dados SQL do Azure protege os dados permitindo que você:

  • Limite o acesso usando regras de firewall
  • Use mecanismos de autenticação que exigem a identidade
  • Use a autorização com associações e permissões baseadas em função
  • Habilitar recursos de segurança

Observação

A Instância Gerenciada de SQL do Azure é protegida usando regras de segurança de rede e pontos de extremidade privados, conforme descrito em Instância Gerenciada do SQL do Azure e Arquitetura de conectividade.

Para obter mais informações, confira os artigos Visão geral e Recursos de segurança do Banco de Dados SQL do Azure.

Dica

Este módulo gratuito do Learn mostra como Proteger seu banco de dados no Banco de Dados SQL do Azure.

Pré-requisitos

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

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Entre no Portal do Azure

Para obter todas as etapas do tutorial, entre no portal do Azure

Criar regras de firewall

Os bancos de dados no Banco de Dados SQL são protegidos por firewalls no Azure. Por padrão, todas as conexões ao servidor e aos bancos de dados são rejeitadas. Para saber mais, confira Regras de firewall no nível do servidor e do banco de dados.

Defina Permitir acesso aos serviços do Azure como DESATIVADO para a configuração mais segura. Em seguida, crie um IP reservado (implantação clássica) para o recurso que precisa se conectar, como uma VM do Azure ou um serviço de nuvem, e só permita a esse endereço IP o acesso por meio do firewall. Se você estiver usando o modelo de implantação do Resource Manager, um endereço IP público dedicado será necessário para cada recurso.

Observação

O Banco de Dados SQL se comunica pela porta 1433. Se você estiver tentando se conectar de dentro de uma rede corporativa, o tráfego de saída pela porta 1433 talvez não seja permitido pelo firewall da rede. Se isso acontecer, você não poderá se conectar ao servidor, a menos que o administrador abra a porta 1433.

Configurar regras de firewall no nível do servidor

As regras de firewall de IP no nível do servidor se aplicam a todos os bancos de dados dentro do mesmo servidor do Banco de Dados SQL.

Para configurar uma regra de firewall no nível do servidor:

  1. No portal do Azure, selecione Bancos de dados SQL no menu à esquerda e selecione seu banco de dados na página Bancos de dados SQL.

    Screenshot of the Azure portal page for a logical SQL database, highlighting the server name.

    Observação

    Copie o nome do servidor totalmente qualificado (como yourserver.database.windows.net) para uso posterior no tutorial.

  2. Selecione Rede em Configurações. Escolha a guia Acesso Público e selecione Redes selecionadas em Acesso à rede pública para exibir a seção Regras de firewall.

    Screenshot of the Azure portal Networking page for a logical SQL Server, showing the server-level IP firewall rule.

  3. Selecione Adicionar IP do cliente na barra de ferramentas para adicionar seu endereço IP atual a uma nova regra de firewall de IP. Uma regra de firewall de IP pode abrir a porta 1433 para um único endereço IP ou um intervalo de endereços IP.

  4. Selecione OK para salvar suas configurações de firewall.

Agora você pode se conectar a qualquer banco de dados do servidor com o endereço IP ou o intervalo de endereços IP especificado.

Configurar regras de firewall do banco de dados

As regras de firewall no nível do banco de dados se aplicam somente a bancos de dados individuais. O banco de dados manterá essas regras durante um failover de servidor. As regras de firewall no nível do banco de dados só poderão ser configuradas usando instruções T-SQL (Transact-SQL) e somente depois que você configurar uma regra de firewall no nível do servidor.

Para configurar uma regra de firewall de nível de banco de dados:

  1. Conecte-se ao banco de dados, por exemplo, usando o SQL Server Management Studio.

  2. No Pesquisador de Objetos, clique com o botão direito do mouse no banco de dados e selecione Nova Consulta.

  3. Na janela de consulta, adicione esta instrução e modifique o endereço IP de seu endereço IP público:

    EXECUTE sp_set_database_firewall_rule N'Example DB Rule','0.0.0.4','0.0.0.4';
    
  4. Na barra de ferramentas, selecione Executar para criar a regra de firewall.

Observação

Crie também uma regra de firewall no nível do servidor no SSMS usando o comando sp_set_firewall_rule, embora você precise estar conectado ao banco de dados mestre.

Criar um administrador do Microsoft Entra

Certifique-se de estar usando o domínio gerenciado apropriado do Microsoft Entra ID (antigo Azure Active Directory). Para selecionar seu domínio, use o canto superior direito do portal do Azure. Esse processo confirma se a mesma assinatura é usada para o Microsoft Entra ID e o servidor lógico que hospeda o banco de dados ou o data warehouse.

Screenshot of the Azure portal showing the Directory + subscription filter page, where you would choose the directory.

Para definir o administrador do Microsoft Entra:

  1. No portal do Azure, na página do SQL Server, selecione Microsoft Entra ID no menu de recursos e depois Configurar administrador para abrir o painel Microsoft Entra ID.

    Screenshot of the Azure portal Microsoft Entra ID page for a logical server.

    Importante

    Você precisa ser "Administrador global" para executar essa tarefa.

  2. No painel Microsoft Entra ID, pesquise e selecione um usuário ou grupo do Microsoft Entra e escolha Selecionar. Todos os membros e grupos da sua organização do Microsoft Entra estarão listados, e as entradas em cinza não têm suporte como administradores do Microsoft Entra. Confira Limites e recursos do Microsoft Entra.

    Screenshot of the Azure portal page to add a Microsoft Entra admin.

    Importante

    O Azure RBAC (controle de acesso baseado em função do Azure) se aplica somente ao portal e não é propagado para o SQL Server.

  3. Na parte superior da página de Administrador do Microsoft Entra, selecione Salvar.

    O processo de alteração de um administrador poderá levar vários minutos. O novo administrador aparecerá no campo Administrador do Microsoft Entra.

Observação

Ao configurar um administrador do Microsoft Entra, o novo nome do administrador (usuário ou grupo) não poderá existir como logon ou usuário no banco de dados mestre. Se ele estiver presente, a instalação falhará e reverterá as alterações, indicando que um nome de administrador como esse já existe. Como o logon ou usuário do servidor não faz parte do Microsoft Entra ID, qualquer esforço para conectar o usuário usando a autenticação do Microsoft Entra falhará.

Para obter informações sobre como configurar o Microsoft Entra ID, confira:

Gerenciar o acesso ao banco de dados

Gerencie o acesso ao banco de dados adicionando usuários ao banco de dados ou permitindo o acesso do usuário com cadeias de conexão seguras. As cadeias de conexão são úteis para aplicativos externos. Para saber mais, confira Gerenciar logons e contas de usuário e Autenticação do Microsoft Entra.

Para adicionar usuários, escolha o tipo de autenticação de banco de dados:

  • Autenticação do SQL: usa um nome de usuário e uma senha para logons, que só são válidos no contexto de um banco de dados específico no servidor

  • Autenticação do Microsoft Entra, use identidades gerenciadas pelo Microsoft Entra ID

Autenticação do SQL

Para adicionar um usuário com a autenticação do SQL:

  1. Conecte-se ao banco de dados, por exemplo, usando o SQL Server Management Studio.

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

  3. Na janela de consulta, insira o seguinte comando:

    CREATE USER ApplicationUser WITH PASSWORD = 'YourStrongPassword1';
    
  4. Na barra de ferramentas, selecione Executar para criar o usuário.

  5. Por padrão, o usuário pode se conectar ao banco de dados, mas não tem permissões para ler nem gravar dados. Para conceder essas permissões, execute os seguintes comandos em uma nova janela de consulta:

    ALTER ROLE db_datareader ADD MEMBER ApplicationUser;
    ALTER ROLE db_datawriter ADD MEMBER ApplicationUser;
    

Observação

Crie contas não administrador no nível do banco de dados, a menos que ele precise executar tarefas de administrador, como a criação de usuários.

autenticação do Microsoft Entra

Como o Banco de Dados SQL do Azure não oferece suporte a entidades de segurança do servidor (logons) do Microsoft Entra, os usuários de banco de dados criados com contas do Microsoft Entra são criados como usuários de banco de dados independente. Um usuário de banco de dados independente não está associado a um logon no banco de dados master, mesmo que exista um logon com o mesmo nome. A identidade do Microsoft Entra pode se destinar a um usuário individual ou um grupo. Para obter mais informações, consulte Usuários de banco de dados independente, tornar seu banco de dados portátil e revise o Tutorial do Microsoft Entra sobre como fazer a autenticação usando o Microsoft Entra ID.

Observação

Os usuários de banco de dados (excluindo os administradores) não podem ser criados usando o portal do Azure. As funções do Microsoft Entra não são propagadas para servidores, bancos de dados ou data warehouses do SQL. Elas só são usadas para gerenciar recursos do Azure e não se aplicam às permissões de banco de dados.

Por exemplo, a função Colaborador do SQL Server não permite acesso para conexão com um banco de dados ou um data warehouse. Essa permissão precisa ser concedida no banco de dados usando instruções T-SQL.

Importante

Não há suporte para caracteres especiais, como dois-pontos : ou E comercial &, em nomes de usuário nas instruções T-SQL CREATE LOGIN e CREATE USER.

Para adicionar um usuário com autenticação do Microsoft Entra:

  1. Conecte-se ao servidor no Azure usando uma conta do Microsoft Entra com, pelo menos, a permissão ALTER ANY USER.

  2. No Pesquisador de Objetos, clique com o botão direito do mouse no banco de dados e selecione Nova Consulta.

  3. No período de consulta, insira o seguinte comando e modifique <Azure_AD_principal_name> para o nome da entidade de segurança do usuário do Microsoft Entra ou o nome de exibição do grupo do Microsoft Entra:

    CREATE USER [<Azure_AD_principal_name>] FROM EXTERNAL PROVIDER;
    

Observação

Os usuários do Microsoft Entra são marcados nos metadados do banco de dados com o tipo E (EXTERNAL_USER) e tipo X (EXTERNAL_GROUPS) para grupos. Para obter mais informações, consulte sys.database_principals.

Proteger cadeias de conexão

Para garantir uma conexão segura e criptografada entre o aplicativo cliente e o banco de dados SQL, uma cadeia de conexão precisa ser configurada para:

  • Solicitar uma conexão criptografada
  • Não confiar no certificado do servidor

A conexão é estabelecida usando o protocolo TLS e reduz o risco de um ataque man-in-the-middle. As cadeias de conexão estão disponíveis por banco de dados e são pré-configuradas para dar suporte a drivers de cliente, como ADO.NET, JDBC, ODBC e PHP. Para obter informações sobre TLS e conectividade, consulte Considerações sobre TLS.

Para copiar uma cadeia de conexão segura:

  1. No portal do Azure, selecione Bancos de dados SQL no menu à esquerda e selecione seu banco de dados na página Bancos de dados SQL.

  2. Na página Visão geral, selecione Mostrar cadeias de conexão de banco de dados.

  3. Selecione uma guia do driver e copie a cadeia de conexão completa.

    Screenshot of the Azure portal showing the connection strings page. The ADO.NET tab is selected and the ADO.NET (SQL authentication) connection string is displayed.

Habilitar recursos de segurança

O Banco de Dados SQL do Azure fornece recursos de segurança que são acessados usando o portal do Azure. Esses recursos estão disponíveis para o banco de dados e o servidor, exceto a máscara de dados, que só está disponível no banco de dados. Para saber mais, confira Microsoft Defender para SQL, Auditoria, Mascaramento de dados dinâmico e Transparent Data Encryption.

Microsoft Defender para SQL

O recurso Microsoft Defender para SQL detecta ameaças potenciais conforme elas ocorrem e fornece alertas de segurança sobre atividades anormais. Os usuários podem explorar esses eventos suspeitos usando o recurso de auditoria e determinar se o evento tinha o objetivo de acessar, violar ou explorar os dados no banco de dados. Os usuários também obtêm uma visão geral de segurança que inclui uma avaliação de vulnerabilidade e a ferramenta de descoberta e classificação de dados.

Observação

Uma ameaça de exemplo é a injeção de SQL, um processo em que os invasores injetam um SQL mal-intencionado em entradas de aplicativo. Em seguida, um aplicativo poderá inadvertidamente executar o SQL mal-intencionado e permitir que os invasores obtenham acesso para violar ou modificar dados no banco de dados.

Para habilitar o Microsoft Defender para SQL:

  1. No portal do Azure, selecione Bancos de dados SQL no menu à esquerda e selecione seu banco de dados na página Bancos de dados SQL.

  2. Na página Visão geral, selecione o link Nome do servidor. A página do servidor será aberta.

  3. Na página do SQL Server, encontre a seção Segurança e selecione Defender para Nuvem.

    1. Selecione LIGADO em Microsoft Defender para SQL para habilitar o recurso. Escolha uma conta de armazenamento para salvar os resultados da avaliação de vulnerabilidade. Em seguida, selecione Salvar.

      Screenshot of the Azure portal Navigation pane for threat detection settings.

      Configure também emails para receber alertas de segurança, detalhes de armazenamento e tipos de detecção de ameaças.

  4. Retorne à página Bancos de dados SQL de seu banco de dados e selecione Defender para Nuvem na seção Segurança. Aqui você encontrará vários indicadores de segurança disponíveis para o banco de dados.

    Screenshot of the Azure portal Threat status page showing pie charts for Data Discovery & Classification, Vulnerability Assessment, and Threat Detection.

Se forem detectadas atividades anormais, você receberá um email com informações sobre o evento. Isso inclui a natureza da atividade, o banco de dados, o servidor, a hora do evento, possíveis causas e ações recomendadas para investigar e atenuar a ameaça potencial. Se um email desse tipo for recebido, selecione o link Log de Auditoria do SQL do Azure para iniciar o portal do Azure e mostrar os registros de auditoria relevantes para a hora do evento.

Screenshot of a sample email from Azure, indicating a Potential Sql Injection Threat detection. A link in the body of the email to Azure SQL DB Audit Logs is highlighted.

Auditoria

O recurso de auditoria rastreia eventos de banco de dados, gravando-os em um log de auditoria no Armazenamento do Azure, no Azure Monitor ou em um hub de eventos. A auditoria ajuda a manter a conformidade regulatória, entender a atividade do banco de dados e obter insights sobre discrepâncias e anomalias que podem indicar possíveis violações de segurança.

Para habilitar a auditoria:

  1. No portal do Azure, selecione Bancos de dados SQL no menu à esquerda e selecione seu banco de dados na página Bancos de dados SQL.

  2. Na seção Segurança, selecione Auditoria.

  3. Nas configurações de Auditoria, defina os seguintes valores:

    1. Defina Auditoria como ATIVADO.

    2. Selecione Destino do log de auditoria como um dos seguintes:

      • Armazenamento, uma conta de armazenamento do Azure na qual os logs de eventos são salvos e podem ser baixados como arquivos .xel

        Dica

        Use a mesma conta de armazenamento para todos os bancos de dados auditados para aproveitar ao máximo os modelos de relatório de auditoria.

      • Log Analytics, que armazena automaticamente os eventos para consulta ou análise adicional

        Observação

        Um workspace do Log Analytics é necessário para dar suporte a recursos avançados, como análise, regras de alerta personalizadas e exportações do Excel ou do Power BI. Sem um workspace, apenas o editor de consultas fica disponível.

      • Hub de Eventos, que permite que os eventos sejam encaminhados para uso em outros aplicativos

    3. Selecione Salvar.

      Screenshot of the Azure portal Audit settings page. The Save button is highlighted. Audit log destination fields are highlighted.

  4. Agora você pode selecionar Exibir logs de auditoria para exibir dados de eventos do banco de dados.

    Screenshot of the Azure portal page showing Audit records for a SQL database.

Importante

Confira Auditoria do Banco de Dados SQL para saber como personalizar ainda mais os eventos de auditoria usando o PowerShell ou a API REST.

Mascaramento de dados dinâmicos

O recurso de máscara de dados ocultará automaticamente dados confidenciais no banco de dados.

Para habilitar a máscara de dados:

  1. No portal do Azure, selecione Bancos de dados SQL no menu à esquerda e selecione seu banco de dados na página Bancos de dados SQL.

  2. Na seção Segurança, selecione Máscara de Dados Dinâmicos.

  3. Nas configurações de Máscara de Dados Dinâmicos, selecione Adicionar máscara para adicionar uma regra de máscara. O Azure preencherá automaticamente os esquemas, as tabelas e as colunas de banco de dados disponíveis para escolha.

    Screenshot of the Azure portal page to Save or Add Dynamic Data Mask fields. Recommended fields to mask display schema, table, and columns of tables.

  4. Selecione Salvar. As informações selecionadas agora estão mascaradas para privacidade.

    Screenshot of SQL Server Management Studio (SSMS) showing a simple INSERT and SELECT statement. The SELECT statement displays masked data in the LastName column.

Transparent Data Encryption

O recurso de criptografia criptografa automaticamente os dados em repouso e não exige alterações em aplicativos que acessam o banco de dados criptografado. Para novos bancos de dados, a criptografia está ativada por padrão. Criptografe também os dados usando o SSMS e o recurso Always Encrypted.

Para habilitar ou verificar a criptografia:

  1. No portal do Azure, selecione Bancos de dados SQL no menu à esquerda e selecione seu banco de dados na página Bancos de dados SQL.

  2. Na seção Segurança, selecione Transparent Data Encryption.

  3. Se necessário, defina Criptografia de dados como ATIVADO. Selecione Salvar.

    Screenshot of the Azure portal page to enable Transparent Data Encryption.

Observação

Para exibir o status da criptografia, conecte-se ao banco de dados usando o SSMS e consulte a coluna encryption_state da exibição sys.dm_database_encryption_keys. Um estado igual a 3 indica que o banco de dados está criptografado.

Observação

Alguns itens considerados conteúdo do cliente, como nomes de tabela, de objeto e de índice, podem ser transmitidos em arquivos de log para obter suporte e solução de problemas da Microsoft.

Dica

Tudo pronto para começar a desenvolver um aplicativo .NET? Este módulo gratuito do Learn mostra como Desenvolver e configurar um aplicativo ASP.NET que consulta um Banco de Dados SQL do Azure, incluindo a criação de um banco de dados simples.

Próxima etapa

Avance para o próximo tutorial para saber como implementar a distribuição geográfica.