3

问题

我们有一个大型 Web 应用程序,用于存储和显示与 HIPAA 相关的敏感数据。我们目前正在研究提高 HIPAA 合规性和降低违规风险的方法。

目前,有一些功能和报告不会根据登录者的权限正确限制客户信息(例如,客户搜索功能和某些遗留报告)。

可能的解决方案

从程序的角度处理问题

我们总是可以重写导致不合规的代码部分。问题是,考虑到应用程序的规模,这种方法很容易出错——可能会遗漏一些东西。

更改数据库以限制返回的数据

我们可以更改 MySQL 数据库结构以反映应用程序所需的必要权限限制。这样,没有人可以看到他们不应该看到的数据,因为数据库不会返回他们不应该看到的数据。

我的问题

该应用程序本身有近 300 个表,其中大部分存储某种敏感数据。使用 MySQL 视图来限制数据访问是否可能(并且可行)?

如果是这样,最好的方法是什么?

4

1 回答 1

3

您可以通过调整视图中使用的查询来利用视图来限制或显示您希望的任何数据。

您需要将原始表重命名为“原始表”之类的名称,然后将视图命名为原始表的名称。

您的程序不会知道或关心它现在访问的是视图而不是表。它将像以前一样继续提取数据。您还可以为不希望返回实际值的字段包含空白或默认值。例如(如果您有一个字段“DOB”并且您不再希望返回出生日期,您可以简单地将“01-01-2001”写为 DOB)。

您可以使用 MYSQL 网站上的示例来了解如何创建视图。

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 回答