1. ホーム
  2. sql

[解決済み] データベース内のすべてのストアドプロシージャに対して、ユーザーに実行権限を付与しますか?

2022-08-18 07:45:56

質問

古いデータベースからスクリプトを生成し、新しいデータベースを作成し、古いデータベースからすべてのデータをインポートしました。ここまでは良いのですが、ストアド プロシージャの実行権限を持つユーザーがいません。私は、私が使用できることを知っています。

GRANT EXECUTE ON [storedProcName] TO [userName] 

数個のプロシージャならともかく、100個くらいあるので、それら全てに特定のユーザーの実行権限を与えるには、どのような方法が一番簡単でしょうか?

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

ロールを作成し、このロールをユーザーに追加すると、このロールに一発ですべてのルーチンの実行権限を付与することができます。

CREATE ROLE <abc>
GRANT EXECUTE TO <abc>

EDIT

これはSQL Server 2005で動作します。この機能の後方互換性についてはよく分かりませんが、2005より後のものは問題ないはずです。