2013-07-23 26 views
0

我正在創建一個應用程序,將跟蹤僱員的小時數。理想情況下,人力資源部要求在數據提交後不要修改某些表。這很容易從前端和存儲過程完成。然而,能夠通過限制來阻止服務器本身是非常好的,這樣可以訪問後端數據的人員不能更改所選表格中的任何值(除非他們足夠狡猾,無法知道如何禁用約束)。有沒有辦法創建一個約束來阻止SQL Server 2012數據庫表中的更新?

+0

如果每個用戶都擁有自己的存在登錄到服務器你爲什麼不只是刪除了更新/插入的權限/刪除一個組中,然後每個用戶添加到該組? – ObieMD5

+0

你應該通過權限/訪問被限制的控制 - 通過表約束不.... 先放下這些限制,然後看看你是否需要支付一些角落情況下,與其他事物(如限制...) – Vivek

+1

同意。 「權限」是你如何處理這個問題,而不是「約束」。現在,您可以放置​​一些「審計觸發器」來跟蹤user_id ....如果有人操縱數據。 – granadaCoder

回答

0

如果你信任你的SQL Server管理員,那麼這是可能的。讓您的管理員創建對這些表或模式沒有數據寫入者權限的用戶。

因此,應用程序將數據寫入到數據庫,誰擁有訪問這些表的用戶只能夠讀取數據。

如果您不希望管理員不得不修改這是不可能的數據的能力。沒有辦法阻止它,但有一種方法可以檢測它是否發生。請查看this文章以獲取詳細信息,瞭解如何在第三方應用程序中完成此操作,並查看它是否有幫助。

0

使用服務器端的安全角色,只給HR組數據的讀寫權限。

相關問題