我有一個由20位用戶使用的數據庫(SQL Server),這是同一安全角色的所有成員。該角色使他們能夠插入,刪除和更新到Table1,但他們對Table2沒有權限。SQL Server中的觸發器和存儲過程安全性
Table1有一個觸發器觸發一個存儲過程Table2_Refresh,它截斷Table2並從Table1重新構建它。
我在某些地方看過觸發器和存儲過程自動執行的調用者,因此使用調用者的權限。然而20個用戶中的19個能夠更新Table1,觸發器和SP執行得很好。一位用戶得到一個錯誤,告訴他無法找到Table2。
我知道我可以在SQL中放置一個'EXECUTE AS'行,但這種情況發生在多個地方,看起來像是用戶的問題,所以我想盡可能在那裏解決它。由於角色成員和權限是相同的,所以兩個用戶會遇到與數據庫不同的行爲還有其他原因嗎?