我們的程序附帶SQL Server 2005數據庫和SQL Server 2005 Express。通常它會在客戶端的計算機中安裝自己的SQL Server 2005實例。SQL Server:防止數據庫被直接更改
現在我不得不添加一些表格,其內容只能從程序中更新。我需要通過使用Management Studio來防止直接更改這些表。
我該如何做到這一點?我應該設置用戶權限嗎?我可以使用加密嗎?我想設置自己的'sa'密碼來訪問SQL Server實例並僅在程序中使用它,但是這並不會通過Windows身份驗證使其訪問失效。
[編輯]對我正在嘗試做什麼的一些澄清。該計劃是一項考勤計劃。員工的計時從時鐘收集並保存在數據庫中;一旦收集,這些時鐘不能被刪除,並且它們的日期和時間值不能被改變。所以我需要一種方法來防止用戶直接在數據庫中混淆這些值。
請記住,我們的大多數客戶沒有任何SQL經驗,所以我需要在程序安裝時設置這些權限。
[編輯2]謝謝您的回答,我想提出兩個有關這一主題的問題:
1 - 我只授予SELECT權限,對那些通過Windows身份驗證訪問數據庫?
2 - 通過哈希系統保護表格是否可以防止變化?就像添加一個哈希列併爲每一行計算一個哈希值,然後比較行數據和哈希值來檢查更改?
你能解釋一下這個背景嗎?例如你是賣給企業還是個人?特別想要保護這些表的原因是什麼? – 2010-07-09 12:40:13