我们将数据存储在数据仓库中,具体如下:
价格
日期
产品名称(varchar(25))
我们目前只有七种产品。每个工作日一次,就会添加七个新的数据点,表示每种产品的当天价格。
在网站上,用户在页面加载时看到此信息。分析表明,每天的页面加载量约为100。
网站服务器是我们数据中心的外部服务器。数据仓库服务器是我们的数据中心的内部,并且有其他关键数据(在不同的表中)不相关,也不应该被网站访问。
考虑了下列办法:
1)数据仓库可以将包含每日数据的CSV文件推送到web服务器。web服务器将每15分钟在crontab上运行一个进程。它将检查文件是否已更改。如果是的话,它将用数据更新其数据库。然后,在页面加载时,web服务器将查询其数据库以获取要显示在网页上的数据。
通常情况下,一天只能推一次,但不止一次可以传达(不经常)的价格调整。即使在价格调整方案中,所有数据也将在文件中传递。轮询过程将获取更改并覆盖数据库中的数据。
2) web服务器可以使用JDBC或类似的SQL连接技术从数据仓库请求数据。
然而,有人对安全问题表示关切。担心的是,通过允许web服务器访问我们的数据仓库,SQL注入攻击或通过网站的其他外部攻击可能会危及数据仓库。可以采取措施减少风险,但建议采取最简单和最安全的办法,就是不允许任何面向公众的系统直接访问数据仓库。换句话说,数据仓库可以与其他服务器建立通信(比如对SFTP文件),但是没有一个服务器能够启动与数据仓库的连接。这些担忧看起来合理,难以缓解吗?
3)可以构建web服务,web服务器可以调用托管在内部数据中心的web服务。
4)当web服务器知道数据仓库有可用数据时,托管在内部数据中心的进程可以调用web服务器。如果是的话,应该如何做呢?以某种方式阻止其他未经授权的客户端进行相同的调用?
以上哪种方法是最好的,还是有比上面列出的更好的方法?一种方法的利弊是什么?
发布于 2014-01-09 23:31:48
当您每天在数据仓库中输入价格时,为什么不将它们放在一个特定于只保存“今天”价格的When服务器的数据库中呢?一个静态的价格列表需要在数据库中吗?您不能创建每日价格文件,或者您是否计划将其用于其他数据用途。
SQL数据库一直用于为网站提供数据,但您必须知道如何避免注入攻击。并不是说该网站的数据库与您的数据仓库一样重要,而是您公司中的某个人更好地学习如何处理安全性。
https://softwareengineering.stackexchange.com/questions/223669
复制相似问题