我们有一个带有只读副本的主要生产 MySQL 数据库。这个数据库有一些来自客户的敏感数据,我们需要保护。
我的目标是提供对外部商业智能报告工具的访问。对于所有类似的工具,他们都说“我们有很好的安全性,我们从不存储我们不需要的任何东西,等等。” 我仍然偏执。
所以我正在考虑在副本数据库(只读)上创建一堆视图,这些视图会遗漏敏感数据并提供他们需要的最少信息。之后,我将在数据库上提供一个只能访问这些视图的新用户。这样他们就只能看到我想给他们的数据,而且它已经是只读的,所以什么都不能修改。
我的问题是,考虑到我的数据库有敏感的客户信息,这是解决这个问题的好方法吗?一般来说,这是一种相对安全的方法吗?
你的方法似乎是合理的。但是,如果报告是由不完整的数据构成的,我不确定可以收集到哪些真正的商业情报。创建具有有限权限的专用用户(IE 不允许写入/删除)。信息安全和信息质量之间总是存在权衡。
也许最好了解您希望通过此报告完成什么,并确定可以删除哪些敏感信息。
另一种技术是
GRANT
不访问敏感列。(AGRANT
可以应用于“所有”(*.*
)、一个数据库 (db.*)、一个表 (db.tbl) 或一列。)可能需要很多GRANT
语句才能全部设置好,但您可能会觉得更多安全的。当然,还要限制对物理服务器的访问。