2011-08-03 109 views
0

我正在用C#編寫一個應用程序,使用SQL Server 2005數據庫。它使用Windows驗證。SQL Server 2005,權限驗證

問題是用戶應該根據存儲在數據庫中的信息獲得權限。

F.e.我在我的數據庫中存儲有關不同項目的信息。每個項目都有一個領導者,每個項目都屬於某個領域,每個領域都有管理員。 因此,啓動某個項目的人應該只能修改該項目。 管理員也可以啓動項目,但仍應該無法修改其他項目。 這適用於不同的選擇,更新和插入案例。

我不喜歡在存儲過程調用中檢查權限的想法,因爲如果某些類的工作人員的權限發生更改,則應該重寫所有這些權限。

在我的情況下控制訪問的最佳方式是什麼?

回答

0

您無法避開權限基於數據的事實,因此您需要在執行操作之前檢查數據。也就是說,在代碼中。

  • 在「創造」 PROC /查看您需要檢查當前用戶是管理員
  • 更新 PROC /視圖,您需要檢查用戶的列匹配

這是簡化的,但這是你必須要做的。

對於存儲過程,您可以調用另一個存儲過程,它將檢查權限,以便在幾個地方集中所有檢查以便於維護。

+0

我希望有更好的方法。謝謝。 –