2016-01-28 70 views
2

如何將sql權限授予與dbo不同架構中的對象?

GRANT EXECUTE ON OBJECT::[test].[someTable] TO [MyUser] AS [dbo]; 

失敗,錯誤

Msg 15151, Level 16, State 1, Line 1 Cannot find the object 'someTable', because it does not exist or you do not have permission.

如果我刪除它工作正常的AS [DBO]部分。有人可以解釋爲什麼這是和刪除作爲dbo部分的含義?

這是SQL Server 2012

+0

根據數據庫的不同,這看起來像是MSFT:SQL Server,但請添加一個標記,指出RDBMS和版本。 – xQbert

+0

@xQbert我沒有看到SQL2012標籤,但添加到OP – user3953989

+0

@ user3953989您是否發現了您的問題的答案? – gofr1

回答

1

AS用GRANT - 指定要從其執行此查詢的主體派生其授予(從MSDN)的許可權的主體。 所以這意味着[dbo] dosn't沒有權限授予SCHEMA [test]上的東西。我想你應該在查詢之前運行它:

GRANT EXECUTE ON SCHEMA::[test] TO [dbo] WITH GRANT OPTION;