問題は、誰かがすでにデータベースへの完全なアクセス権を持っている場合、記録を特定の人物に結び付けるのは時間の問題だということです。データベース (またはアプリケーション自体) のどこかで、ユーザーとアイテムの間の関係を作成する必要があります。誰かが完全なアクセス権を持っている場合、そのメカニズムにアクセスできます。
これを防ぐ方法は絶対にありません。
現実には、完全なアクセス権を持つことで、私たちは信頼できる立場にいます. これは、会社の管理者が、たとえあなたがデータを見ることができても、あなたがそれに基づいて行動しないことを信頼しなければならないことを意味します. これは、倫理のようなささいなことの出番です。
とはいえ、多くの企業は開発スタッフと生産スタッフを分けています。目的は、開発がライブ (つまり、実際の) データと直接接触することを排除することです。これには多くの利点があり、セキュリティとデータの信頼性が最優先されます。
唯一の本当の欠点は、一部の開発者が、本番アクセスなしでは問題をトラブルシューティングできないと考えていることです。しかし、これは単に真実ではありません。
その場合、本番サーバーにアクセスできるのは制作スタッフだけになります。それらは通常、保護する必要があるデータの種類に応じて、より高度に精査されます (犯罪歴やその他のバックグラウンド チェック)。
これらすべての要点は、これが人的問題であるということです。技術的な手段で本当に解決できるものではありません。
アップデート
ここにいる他の人々は、パズルの非常に重要で重要なピースを見逃しているようです. つまり、何らかの理由でデータがシステムに入力されているということです。その理由はほぼ普遍的であるため、共有することができます。経費報告書の場合、そのデータが入力されるため、経理部門は誰に返済するかを知ることができます。
つまり、システムは、あるレベルで、データ入力担当者 (つまり、営業担当者) がログインすることなく、ユーザーとアイテムを一致させる必要があります。
また、関係者全員が立ってセキュリティ コードを入力してデータを「解放」することなく、そのデータを結び付ける必要があるため、DBA はクエリ ログを確認して誰が誰であるかを確実に把握できます。そして、いくつのハッシュマークを入れたいかに関係なく、非常に簡単に追加できます。トリプル DES もあなたを救いません。
結局のところ、開発を難しくするだけで、セキュリティ上のメリットはまったくありません。これはいくら強調してもしすぎることはありません。DBA からデータを隠す唯一の方法は、1. そのデータを入力した本人だけがアクセスできるようにするか、2. そもそも存在しないようにすることです。
オプション 1 に関しては、アクセスできるのが入力した人だけである場合、企業データベースに存在する意味はありません。