Compartilhar via


Proteger seu SQL Server

O SQL Server é um RDBMS (sistema de gerenciamento de banco de dados relacional) que armazena e gerencia dados comerciais críticos para aplicativos, análises e relatórios. Como geralmente contém informações confidenciais, como registros de clientes, dados financeiros e propriedade intelectual, proteger o SQL Server é essencial para proteger sua organização contra violações de dados, acesso não autorizado e riscos de conformidade.

Este artigo fornece diretrizes sobre como proteger melhor o SQL Server.

Segurança de rede

Proteger o acesso à rede ao SQL Server ajuda a evitar conexões não autorizadas, reduz a exposição a ataques e garante que apenas fontes confiáveis possam acessar seus bancos de dados.

Gerenciamento de identidades

Controles fortes de identidade e autenticação ajudam a garantir que somente usuários e aplicativos autorizados possam acessar recursos do SQL Server.

  • Use a autenticação do Windows ou a autenticação do Microsoft Entra: prefira a autenticação do Windows ou a autenticação do Microsoft Entra em vez da autenticação SQL para gerenciamento centralizado de identidades e controle de ciclo de vida de conta mais fácil. Para obter mais informações, veja Escolher um modo de autenticação.

  • Use contas de serviço gerenciadas por grupo (gMSA) para serviços: use gMSA para gerenciar credenciais de conta de serviço de forma automática e segura. Para obter mais informações, consulte Group-Managed visão geral das Contas de Serviço.

  • Impor políticas de senha fortes: se você estiver usando a autenticação sql, exija senhas complexas que não podem ser facilmente adivinhadas e não são usadas para outras contas. Atualize regularmente senhas e imponha políticas do Active Directory. Para obter mais informações, consulte Senhas fortes.

  • Use usuários de banco de dados independentes quando apropriado: considere usuários de banco de dados independentes para aplicativos que precisam de autenticação no nível do banco de dados sem a necessidade de logons no nível do servidor. Para obter mais informações, consulte Usuários de banco de dados contidos.

Acesso privilegiado

Limitar e monitorar o acesso privilegiado ajuda a evitar alterações não autorizadas e reduz o impacto das contas comprometidas.

  • Conceda as permissões mínimas necessárias: atribua o nível mais baixo de privilégio necessário para cada usuário ou serviço. Revise e ajuste regularmente as permissões para manter privilégios mínimos. Para obter mais informações, consulte Introdução às permissões do mecanismo de banco de dados.

  • Separe os administradores de banco de dados (DBA) e as sysadmin funções: evite conceder sysadmin direitos a todos os DBAs. Use a permissão CONTROL SERVER quando possível, pois respeita DENY as permissões e permite um controle mais granular. Considere uma separação de tarefas que limitam o acesso à máquina virtual, a capacidade de fazer logon no sistema operacional, a capacidade de modificar logs de erro e auditoria e a capacidade de instalar aplicativos e/ou recursos. Para obter mais informações, consulte Permissões (Mecanismo de Banco de Dados).

  • Monitorar e auditar atividades com privilégios: habilite a auditoria para controlar as alterações feitas por contas privilegiadas e examine os logs regularmente para atividades suspeitas. Para obter mais informações, confira Auditoria do SQL Server (Mecanismo de Banco de Dados).

  • Implementar a separação de função: coloque usuários do Active Directory em grupos do AD, mapeie grupos do AD para funções do SQL Server e conceda às funções do SQL Server as permissões mínimas exigidas pelos aplicativos. Para obter mais informações, consulte Introdução às permissões do mecanismo de banco de dados.

Proteção de dados

Proteger dados em repouso e em trânsito é essencial para evitar a divulgação ou a adulteração não autorizadas.

  • Criptografar informações confidenciais com Always Encrypted: Use Always Encrypted e Always Encrypted com enclaves seguros para proteger dados confidenciais no SQL Server. Prefira a criptografia aleatória para uma segurança mais forte. Para obter mais informações, consulte Always Encrypted.

  • Use a TDE (Transparent Data Encryption) para arquivos de banco de dados: habilite o TDE para criptografar arquivos de banco de dados, backup e tempdb, protegendo os dados se a mídia física estiver comprometida. Para obter mais informações, confira Transparent Data Encryption (TDE).

  • Mascarar dados confidenciais com o DDM (Máscara de Dados Dinâmicos): use o DDM para ofuscar dados confidenciais nos resultados da consulta quando a criptografia não for possível. Para obter mais informações, consulte Dynamic Data Masking.

  • Conceda permissões no nível da coluna: limite o acesso a colunas confidenciais concedendo SELECT, REFERENCESou UPDATE permissões apenas para usuários autorizados. Para obter mais informações, consulte as permissões GRANT.

  • Use o RLS (Row-Level Security) para restringir o acesso a dados: implemente o RLS para garantir que os usuários vejam apenas dados relevantes para eles. Use SESSION_CONTEXT para aplicativos de camada intermediária em que os usuários compartilham contas SQL. Para obter mais informações, consulte Row-Level Security.

  • Combine os recursos de segurança para proteção máxima: use Row-Level Security junto com o Always Encrypted ou o Dynamic Data Masking para maximizar a postura de segurança da sua organização. Para obter mais informações, consulte Row-Level Práticas recomendadas de segurança.

Registro em log e detecção de ameaças

O registro em log e o monitoramento abrangentes ajudam a detectar ameaças, investigar incidentes e atender aos requisitos de conformidade.

  • Habilitar e configurar a Auditoria do SQL Server: auditar o acesso e as alterações em dados e configurações confidenciais no nível do servidor e do banco de dados. Considere a auditoria de tabelas e colunas com dados confidenciais que tenham medidas de segurança aplicadas a elas. Examine regularmente os logs de auditoria, especialmente para tabelas que contêm informações confidenciais em que medidas de segurança completas não são possíveis. Para obter mais informações, confira Auditoria do SQL Server (Mecanismo de Banco de Dados).

  • Use ledger no SQL Server: Habilite o ledger para criar um registro imutável de alterações em dados confidenciais, fornecendo um registro em log que evidencie alterações. Para obter mais informações, confira Configurar um banco de dados do razão.

Backup e recuperação

Processos confiáveis de backup e recuperação protegem seus dados contra perda devido a falhas, desastres ou ataques.

Avaliação de segurança e mitigação de ameaças

Avaliar regularmente seu ambiente do SQL Server ajuda a identificar vulnerabilidades e melhorar sua postura de segurança.

  • Limitar recursos habilitados para reduzir a superfície de ataque: habilite apenas os recursos do SQL Server necessários para seu ambiente. Para saber mais, veja o tópico Configuração de área da superfície.

  • Executar avaliações de vulnerabilidade: use a Avaliação de Vulnerabilidades do SQL no SSMS para descobrir e corrigir possíveis vulnerabilidades de banco de dados. Para obter mais informações, consulte a Avaliação de Vulnerabilidades do SQL.

  • Classificar e rotular dados confidenciais: use a Descoberta e Classificação de Dados SQL para identificar e rotular dados confidenciais para melhor proteção e conformidade. Para obter mais informações, consulte Descoberta e classificação de dados SQL.

  • Examine e reduza ameaças comuns: proteja contra injeção de SQL, ataques de canal lateral, força bruta, spray de senha e ransomware seguindo as práticas recomendadas para validação de entrada, aplicação de patch e controle de acesso. Para obter mais informações, consulte injeção de SQL e ataques de Ransomware.

  • Implementar a segurança de defesa detalhada: use vários recursos de segurança direcionados a diferentes escopos de segurança para fornecer proteção abrangente contra várias ameaças. Para obter mais informações, consulte as práticas recomendadas de segurança do SQL Server.