我是一家公司的初级sql开发人员,在datawarehouse工作。自从我一直在研究代码和学习维度模型等之后,我很难看到开发人员在环境上拥有的权限之外的安全措施。
但是,如果有人会编写影响仓库中数据的代码,更新错误的值,插入错误的数据,删除应该存在的记录,并使用commit语句访问该代码,那么仓库的商业智能方面不会受到巨大的影响吗?就像他们要提取数据来创建统计数据,如果有坏的数据,那么他们就会有糟糕的统计数据。
我们有大约七百亿条记录,用这种方式所做的改变,如果能被看到的话,真的很难被收集起来。
也许这是一个简单的问题,但我真的找不到答案,因为在datawarehouse中,您没有严格的关系约束来检查数据有效性,特别是当您在大数据中移动时,数据库管理员也会删除触发器和索引。我们获取源数据的事务端也不保存历史记录(这是我们的工作)。
如对此议题有任何意见和建议,将不胜感激。
发布于 2014-01-13 10:27:26
通常,在使用数据库或编写代码时,会出现错误。这就是为什么您总是将开发环境与生产环境分开的原因。我们大多数人还拥有一个中间测试环境,在将代码部署到生产之前,将对新代码进行测试并验证数据。
此外,在进行任何部署之前,都会进行完全备份。这样,如果在部署后发现错误,则可以对备份进行还原。
最好,您的开发和生产环境运行在单独但相同的服务器上。如果不可能,请至少将数据保存在单独的数据库中,并使用数据库服务器的安全性,以确保任何人都不能对生产数据库进行更改,除非正在进行部署。
现在,对于部署本身,确保每次进行部署时都要检查某种检查表。清单上的第一步应该是备份现有的生产环境。尽可能编写脚本来自动化部署的各个部分。使用Schema比较等工具来识别开发和生产数据库之间的差异等等。理想情况下,部署应该是按一个按钮,然后一切都自动部署,您可以不用担心地返回开发。
https://stackoverflow.com/questions/21088724
复制相似问题