1

我多年来一直使用 sql(主要是 mysql),但没有达到专业标准,所以我正在寻找正确的方向。

我目前正在设计一个网络应用程序,它将在一组表中收集用户的姓名/地址/电子邮件等,以及在另一组表中收集其他个人信息。这些将最自然地驻留在一个数据库中,但我一直在考虑将用户联系信息拆分到单独服务器上的一个数据库中,并将所有其他信息拆分到另一个数据库/服务器中,理论上是黑客必须破坏这两个系统得到任何非常有用的东西。

我已经断断续续地搜索了几个星期,到目前为止还没有发现这种类型的设计被讨论得太多。一般是这样做的吗?是不是矫枉过正?是否有一种设计方法可以解决它,还是我必须自己全部推出?

我确实发现拆分数据库是一种合法的安全措施吗?我猜这是说这种方法可能是矫枉过正。

4

3 回答 3

1

恕我直言,这似乎是错误的。通过跨 2 个 DB 拆分数据,您只会增加复杂性而没有合理的安全利润。

我认为这是可以使用数据加密的地方。根据用户凭据生成加密密钥,并根据用户请求对敏感数据进行加密/解密。由于必须仅向该用户显示私人数据,因此一切都应该没问题。

于 2011-11-16T19:19:30.700 回答
1

我倾向于认为这是矫枉过正。

请检查我对这个问题的回答:在 2 个数据库之间共享用户

请记住分别解决数据库设计数据访问安全问题。数据访问安全不应导致您在数据库设计中做出不合逻辑的选择。

于 2011-11-16T19:20:11.273 回答
0

这是我以前使用的一种方法:

服务器1:数据库服务器2:SC

DB在公众可以访问的网络域中,但不能访问SC SC 在公众无法访问的网络域中,但可以访问SC

DB 是您存储所有相关信息的地方,包括“真正重要的东西”。

以指定的时间间隔(我使用 5 秒),SC 检查 DB 以查找它可能要监视的任何表中的任何新记录(有作业或计划任务)并加密重要信息。

虽然我使用的是 SQL Server 2005 并且能够在两个域中工作(一个私有(内部)和一个公共(用​​于客户端访问),并且我刚刚共享的是一个精简(删除了尽可能多的 MSSQL 专有部分),简化了版本,通过一些努力,我认为可以在 mysql 中重新创建类似的东西,特别是如果您可以将两个数据库托管在单独的物理机器中。

虽然许多人也会认为这太过分了,但这个想法已经实现了。它的成本更高,并且在数据报告时间需要更多的工作,但客户很满意。

于 2011-11-16T19:07:07.097 回答