AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 218962
Accepted
George.Palacios
George.Palacios
Asked: 2018-10-02 03:52:47 +0800 CST2018-10-02 03:52:47 +0800 CST 2018-10-02 03:52:47 +0800 CST

Prática recomendada para atualizações de bancos de dados de não produção e TDE

  • 772

Digamos que tenhamos um sistema de produção com vários bancos de dados criptografados usando TDE e um certificado autogerado.

Precisamos regularmente pegar esse banco de dados e atualizar nossos sistemas de não produção. Esse processo envolve fazer backup do banco de dados de origem, restaurá-lo para pré-produção, ofuscar dados pessoais e vários outros itens.

O fato chave aqui é que o sistema de pré-produção tem uma cópia do certificado de criptografia da produção

Estou procurando maneiras de tornar esse processo mais seguro - não estou satisfeito com o certificado no ambiente de pré-produção. Existe outra maneira que irá:

  1. Nunca tenha um backup não criptografado salvo em qualquer lugar
  2. Não permitir a propagação de dados pessoais da produção para sistemas de não produção?
sql-server sql-server-2014
  • 2 2 respostas
  • 1386 Views

2 respostas

  • Voted
  1. Brent Ozar
    2018-10-09T04:07:57+08:002018-10-09T04:07:57+08:00

    Em um mundo perfeito, se você estiver armazenando dados de identificação pessoal em produção, nunca restaurará o banco de dados para um ambiente de desenvolvimento.

    Você não pode confiar apenas na ofuscação. Por exemplo, mais cedo ou mais tarde, alguém fará uma cópia de backup de uma tabela em produção. Eles vão selecionar a tabela dbo.Customers em uma nova tabela por segurança antes de fazer uma alteração nela, e vão esquecer de soltá-la. Seu código de ofuscação não estará esperando novas tabelas aleatórias com dados de identificação pessoal e, portanto, após o processo de ofuscação, os dados ainda estarão lá.

    Em vez disso, quando precisar de dados de desenvolvimento, gere-os do zero.

    (Lembre-se: você pediu a melhor prática, não um compromisso. Se sua resposta for “mas queremos dados de produção em desenvolvimento”, então você já está perdendo a melhor prática.)

    • 7
  2. Best Answer
    David Spillett
    2018-10-09T04:57:19+08:002018-10-09T04:57:19+08:00

    Como Brent aponta: dados reais (se mesmo a menor parte deles for sensível) não devem estar em sistemas dev/test [1] , mesmo que temporariamente.

    Se você despersonalizar dados reais para uso em ambientes de teste, existem algumas precauções que tomamos ao fazer isso:

    1. Novamente: dados reais não devem estar em sistemas de desenvolvimento/teste, mesmo que temporariamente . Restaure a cópia e despersonalize em ambientes de produção desconectados com as medidas de segurança completas que isso implica, então mova os dados munged para seus outros ambientes. Você pode não querer essa carga extra em sua configuração de produção principal [2] nesse caso tenha um servidor de banco de dados separado nesse ambiente apenas para esta tarefa [3] .

    2. Certifique-se de que seu processo falhe com segurança e falhe com força, mesmo que isso signifique que ele falhe com frequência . Faça-o cair se quaisquer novas tabelas ou colunas estiverem presentes, até que você forneça uma nova lista do que esperar, para mitigar o problema que Brent discute com alterações temporárias de esquema. Certifique-se também de que qualquer etapa com falha interrompa todo o processo para que qualquer erro que altere os dados bloqueie a saída da produção.

    A melhor prática [4] é gerar dados de teste com base em padrões vistos na produção, em vez de pegar a produção e tentar torná-la não identificável sem alterar nenhum padrão nos dados. Além de eliminar o risco de uso acidental de dados reais devido a um erro de processo, você pode incluir em seus dados de teste casos de borda que não ocorreram na produção (ainda que você conheça).

    Mesmo que sua despersonalização funcione, você pode descobrir que qualquer pessoa com um pouco de determinação pode desfazê-la parcialmente se souber um pouco sobre a organização de seus clientes.

    o sistema de pré-produção tem uma cópia do certificado de criptografia da produção

    Esta é a sua bandeira vermelha. Acene para qualquer pessoa acima de você que questione a despesa extra e/ou o incômodo de manter os dados de produção longe de ambientes de não produção. Cópias desnecessárias de chaves podem aumentar muito sua área de superfície de ataque.

    [1] Alguns podem sugerir uma exceção com serviços UAT, mas eu consideraria essa produção de qualquer maneira.

    [2] A menos que você veicule um conjunto bastante específico de fusos horários, por exemplo, todos os seus clientes e a grande maioria de seus usuários estão nos EUA, portanto, tenha uma grande janela durante a noite durante a qual um impacto no desempenho não importa

    [3] Não precisa necessariamente ser um kit caro de "grau de produção" (drives de alto desempenho, SQL e SO licenciados para empresas, ...), apenas o suficiente para que esse processo seja rápido o suficiente, pois você não verá atividade do usuário final, mas é claro que ainda haverá um custo envolvido

    [4] Para o qual mudamos para todos os desenvolvimentos recentes e futuros - usamos apenas o processamento de dados de produção como esse em certos serviços legados que estão se aposentando em breve e não vale a pena reequipar antes que estejam totalmente obsoletos.

    • 4

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve