web-dev-qa-db-ja.com

Postgresql-テーブルが削除されたときに解放されたストレージを安全に削除する方法は?

機密情報がPostgreSQL 9.5データベースに保存されているシステムの場合、削除されたテーブルに保存されているデータは安全に削除する必要があります(shredがファイルに対して行うように)。データセットはありません。テーブルが削除されたときに、基になるデータファイルを安全に削除するためのオプションを見つけようとしています。

背景として、私はDBAではありませんが、多くの言語、コンテキスト、データベースの経験豊富な実装者です。テーブルをshredpedしたときにOSにリリースする前に、基礎となるファイルをDROPDingするのと同じことをPostgreSQLに依頼する方法を探しましたが見つかりませんでした。 PostgreSQLにこれを行うように依頼する組み込みの方法はありますか? (私はちょうど正しいものを検索しなかったかもしれません-何かを見逃した場合の私の謝罪と関連するドキュメントへのリンクとともに乱用を喜んで受け入れます)

私たちが見ている部分的な答えは、テーブルを削除する前に、特定のリレーションとそのインデックスの基になるデータファイルを手動で細断することですが、これはそれほどエレガントではなく、テーブルからすべての情報を取得していることはわかりません削除する必要があります。

また、データディスクの空き領域を細断処理す​​るための戦略についても検討しています。そのためのユーティリティを実行するか、定期的にデータボリュームを複製し、コピーの結果を入れ替えてから、ソースであったボリューム全体を細断処理して、「空き領域はプロセス中に安全に上書きされます。

何かが足りませんか?他に見つからないオプションはありますか?手動でクリーンアップする必要がある場合、データベースのフォルダー内で、特定のテーブルのリレーションファイルとそのすべての関連インデックス以外に、データを細断処理す​​る必要がある場所はありますか?ヘルプやアドバイスをいただければ幸いです。

5
Jonathan Morgan

drop tableは、ディスクファイルシステムからテーブルファイルを削除します。

安全に消去する必要がある場合は、それをサポートするファイルシステムを探すことができます。

Linux SSDファイルシステムで、-O discardを使用してマウントする(またはドロップ後にfstrimを実行する)と、削除されたファイルの内容がコンシューマーグレードの法医学ツール(photorecなど)から隠されますddなど)ただし、電子ビームプローブなどを備えた国民は、メディアに物理的にアクセスできれば、データにアクセスできる可能性があります。

磁気ディスクでsfillを実行すると、割り当て解除されたブロックが細断処理されます。

1
Jasen

あなたが望むことをするためのフェイルセーフメカニズムはありません 特にSSDドライブのある世界では 。これはPostgreSQLとは何の関係もないので、データベース管理者に属しているとは思いません。ファイルを安全に削除する方法を尋ねているだけです。これは非常に多くの変数を伴う非常に困難な作業であり、Security StackExchangeにはるかに適しています。

何から保護しようとしているのかを決める必要があります。無制限のリソースを持つエンティティから保護し、unlinkを通過したファイルでいっぱいのデバイスにアクセスしようとしている場合は、知っておく必要があります。

  • デバイスのメーカー/モデルの基礎となるテクノロジー
  • ファイルシステム
  • 洗浄または細断の方法

ああ、ただ

その後、誰かがあなたのドアストップを持って立ち去ることができ、あなたは行ってもいいです。

0
Evan Carroll