開発者が運用データベースのストアドプロシージャのコンテンツに読み取り専用でアクセスできるようにSQL Serverを設定することはできますか?
それらを許可VIEW DEFINITION
それらのprocに対する特権、こちらを参照してください http://msdn.Microsoft.com/en-us/library/ms175808.aspx
有る
サーバースコープ
データベースの範囲
スキーマスコープ
個々のエンティティ
クエリを使用してスクリプトを生成することもできます。あなたがユーザーボブを持っている場合
select 'GRANT VIEW DEFINITION ON ' + quotename(specific_schema)
+ '.' + quotename(specific_name)
+ ' TO ' + 'BOB'
from INFORMATION_SCHEMA.routines
where routine_type = 'PROCEDURE'
それはあなたにこのようなものを与えるでしょう、そしてあなたはそれを走らせることができます
GRANT VIEW DEFINITION ON [dbo].[aspnet_RegisterSchemaVersion] TO BOB
GRANT VIEW DEFINITION ON [dbo].[aspnet_CheckSchemaVersion] TO BOB
GRANT VIEW DEFINITION ON [dbo].[aspnet_Applications_CreateApplication] TO BOB
ドメインアカウントへのアクセスを許可する必要がありました。このための構文は
スキーマのビュー定義を許可します:: [dbo] to "domain\BOB"
すべてのdbプロシージャの私のバリアント:
select 'GRANT VIEW DEFINITION ON [' + schema_name(schema_id) + '].[' + name +
'] TO ' + '[domain\username]'
from sys.all_objects
where type_desc = 'SQL_STORED_PROCEDURE'
and schema_id <> schema_id('sys')
私はこれが質問への応答が遅いことを知っていますが、少なくともSQL管理スタジオ2014で答えを探している(ちょうど数分前にした)人々のために、あなたはユーザーアカウントを編集し、 SECURABLES領域で権限を選択し、VIEWでアクセスするすべてのボックスにチェックマークを付けます。
これにより、スクリプトを実行せずに上記のことが実行されます。