クライアントの健康記録などの機密データを管理するアプリケーションがあるとします。多くの成功を収めた後、私は多くのクライアントを引き付けました。中には有名人もいます。現在、このアプリケーションを使用している多くの従業員がいます。ただし、特権アカウントマネージャーのみが「有名人」の記録にアクセスできるようにすることで、「有名人」の身元を保護したいと考えています。
このアプリケーションのデータは、長年にわたって進化してきた関係データベースに格納されています。「clients」テーブルには、有名人の記録を示す「famous」列があります。「ユーザー」テーブルには、従業員が有名人の記録にアクセスできることを示す「特権」列があります。どちらもブール値であると仮定します。
すべてのクエリの where 句に追加して、データ層全体を略奪することができます。また、ユーザーが「特権」を持っているかどうかを示すフラグの送信を開始する必要があります。これは大規模な事業ですが、別のオプションはありますか?
一般的なアドバイスを求めていますが、私のアプリケーションは Java プラットフォームで書かれています。
更新: 役割ベースのアクセス制御と、ユーザー、グループ、役割、許可、権利などを適切に正規化された方法で配置する方法についてはよく知っていますが、それは現在のオプションではありません。おそらく、Spring Security などのフレームワークを利用するために、現在のシステムをリファクタリングして適応させることになるでしょう。