Security

拒絕使用者安全修改儲存過程數據

  • June 17, 2017

我想要一種在我的數據庫上創建只讀使用者的簡單方法。只有在不修改數據的情況下,使用者才應該有權執行儲存過程。我不想弄清楚哪些儲存過程是只讀的並以這種方式授予權限,因為要處理的太多了。

在閱讀以下內容後,我認為這是可能的:

“儲存過程可能需要儲存過程的 EXECUTE 權限和儲存過程引用的多個表的 INSERT 權限。” – http://technet.microsoft.com/en-us/library/ms191291.aspx

不幸的是,我能夠執行插入到“只讀”使用者表中的“可執行”儲存過程。

MSDN 上的評論僅僅意味著在某些情況下(例如有時在使用動態 SQL 時)在儲存過程上授予使用者 EXECUTE 不一定足以讓他們執行它。

你想要的不能做 - 如果他們能夠執行儲存過程,他們將能夠執行儲存過程所做的任何事情 - 插入、刪除、更新等等。甚至 SELECT 也可以通過 SELECT INTO 進行更改。並且總是有臨時表或表變數使辨識安全/不安全 sps 列表的任何嘗試複雜化。

我的建議是盡可能縮小只讀使用者實際需要閱讀的內容,創建一個對這些對象具有 EXECUTE 權限的 db 角色,然後從那裡開始。而且我希望您沒有向 Public 角色授予 EXECUTE 權限,因為如果是這樣,您還必須在所有其他儲存過程上拒絕 EXECUTE。

引用自:https://serverfault.com/questions/90711