2017-03-17 3 views
0

EDIT:ユーザー定義型に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を使用してください。

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

それは(一般的にテーブル値パラメータに使用)user-defined table typeです:Bug2がテーブルの場合、クエリは次のようになります。 db_nm> programmability> types>ユーザ定義のテーブルタイプを見ると、bug2オブジェクトが表示されます。そのオブジェクトに対するアクセス許可の問題に対処することができます(スクリプトまたはGUI経由)。

スクリプトのオプション:

use [abc] 
GO 
GRANT EXECUTE ON TYPE::[dbo].[bug2] TO [public] 
関連する問題