我有一個存儲過程可以合併到一個表中。我們稱之爲someSchema.UpsertSomeStuff
(請注意,它不在dbo
模式中)。我們稱之爲dbo.SomeStuff
(注意它在dbo
模式中)。授予存儲過程的權限
當我用數據讀取器/數據寫入器用戶調用存儲過程時,它工作正常。
但是,如果我授予將此存儲過程稱爲非常弱用戶(無數據編寫者或讀者權限)的權限,那麼它會告訴我無法選擇,插入或更新到dbo。 SomeStuff
。
我不想讓這個弱用戶訪問該表。我只想讓存儲過程有權訪問。
我嘗試使用WITH EXECUTE AS OWNER
和它似乎工作,但後來我的同事開始收到此錯誤時,他試圖修改存儲過程:
無法執行的用戶MyUserNameHere',因爲它不存在或您沒有權限。
我對所有者和模式之間的差異有點困惑。但我認爲應該有一種方法可以完成這項工作,而無需將其與我的個人用戶帳戶綁定。
看看['這裏'](http://stackoverflow.com/questions/19517251/sql-server-user-permissions-on-stored-procedure-and-underlying-tables) –
OP是明確的不想讓這個用戶訪問該表。 – dean