SQL Server 2008 Express Editionを使用しています。データベースロールにスキーマの実行権限を与える方法を教えてください。私は間違って何をしていますか?
ログイン、ユーザー、役割、およびスキーマを作成しました。 ユーザーをログインにマップし、そのユーザーにロールを割り当てました。
スキーマには多数のテーブルとストアドプロシージャが含まれています。
ロールには、スキーマ全体に対して実行権限が必要です。
私は、管理スタジオから実行権限を許可し、クエリウィンドウでコマンドを入力することを試みました。
GRANT EXEC ON SCHEMA::schema_name TO role_name
しかし、私は(私が作成したログインなど)SQL管理スタジオを使用してデータベースに接続すると、まず、私は、ストアドプロシージャを参照することはできませんが、もっと重要なのは、私はそれらを実行しようとすると、エラーを拒否された権限を取得します。
問題のストアドプロシージャは、同じschma内のテーブルから選択データを除いて何もしません。
私はラインでとせずにストアドプロシージャを作成しようとした:
WITH EXECUTE AS OWNER
これは、任意の違いはありません。
私は自分のスキーマを作成するときにエラーが発生したか、どこかに所有権の問題があると思うが、何か作業をするのは本当に苦労している。
私はストアドプロシージャを実行するのに成功した唯一の方法は、ロールへの制御権限と実行権限を付与することですが、これが正しい、安全な方法であるとは思いません。
本当にありがとうございます。
ありがとうございました。
Sproc用に作成したユーザーに実行権限を与えましたか? –