使用机密信息保护多工具网站上的表和数据库

时间:2009-12-29 20:16:07

标签: mysql database security

我正在一个网站上工作,多个项目将用于输入各种研究项目的机密主题信息。项目数据访问仅限于特定用户和工具。但某些核心数据将被引用并加入项目表(用户名,项目元数据等)。目前的计划是每个项目都有mysql用户,根据需要可以选择,更新或插入权限的任意组合。另外还有一个整体项目管理员用户,可以改变只在phpadmin中使用的项目表格的形状。我们正在使用带有一些回溯逻辑的Database对象来确定哪个对象传递了它的连接凭证,并且只允许该连接被原始对象使用(不是不可能由专用程序员绕过,但会在代码中抛出红色标记评论)。我们遵循将配置移出Web根目录并将所有凭据保存在配置文件而不是代码中的标准过程。当然有一个整体管理员但是它有很多访问规则,它的密码很长(我们有一个静态的yubikey + 10个字符密码)。

我想知道的是,是将项目数据分离到他们自己的数据库,还是应该将它们放在只能访问某些帐户的表中?在数据库或表级别设置用户权限似乎在难度上是公平的。核心表(通常是元数据)和受保护数据之间将存在联接和其他此类操作。但是在同一台服务器上跨数据库加入工作正常,但我不确定数据库内连接的性能与数据库间连接的比较。

1 个答案:

答案 0 :(得分:0)

将它们放在同一个数据库或不同数据库中并不重要。您可以使用两种替代方案实现良好(或不良)的安全概念。

如果您使用的是一个数据库并且将不同用户的数据放在一个表中,则必须在应用程序中实现许多访问控制。

如果您在不同的表(甚至数据库)中完全分离了数据,则可以轻松使用mysql的访问控制。在这种情况下,我会使用分离的数据库,因为在设置备份系统时或者如果要在多台计算机上扩展应用程序时更方便。但是既然你想加入不同的数据库,你就会失去一些优势,所以它并不重要。