3

問題

HIPAA 関連の機密データを保存および表示する大規模な Web アプリケーションがあります。現在、HIPAA への準拠を改善し、違反のリスクを軽減する方法を研究しています。

現在、ログインしているユーザーの権限に基づいてクライアント情報を正しく制限しない機能とレポートがいくつかあります (例: クライアント検索機能と特定のレガシー レポート)。

可能な解決策

プログラムの観点から問題に対処する

コンプライアンス違反の原因となっているコードのセクションをいつでも書き直すことができます。問題は、アプリケーションの規模を考えると、このアプローチは非常にエラーが発生しやすいことです。見逃される可能性があります。

返されるデータを制限するためのデータベースの変更

アプリケーションで必要なパーミッション制限を反映するように、MySQL データベース構造を変更できます。そうすれば、データベースは表示されるべきではないデータを返さないため、表示されるべきではないデータを誰も見ることができなくなります。

私の質問

アプリケーション自体には約 300 のテーブルがあり、そのほとんどに何らかの機密データが格納されています。MySQLビューを使用してデータアクセスを制限することは可能ですか?

もしそうなら、最善のアプローチは何ですか?

4

1 に答える 1

3

ビューで使用されるクエリを微調整するだけで、ビューを使用して、必要なデータを制限または表示できます。

元のテーブルの名前を「元のテーブル」などに変更してから、ビューに元のテーブルの名前を付ける必要があります。

プログラムは、テーブルではなくビューにアクセスしていることを認識または気にしません。以前と同じようにデータをプルし続けます。実際の値を返したくないフィールドには、空白またはデフォルト値を含めることもできます。例として(フィールド「DOB」があり、生年月日を返したくない場合は、単に「01-01-2001」をDOBと書くことができます)。

ビューの作成方法については、MYSQLのWebサイトの例を使用できます。

CREATE TABLE t (qty INT, price INT);
mysql> INSERT INTO t VALUES(3, 50);
mysql> CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t;
mysql> SELECT * FROM v;

http://dev.mysql.com/doc/refman/5.0/en/create-view.html

于 2010-09-29T16:27:04.607 に答える