1. ホーム
  2. asp.net

[解決済み] ユーザー定義テーブルタイプで EXECUTE 権限が拒否されましたか?

2023-01-17 14:16:53

質問

についての質問です。 ユーザー定義のテーブルタイプ についてです。

ある ASP.NET アプリケーションの必要性から、SQL Server 2008 で独自のテーブル型を定義し、ストアド プロシージャのパラメータとして使用しました (ASP.NET アプリケーションで SQL コマンドを実行する場合、DataTable オブジェクトをストアド プロシージャのパラメータとして渡します)。 例はこちらをご覧ください。 )

問題は、ASP.NETからSqlコマンド(ストアドプロシージャの実行)を実行すると、エラーが発生することです。

オブジェクト 'ourTableType' に対する EXECUTE 権限が拒否されました。 データベース 'ourDatabase'、スキーマ 'ourSchema' に対して EXECUTE 権限が拒否されました。

なぜそうなるのでしょうか?なぜユーザー定義のテーブル型に権限を設定する必要があるのでしょうか?なぜ、それを使用するストアドプロシージャにのみ権限を設定するのでは不十分なのでしょうか?また、何があっても設定しなければならないのであれば、なぜ EXECUTE パーミッション・タイプは存在しないのでしょうか? Control , References , Take Ownership , View Definition )?

また、私が理解していないのは、パーミッションの設定が Control に設定すると問題が解決され、ストアドプロシージャが問題なく実行されることです。

どのように解決するのですか?

この質問は4ヶ月近く前のものなので、今までに解決していることを本当に願っていますが、万が一解決していない場合は、私が考える答えがここにあります。

GRANT EXEC ON TYPE::[schema].[typename] TO [User]
GO