2017-03-17 37 views
0

編輯:如何將exec權限授予用戶定義的類型?SQL Server數據庫:找不到明確存在的對象

看起來像「Bug2」是用戶定義的類型。

select * from sys.types 
where is_user_defined = 1 and name = 'Bug2' 

我們擺脫這種錯誤的:

"The EXECUTE permission was denied on the object 'Bug2', database 'abc', schema 'dbo'"

什麼命令,我應該使用?


我只是用別人的代碼玩耍,並撞上了這一點:

如果我做

DECLARE @bugList Bug2 

SELECT * 
FROM @bugList 

然後我得到的結果

但如果我這樣做

SELECT * 
FROM Bug2 

然後我得到一個

Invalid object name 'Bug2'.

這是怎麼回事?

基本上我試圖運行使用這種「BUG2」一個存儲過程,由於有一定的權限問題我得到上運行它這個錯誤:

The EXECUTE permission was denied on the object 'Bug2', database 'abc', schema 'dbo'.

因此,所有我想做的事是:

GRANT EXEC ON Bug2 TO PUBLIC 

但SQL Server無法找到此對象「Bug2」,因此會引發錯誤。

任何人都可以幫忙嗎?

+1

,BUG2什麼樣的類型。 – Mansoor

回答

0

好的。得到它使用這個工作:

GRANT EXECUTE ON TYPE::Bug2 to PUBLIC 

謝謝!

0

而不是使用sys.types使用sys.objects。如果Bug2是一個表,然後查詢看起來像:

SELECT * FROM sys.objects WHERE name='Bug2' AND type='U' 
0

這是一個user-defined table type(通常用於表值參數)。查看db_nm> programmability> types>用戶定義的表類型,您將看到一個bug2對象。您可以解決該對象上的權限問題(通過腳本或GUI)。

腳本選項:

use [abc] 
GO 
GRANT EXECUTE ON TYPE::[dbo].[bug2] TO [public] 
相關問題