2014-01-13 54 views
0

我在一家公司擔任數據倉庫的初級sql開發人員。自從我研究過代碼並學習維度模型之後,我就很難看到開發人員對環境的權利之外的安全措施。datawarehouse數據安全性?

但是如果有人會以顯着的方式編寫影響倉庫數據的代碼,請更新爲錯誤的值,插入錯誤的數據,刪除應該在那裏的記錄並用提交語句敲擊該代碼,是否會對倉庫的商業智能方面產生巨大影響?就像他們要拉取數據來創建統計數據並且有不好的數據一樣,那麼他們將會得到不好的統計數據。

我們有大約7條billlion記錄,如果可以看到它,那麼以這種方式進行的更改將很難完成。

也許這是一個簡單的問題,但我無法真正找到答案,因爲在數據倉庫中,您沒有嚴格的關係約束來檢查數據有效性,特別是當您圍繞大數據和數據庫管理員移動時放下觸發器和索引。我們從源數據獲取的交易方面也不會保留歷史記錄(這是我們的工作)。

對此主題的任何意見和建議將不勝感激,謝謝。

回答

4

在處理數據庫或編寫一般代碼時,會發生錯誤。這就是爲什麼你總是將你的開發環境與生產環境分開的原因。在將代碼部署到生產環境之前,我們大多數人還擁有一箇中間測試環境,在該環境中測試新代碼並驗證數據。

此外,在進行任何部署之前,都會進行完整備份。這樣,如果在部署後發現錯誤,則可以進行備份恢復。

最好是,您的開發和生產環境運行在單獨但相同的服務器上。如果這不可行,至少應將數據保存在不同的數據庫中,並使用數據庫服務器的安全性,以確保沒有人可以更改生產數據庫,除非進行部署。

現在爲了部署本身,請確保每次進行部署時都有一個檢查清單。清單上的第一步應該是備份現有的生產環境。儘可能編寫腳本以自動執行部署。使用諸如SQL Schema Compare等工具來識別開發和生產數據庫之間的差異等等。理想情況下,部署應該是按下一個按鈕,然後所有事情都可以自動部署,並且您可以重新開發而不必擔心。

+0

很好的答案。 @丹的回答是最好的解決方案 – Karthi