<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arquivo de como proteger um banco de dados - Prodb</title>
	<atom:link href="https://prodb.com.br/blog/tag/como-proteger-um-banco-de-dados/feed/" rel="self" type="application/rss+xml" />
	<link>https://prodb.com.br/blog/tag/como-proteger-um-banco-de-dados/</link>
	<description>A solução em nuvem que impulsiona o seu sucesso</description>
	<lastBuildDate>Wed, 23 Sep 2026 16:28:44 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://prodb.com.br/wp-content/uploads/2025/01/favicon-prodb-150x150.png</url>
	<title>Arquivo de como proteger um banco de dados - Prodb</title>
	<link>https://prodb.com.br/blog/tag/como-proteger-um-banco-de-dados/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Como proteger um banco de dados: checklist técnico em 12 pontos</title>
		<link>https://prodb.com.br/blog/como-proteger-um-banco-de-dados/</link>
					<comments>https://prodb.com.br/blog/como-proteger-um-banco-de-dados/#respond</comments>
		
		<dc:creator><![CDATA[Prodb]]></dc:creator>
		<pubDate>Sat, 26 Sep 2026 17:00:00 +0000</pubDate>
				<category><![CDATA[Segurança e Backup]]></category>
		<category><![CDATA[backup imutável]]></category>
		<category><![CDATA[checklist de segurança]]></category>
		<category><![CDATA[como proteger um banco de dados]]></category>
		<category><![CDATA[injeção de SQL]]></category>
		<category><![CDATA[LGPD]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[privilégio mínimo]]></category>
		<category><![CDATA[segurança de banco de dados]]></category>
		<guid isPermaLink="false">https://prodb.com.br/?p=1024</guid>

					<description><![CDATA[<p>O post <a href="https://prodb.com.br/blog/como-proteger-um-banco-de-dados/">Como proteger um banco de dados: checklist técnico em 12 pontos</a> apareceu primeiro em <a href="https://prodb.com.br">Prodb</a>.</p>
]]></description>
										<content:encoded><![CDATA[

<p class="wp-block-paragraph"><strong>Doze controles concretos, na ordem em que devem ser aplicados, com o que fazer em cada um. Do isolamento de rede ao teste de restauração, sem teoria e sem etapa opcional.</strong></p>



<p class="wp-block-paragraph">Existe um padrão nos incidentes com banco de dados que atendemos ou acompanhamos. Quase nunca o ataque começa com uma técnica sofisticada. Começa com uma instância de PostgreSQL exposta na internet porque &#8220;era só para o teste&#8221;, com uma senha que virou permanente, com um usuário de aplicação que tem privilégio de superusuário, ou com um backup que ninguém restaurou desde a implantação.</p>



<p class="wp-block-paragraph">O relatório Cost of a Data Breach da IBM (2024) mediu que o tempo médio para identificar e conter uma violação de dados chega a 258 dias. Ou seja, mais de oito meses. Nesse intervalo, a operação segue normal, os relatórios fecham e o incidente já aconteceu.</p>



<p class="wp-block-paragraph">Na prática, saber como proteger um banco de dados é executar um conjunto pequeno de controles bem conhecidos e nunca implantados até o fim. Este é o checklist. Doze pontos, agrupados em quatro camadas, na ordem em que valem mais.</p>



<p class="wp-block-paragraph">Cada item traz o que verificar e o que fazer. Vale dizer que, se você trabalha com PostgreSQL, MySQL/MariaDB ou SQL Server, os exemplos se aplicam com pequenas variações de sintaxe.</p>



<h2 class="wp-block-heading">Camada 1: superfície de exposição (pontos 1 a 3)</h2>



<p class="wp-block-paragraph">A primeira camada elimina o acesso que não deveria existir. É também a que dá mais resultado por hora de trabalho: reduz o número de pessoas e máquinas capazes de sequer tentar uma conexão.</p>



<h3 class="wp-block-heading">1. Tire o banco de dados da internet</h3>



<p class="wp-block-paragraph">Banco de dados não deve ter IP público. Ele fica em sub-rede privada, e o acesso chega por VPN, bastion host (uma máquina intermediária, endurecida, usada como único ponto de entrada) ou pela própria rede interna da aplicação.</p>



<p class="wp-block-paragraph"><strong>O que fazer:</strong></p>



<ul class="wp-block-list">
<li>Remova o IP público da instância. Se a aplicação está na mesma rede, ela não precisa dele.</li>



<li>Configure o grupo de segurança / firewall para aceitar conexões apenas do IP ou do grupo da aplicação. Nunca <code>0.0.0.0/0</code>.</li>



<li>Se alguém da equipe precisa acessar de casa, a resposta é VPN, não liberação de IP.</li>
</ul>



<p class="wp-block-paragraph"><strong>Teste rápido:</strong> de uma rede externa, tente <code>telnet seu-host 5432</code> (PostgreSQL) ou <code>3306</code> (MySQL). Se conecta, então você tem um problema hoje, não amanhã.</p>



<h3 class="wp-block-heading">2. Feche a porta padrão e o acesso administrativo remoto</h3>



<p class="wp-block-paragraph">Trocar a porta padrão não é segurança de verdade, mas reduz ruído de varredura automatizada. O controle que importa, contudo, é impedir login administrativo remoto e restringir por origem no próprio banco.</p>



<p class="wp-block-paragraph"><strong>O que fazer:</strong></p>



<ul class="wp-block-list">
<li><strong>PostgreSQL:</strong> revise o <code>pg_hba.conf</code>. Nenhuma linha com <code>trust</code>. Use <code>scram-sha-256</code> como método de autenticação e restrinja por faixa de rede. Confirme que <code>listen_addresses</code> não é <code>*</code> sem necessidade.</li>



<li><strong>MySQL/MariaDB:</strong> ajuste <code>bind-address</code> para a interface interna. Remova usuários com host <code>%</code>: rode <code>SELECT user, host FROM mysql.user;</code> e trate qualquer <code>%</code> em conta administrativa como liberação global.</li>



<li><strong>SQL Server:</strong> desative o protocolo TCP para a instância se ela só atende localmente e restrinja o endpoint pelo firewall.</li>



<li><strong>Em todos:</strong> remova contas de demonstração, bancos de exemplo e o usuário anônimo.</li>
</ul>



<h3 class="wp-block-heading">3. Mantenha versão e patch em dia</h3>



<p class="wp-block-paragraph">Versão fora de suporte não recebe correção de segurança. Logo, rodar um banco em fim de vida é aceitar, por contrato, conviver com falhas conhecidas e publicadas.</p>



<p class="wp-block-paragraph"><strong>O que fazer:</strong></p>



<ul class="wp-block-list">
<li>Levante a versão de cada instância e a data de fim de suporte do fabricante.</li>



<li>Defina janela mensal de manutenção. Patch de segurança não espera pelo próximo projeto.</li>



<li>Assine o feed de vulnerabilidades do seu banco. CVEs de motores de banco costumam ter exploração pública em pouco tempo.</li>



<li>Teste o patch em ambiente de homologação com uma cópia recente dos dados, que você tem, se o ponto 11 estiver feito.</li>
</ul>



<h2 class="wp-block-heading">Camada 2: identidade e privilégio (pontos 4 a 6)</h2>



<p class="wp-block-paragraph">A segunda camada trata de quem entra e do que consegue fazer depois de entrar. Credencial válida usada indevidamente é o vetor mais difícil de detectar, porque o sistema não distingue invasor de usuário.</p>



<h3 class="wp-block-heading">4. Aplique privilégio mínimo, de verdade</h3>



<p class="wp-block-paragraph">Cada usuário e cada aplicação recebem apenas as permissões necessárias para a função. Por exemplo, aplicação que só lê recebe <code>SELECT</code>. Nenhuma aplicação, em hipótese alguma, precisa de superusuário.</p>



<p class="wp-block-paragraph"><strong>O que fazer:</strong></p>



<ul class="wp-block-list">
<li>Crie um usuário por aplicação, não um usuário compartilhado por todo o ambiente.</li>



<li>Separe leitura de escrita. Relatórios, BI e integrações leem por uma conta somente-leitura.</li>



<li>No PostgreSQL, bloqueie o schema público, que é aberto por padrão em versões mais antigas: <code>REVOKE ALL ON SCHEMA public FROM PUBLIC;</code></li>



<li>Revogue <code>DROP</code>, <code>TRUNCATE</code> e <code>ALTER</code> de contas de aplicação. Migração de schema roda com credencial própria, usada apenas no deploy.</li>



<li>Rode um inventário: liste todas as roles e o que cada uma pode fazer. Quase sempre aparecem três ou quatro contas que ninguém sabe de onde vieram.</li>
</ul>



<h3 class="wp-block-heading">5. Exija acesso nominal e MFA para humanos</h3>



<p class="wp-block-paragraph">Pessoas acessam com contas individuais e autenticação multifator (MFA), nunca com credencial compartilhada. Afinal, sem identidade individual, o log de auditoria não serve para nada.</p>



<p class="wp-block-paragraph"><strong>O que fazer:</strong></p>



<ul class="wp-block-list">
<li>Elimine o uso direto de <code>postgres</code>, <code>root</code> ou <code>sa</code> por pessoas. Essas contas ficam para processo, com senha em cofre e uso registrado.</li>



<li>Integre a autenticação ao diretório corporativo, quando houver, para que o desligamento de um funcionário revogue o acesso automaticamente.</li>



<li>Exija MFA no bastion host e na VPN.</li>



<li>Faça revisão trimestral de acessos. Uma hora de reunião, uma planilha, e a lista de ex-funcionários com credencial ativa deixa de existir.</li>
</ul>



<h3 class="wp-block-heading">6. Tire senha do código e rotacione segredos</h3>



<p class="wp-block-paragraph">Senha de banco não fica em repositório, em arquivo <code>.env</code> versionado, em variável de ambiente de imagem pública nem em planilha compartilhada. Ela fica em cofre de segredos, com rotação programada.</p>



<p class="wp-block-paragraph"><strong>O que fazer:</strong></p>



<ul class="wp-block-list">
<li>Migre as credenciais para um gerenciador de segredos. A aplicação busca a senha em tempo de execução.</li>



<li>Varra o histórico do repositório: uma senha removida em um commit continua no histórico do Git. Portanto, se apareceu lá, considere-a comprometida e troque.</li>



<li>Defina rotação: 90 dias para credenciais de aplicação é um ponto de partida razoável.</li>



<li>Chaves de API e tokens de integração seguem a mesma regra, com prazo de expiração.</li>
</ul>



<h2 class="wp-block-heading">Camada 3: o dado em si (pontos 7 a 9)</h2>



<p class="wp-block-paragraph">A terceira camada assume que alguém vai passar pelas duas primeiras. Trata-se, então, de tornar o dado inútil, ilegível ou inalcançável para quem chegou até ele.</p>



<h3 class="wp-block-heading">7. Criptografe em repouso e em trânsito</h3>



<p class="wp-block-paragraph">O dado é criptografado no disco (com TDE, transparent data encryption, ou criptografia no nível do volume) e durante o tráfego pela rede (TLS 1.2 ou superior, obrigatório e não opcional).</p>



<p class="wp-block-paragraph"><strong>O que fazer:</strong></p>



<ul class="wp-block-list">
<li>Ative a criptografia de volume ou o TDE do motor. Isso protege contra roubo de disco e descarte inadequado de hardware.</li>



<li>Force TLS nas conexões. MySQL: <code>require_secure_transport = ON</code>. PostgreSQL: <code>ssl = on</code> e <code>hostssl</code> no <code>pg_hba.conf</code>, sem linha <code>host</code> equivalente. Conexão sem TLS deve ser recusada, não apenas desencorajada.</li>



<li>Criptografe também o arquivo de backup. Cópia em claro num bucket é o mesmo dado, com menos vigilância.</li>



<li>Defina quem guarda a chave. Chave gerenciada pelo cliente em um KMS (key management service, serviço que armazena e controla o uso de chaves) dá controle de revogação e rotação.</li>
</ul>



<h3 class="wp-block-heading">8. Trate dado sensível como dado sensível</h3>



<p class="wp-block-paragraph">Nem todo dado tem o mesmo peso. CPF, dados de saúde, dados financeiros e credenciais, por exemplo, exigem controles adicionais. Vale lembrar que a LGPD (Lei nº 13.709/2018) responsabiliza a empresa por essa distinção.</p>



<p class="wp-block-paragraph"><strong>O que fazer:</strong></p>



<ul class="wp-block-list">
<li>Classifique as tabelas e colunas que contêm dado pessoal e dado pessoal sensível. Sem inventário, não existe conformidade.</li>



<li>Nunca use dump de produção em homologação sem mascarar. É a falha mais comum e a mais fácil de corrigir: um script de anonimização no pipeline de refresh resolve.</li>



<li>Aplique minimização: se o sistema não precisa do CPF completo para funcionar, guarde o hash ou os últimos dígitos.</li>



<li>Defina descarte. Dado retido além da finalidade é risco sem contrapartida.</li>
</ul>



<h3 class="wp-block-heading">9. Blinde a camada de aplicação contra injeção</h3>



<p class="wp-block-paragraph">A maior parte dos vazamentos de banco não passa pelo banco: passa pela aplicação. A injeção de SQL segue listada entre os principais riscos de aplicações web pelo OWASP Top 10 (2021, categoria A03).</p>



<p class="wp-block-paragraph"><strong>O que fazer:</strong></p>



<ul class="wp-block-list">
<li>Use prepared statements e consultas parametrizadas em todos os pontos. Concatenação de string com entrada de usuário é proibida, sem exceção de &#8220;esse é interno&#8221;.</li>



<li>Valide entrada por lista de permissão, não por lista de bloqueio.</li>



<li>Configure mensagens de erro genéricas em produção. Stack trace com nome de tabela é mapa entregue de graça.</li>



<li>Considere um WAF (web application firewall, filtro de tráfego HTTP) como camada adicional, nunca como substituto do código correto.</li>



<li>Limite o resultado: uma API que devolve 200 mil registros em uma chamada é um vazamento esperando pelo momento certo.</li>
</ul>



<h2 class="wp-block-heading">Camada 4: detecção e recuperação (pontos 10 a 12)</h2>



<p class="wp-block-paragraph">A quarta camada parte de uma premissa desconfortável: em algum momento, algo vai passar. Assim, o que define o tamanho do estrago é a velocidade com que você percebe e a qualidade da cópia que sobrou.</p>



<h3 class="wp-block-heading">10. Ligue log, auditoria e alerta</h3>



<p class="wp-block-paragraph">Registro de conexões, de tentativas falhas e de comandos administrativos, enviado para fora do próprio servidor. Log que mora na máquina comprometida é apagado junto com ela.</p>



<p class="wp-block-paragraph"><strong>O que fazer:</strong></p>



<ul class="wp-block-list">
<li><strong>PostgreSQL:</strong> <code>log_connections = on</code>, <code>log_disconnections = on</code>, <code>log_statement = 'ddl'</code> no mínimo. Para auditoria detalhada, a extensão <code>pgaudit</code>.</li>



<li><strong>MySQL:</strong> ative o audit log da sua distribuição e o <code>general_log</code> em janelas de investigação.</li>



<li>Envie tudo para um coletor externo, com retenção definida.</li>



<li>Configure alerta para o que importa: pico de falhas de autenticação, criação de usuário, alteração de privilégio, <code>DROP</code> ou <code>TRUNCATE</code> em tabela de produção, e volume atípico de leitura.</li>
</ul>



<p class="wp-block-paragraph">O último é o mais negligenciado. Afinal, exfiltração de dados aparece como consulta bem-sucedida: legítima em forma, anômala em volume.</p>



<h3 class="wp-block-heading">11. Backup imutável, com regra 3-2-1 e recuperação pontual</h3>



<p class="wp-block-paragraph">O backup precisa ser inalcançável a partir da produção. Isso significa cópia imutável (que não pode ser alterada ou apagada durante um prazo definido, nem por administrador) e credencial separada.</p>



<p class="wp-block-paragraph"><strong>O que fazer:</strong></p>



<ul class="wp-block-list">
<li>Aplique a regra 3-2-1: três cópias do dado, em dois tipos de mídia diferentes, com uma delas fora do local principal (Peter Krogh, The DAM Book, 2005).</li>



<li>Combine backup físico com dump lógico. O físico volta rápido; o lógico, por sua vez, permite recuperar objeto isolado.</li>



<li>Ative a recuperação pontual (PITR, point-in-time recovery): no PostgreSQL, via arquivamento de WAL; no MySQL, via binlog. É o que permite voltar para as 14h07, e não só para a cópia da madrugada.</li>



<li>Marque as cópias como imutáveis com prazo mínimo e mantenha o repositório em conta separada da produção. Isso se aproxima de um air gap, ou seja, a ausência de rota de rede direta entre o ambiente ativo e as cópias.</li>
</ul>



<p class="wp-block-paragraph">Isso deixou de ser preciosismo: no State of Ransomware da Sophos (2024), 94% das organizações atingidas por ransomware relataram que os criminosos tentaram comprometer os backups, e as tentativas tiveram sucesso em 57% dos casos.</p>



<h3 class="wp-block-heading">12. Escreva o plano de resposta e teste a restauração</h3>



<p class="wp-block-paragraph">Um backup nunca restaurado é uma hipótese. O plano de resposta define quem faz o quê, em que ordem e em quanto tempo. Já o teste comprova que o número no contrato é real.</p>



<p class="wp-block-paragraph"><strong>O que fazer:</strong></p>



<ul class="wp-block-list">
<li>Defina RPO (recovery point objective: quanto dado a empresa aceita perder, em tempo) e RTO (recovery time objective: quanto tempo o sistema pode ficar fora do ar) para cada base. Em horas, por escrito.</li>



<li>Escreva um runbook de uma página: contatos, ordem de restauração, comandos, critério para declarar incidente.</li>



<li>Teste a restauração completa a cada seis meses, em ambiente isolado, cronometrando. O tempo real é o seu RTO verdadeiro.</li>



<li>Inclua o prazo regulatório no plano: a Resolução CD/ANPD nº 15/2024 estabelece 3 dias úteis para comunicação de incidente de segurança com dados pessoais à Autoridade Nacional de Proteção de Dados. Descobrir esse prazo durante a crise, portanto, é tarde demais.</li>
</ul>



<h2 class="wp-block-heading">Tabela de priorização: por onde começar na segunda-feira</h2>



<p class="wp-block-paragraph">Se você não pode fazer tudo, faça nesta ordem. A coluna de esforço considera uma equipe pequena de TI.</p>



<figure class="wp-block-table is-style-stripes"><table><thead><tr><th>#</th><th>Controle</th><th>Impacto</th><th>Esforço</th><th>Fazer em</th></tr></thead><tbody><tr><td>1</td><td><strong>Tirar o banco da internet</strong></td><td>Altíssimo</td><td>Baixo</td><td>1 dia</td></tr><tr><td>4</td><td><strong>Privilégio mínimo</strong></td><td>Altíssimo</td><td>Médio</td><td>1 semana</td></tr><tr><td>11</td><td><strong>Backup imutável</strong></td><td>Altíssimo</td><td>Médio</td><td>1 semana</td></tr><tr><td>6</td><td><strong>Segredos fora do código</strong></td><td>Alto</td><td>Médio</td><td>2 semanas</td></tr><tr><td>5</td><td><strong>Acesso nominal + MFA</strong></td><td>Alto</td><td>Médio</td><td>2 semanas</td></tr><tr><td>12</td><td><strong>Teste de restauração</strong></td><td>Alto</td><td>Baixo</td><td>1 dia</td></tr><tr><td>7</td><td><strong>Criptografia em trânsito e repouso</strong></td><td>Alto</td><td>Baixo</td><td>2 dias</td></tr><tr><td>2</td><td><strong>Fechar porta e admin remoto</strong></td><td>Alto</td><td>Baixo</td><td>1 dia</td></tr><tr><td>9</td><td><strong>Consultas parametrizadas</strong></td><td>Alto</td><td>Alto</td><td>Contínuo</td></tr><tr><td>10</td><td><strong>Log e alerta</strong></td><td>Médio-alto</td><td>Médio</td><td>1 semana</td></tr><tr><td>3</td><td><strong>Patch em dia</strong></td><td>Médio-alto</td><td>Contínuo</td><td>Mensal</td></tr><tr><td>8</td><td><strong>Classificação e mascaramento</strong></td><td>Médio</td><td>Alto</td><td>1 mês</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Note que quatro dos oito primeiros controles da tabela levam de um a dois dias. Ou seja: proteger banco de dados é menos uma questão de orçamento e mais de decidir que a tarefa entra no calendário.</p>



<p class="wp-block-paragraph">Para o desenho completo das camadas de defesa, incluindo governança e segregação de ambientes, vale ler <a href="/blog/seguranca-do-banco-de-dados/">segurança do banco de dados: as 8 camadas que a sua empresa precisa ter</a>. E para avaliar o repositório onde as cópias vivem, os critérios estão em <a href="/blog/armazenamento-em-nuvem-seguro/">armazenamento em nuvem seguro</a>.</p>



<h2 class="wp-block-heading">Como a Prodb aplica esse checklist em ambientes de cliente</h2>



<p class="wp-block-paragraph">A Prodb Tecnologia opera infraestrutura em nuvem há 15 anos, atende mais de 550 clientes e trabalha a partir da região de Campinas, em São Paulo. Nos projetos de banco de dados, o checklist acima não é entregue como recomendação: é implantado e verificado.</p>



<ul class="wp-block-list">
<li><strong>Arquitetura por ambiente.</strong> Os <a href="/servidores-cloud/">servidores cloud</a> são dimensionados conforme a carga real do banco, com isolamento de rede, sub-rede privada e regras de acesso definidas no desenho, não improvisadas depois.</li>



<li><strong>Backup com separação real.</strong> Os <a href="/backup/">planos de backup</a> usam credenciais e políticas de retenção independentes da produção, com camada de imutabilidade e recuperação pontual quando o motor suporta. A escolha de retenção parte do RPO acordado com o cliente, não de um padrão de catálogo.</li>



<li><strong>Dado no Brasil.</strong> Servidores em território nacional, infraestrutura com certificações internacionais de cloud e faturamento em real. Isso simplifica a resposta a auditorias de LGPD e evita a discussão sobre jurisdição estrangeira.</li>



<li><strong>Suporte técnico dedicado.</strong> Quem atende conhece o ambiente. Em restauração de banco, sobretudo, esse detalhe é a diferença entre uma hora e um turno inteiro.</li>
</ul>



<p class="wp-block-paragraph">Uma ressalva necessária: migrar o banco para a nuvem não protege o banco. Um ambiente mal configurado na nuvem é tão vulnerável quanto no rack da sala dos fundos, com a diferença de estar mais perto da internet. O que protege, no fim das contas, é a disciplina dos doze pontos. A nuvem só torna vários deles mais fáceis de aplicar. E se o seu provedor atual promete backup diário, vale conferir <a href="/blog/backup-diario-provedores/">o que essa promessa costuma esconder</a>.</p>



<h2 class="wp-block-heading">Perguntas frequentes</h2>



<details class="wp-block-details is-layout-flow wp-block-details-is-layout-flow"><summary>Como proteger um banco de dados?</summary>
<p class="wp-block-paragraph">Aplicando controles em quatro camadas: reduzir a exposição (tirar o banco da internet, fechar acesso remoto e manter patches em dia), controlar identidade e privilégio, proteger o dado em si com criptografia e mascaramento, e garantir detecção e recuperação com logs, backup imutável e teste de restauração.</p>
</details>



<details class="wp-block-details is-layout-flow wp-block-details-is-layout-flow"><summary>Qual o primeiro passo para proteger um banco de dados?</summary>
<p class="wp-block-paragraph">Tirar o banco da internet. Ele deve ficar em sub-rede privada, sem IP público, aceitando conexões apenas dos servidores da aplicação, com acesso da equipe por VPN ou bastion host. É o controle de maior impacto e costuma levar um dia.</p>
</details>



<details class="wp-block-details is-layout-flow wp-block-details-is-layout-flow"><summary>A aplicação pode usar o usuário administrador do banco?</summary>
<p class="wp-block-paragraph">Não. Cada aplicação deve ter um usuário próprio, apenas com as permissões necessárias para sua função e sem direito a <code>DROP</code>, <code>TRUNCATE</code> ou <code>ALTER</code>. Migrações de schema rodam com uma credencial separada, usada só no deploy.</p>
</details>



<details class="wp-block-details is-layout-flow wp-block-details-is-layout-flow"><summary>Como proteger o banco de dados contra ransomware?</summary>
<p class="wp-block-paragraph">Com backup imutável, guardado em conta separada da produção e com credencial própria, seguindo a regra 3-2-1 e com recuperação pontual (PITR) ativada. Também é essencial testar a restauração periodicamente para saber quanto tempo a volta realmente leva.</p>
</details>



<details class="wp-block-details is-layout-flow wp-block-details-is-layout-flow"><summary>Posso usar dados de produção em ambiente de homologação?</summary>
<p class="wp-block-paragraph">Só depois de mascarar ou anonimizar os dados pessoais. Restaurar produção em homologação sem esse tratamento copia o risco para um ambiente com menos controle. Um script de anonimização no processo de atualização da base resolve o problema.</p>
</details>



<details class="wp-block-details is-layout-flow wp-block-details-is-layout-flow"><summary>Qual o prazo para comunicar um incidente com dados pessoais à ANPD?</summary>
<p class="wp-block-paragraph">A Resolução CD/ANPD nº 15/2024 estabelece 3 dias úteis para comunicar à Autoridade Nacional de Proteção de Dados um incidente de segurança com dados pessoais. Esse prazo deve constar no plano de resposta a incidentes da empresa.</p>
</details>



<div class="wp-block-group prodb-cta is-layout-constrained wp-block-group-is-layout-constrained">
<h3 class="wp-block-heading">Quantos dos 12 pontos seu ambiente cumpre hoje?</h3>



<p class="wp-block-paragraph">Se a resposta for &#8220;não sei&#8221;, esse já é o diagnóstico. Nosso time faz a avaliação técnica do seu banco de dados e devolve a lista do que corrigir, em ordem de risco.</p>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="/contato/">Fale com um especialista da Prodb</a></div>
</div>
</div>

<p>O post <a href="https://prodb.com.br/blog/como-proteger-um-banco-de-dados/">Como proteger um banco de dados: checklist técnico em 12 pontos</a> apareceu primeiro em <a href="https://prodb.com.br">Prodb</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://prodb.com.br/blog/como-proteger-um-banco-de-dados/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
