機密情報がPostgreSQL 9.5データベースに保存されているシステムの場合、削除されたテーブルに保存されているデータは安全に削除する必要があります(shred
がファイルに対して行うように)。データセットはありません。テーブルが削除されたときに、基になるデータファイルを安全に削除するためのオプションを見つけようとしています。
背景として、私はDBAではありませんが、多くの言語、コンテキスト、データベースの経験豊富な実装者です。テーブルをshred
pedしたときにOSにリリースする前に、基礎となるファイルをDROP
Dingするのと同じことをPostgreSQLに依頼する方法を探しましたが見つかりませんでした。 PostgreSQLにこれを行うように依頼する組み込みの方法はありますか? (私はちょうど正しいものを検索しなかったかもしれません-何かを見逃した場合の私の謝罪と関連するドキュメントへのリンクとともに乱用を喜んで受け入れます)
私たちが見ている部分的な答えは、テーブルを削除する前に、特定のリレーションとそのインデックスの基になるデータファイルを手動で細断することですが、これはそれほどエレガントではなく、テーブルからすべての情報を取得していることはわかりません削除する必要があります。
また、データディスクの空き領域を細断処理するための戦略についても検討しています。そのためのユーティリティを実行するか、定期的にデータボリュームを複製し、コピーの結果を入れ替えてから、ソースであったボリューム全体を細断処理して、「空き領域はプロセス中に安全に上書きされます。
何かが足りませんか?他に見つからないオプションはありますか?手動でクリーンアップする必要がある場合、データベースのフォルダー内で、特定のテーブルのリレーションファイルとそのすべての関連インデックス以外に、データを細断処理する必要がある場所はありますか?ヘルプやアドバイスをいただければ幸いです。
drop table
は、ディスクファイルシステムからテーブルファイルを削除します。
安全に消去する必要がある場合は、それをサポートするファイルシステムを探すことができます。
Linux SSDファイルシステムで、-O discard
を使用してマウントする(またはドロップ後にfstrimを実行する)と、削除されたファイルの内容がコンシューマーグレードの法医学ツール(photorecなど)から隠されますddなど)ただし、電子ビームプローブなどを備えた国民は、メディアに物理的にアクセスできれば、データにアクセスできる可能性があります。
磁気ディスクでsfill
を実行すると、割り当て解除されたブロックが細断処理されます。
あなたが望むことをするためのフェイルセーフメカニズムはありません 特にSSDドライブのある世界では 。これはPostgreSQLとは何の関係もないので、データベース管理者に属しているとは思いません。ファイルを安全に削除する方法を尋ねているだけです。これは非常に多くの変数を伴う非常に困難な作業であり、Security StackExchangeにはるかに適しています。
何から保護しようとしているのかを決める必要があります。無制限のリソースを持つエンティティから保護し、unlink
を通過したファイルでいっぱいのデバイスにアクセスしようとしている場合は、知っておく必要があります。
ああ、ただ
その後、誰かがあなたのドアストップを持って立ち去ることができ、あなたは行ってもいいです。