我有一個應用程序,將部署在具有SQL Server的生產型PC上。 我希望能夠在我的數據庫中存儲和檢索架構的一個版本。 我感興趣的最佳實踐,能夠做到這一點,有以下主要目標:在SQL Server中存儲數據庫模式版本的最佳實踐?
- 能夠存儲和方便地檢索數據庫的版本號。
- 被客戶隱藏或更難找到和操縱。
- 能夠在我們創建新版本時進行編輯/更改。
- 備份數據庫或刪除數據庫將保留用於取證的版本#。
我希望有一種方法可以在元數據中存儲「版本」,或者不是可以通過系統存儲過程訪問/設置的普通表。
任何想法或最佳實踐?
編輯:我發現可能有前途的一個選項是使用SQL Server擴展屬性,將鍵值分配給數據庫的「Schema_Version」和版本號。它沒有加密(但值可能),並沒有隱藏,但至少從我們的一些用戶和現場工作人員瀏覽的實際DB結構中刪除(對我的沮喪!:))
爲什麼你會在意,如果客戶端可以訪問的領域?如果他們直接編輯它,是不是隻會弄亂應用程序,然後這將是他們自己的錯誤? – mellamokb 2012-04-17 18:32:02
@mellamokb - 偉大的標註,但我們需要這特別是因爲在現場人們正在做的是:與數據庫搞混。我們希望這是用於法醫調查,因此隱藏它(例如在SQL元數據中)只會降低更改的可能性。 – pearcewg 2013-01-31 21:46:07
@pearcewg如果你想取證,那麼你步入安全領域,然後你就錯過與你的需求點。你不應該試圖保護那些擁有它的人的數據庫 - 這就是所謂的「過度保護設計」。如果你覺得真的很深,你會發現絕對沒有辦法讓你知道一個有SA密碼的人是否搞亂了數據庫。這就是整個問題。讓解決方案「更難以找到和操縱」只會讓你在沒有時感到受到保護。 – 2013-05-14 12:30:57