【发布时间】:2017-03-08 05:10:09
【问题描述】:
所以这与代码本身的关系不大,更多的是关于效率和实用性。 在我之前的工作中,我们有多个数据库。一种可以通过公共方式访问,另一种只能私下访问。公共数据库基本上可以显示私人数据库所做的一切,并且它们几乎是同步的,每 2 分钟左右更新一次。 他们的想法是,如果公共数据库因某种类型的 SQL 注入或其他恶意破坏数据库而被破坏,它不会影响生产,并且可以立即恢复。
然而,这是一个相当小规模的操作,一次只有大约 100 人访问数据库,如果发生任何不好的事情,我很确定有人必须手动进入并恢复数据库来解决问题。
我的问题是,这是一种正确的做事方式吗?这种策略什么时候开始变得非常低效?假设我每天有数万个查询,这将无法维护吗?
感谢您的洞察力。
【问题讨论】:
-
"这是正确的做事方式吗?" - 可能不是。不要直接暴露数据库。在其上放置一个许可的 API;至少为只读视图。也不要将 OLTP 和 OLAP 问题混为一谈。
-
公共数据库总是一个坏主意。但是:如果您的公共数据库受到 SQL 注入的影响,那么您的私人数据库也是如此 - 因为不知何故,数据必须到达那里,不是吗?此外,您应该担心数据泄漏,而不是可以通过备份缓解的数据破坏。所以你的大部分努力应该放在使你的代码安全和你的数据库不公开
标签: mysql sql relational-database database-security