2016-10-26 23 views
1

SQL Serverの特定のユーザーロールに対して付与権限を作成するために実行できるスクリプトを探しています。たとえば、ユーザーロールを指定すると、すべてのテーブルに対して次のものが生成されますそして、それは保存して後で再利用できるように、データベースの手順、:ユーザーロールの付与スクリプトを作成するSQL Serverスクリプト

GRANT SELECT ON [dbo].[ResourceSource] TO ApplicationResourcesUpdates; 
GRANT INSERT ON [dbo].[ResourceSource] TO ApplicationResourcesUpdates; 
GRANT SELECT ON [dbo].[ResourceSource] TO ApplicationResourcesUpdates; 
GRANT UPDATE ON [dbo].[ResourceSource] TO ApplicationResourcesUpdates; 
GRANT DELETE ON [dbo].[ResourceSource] TO ApplicationResourcesUpdates; 
GRANT REFERENCES ON [dbo].[ResourceSource] TO ApplicationResourcesUpdates; 

GRANT EXECUTE ON dbo.TruncateAllTables TO ApplicationResourcesUpdates; 
GRANT EXECUTE ON import.CountryMerge TO ApplicationResourcesUpdates; 
GRANT EXECUTE ON import.CreateAllForeignKeys TO ApplicationResourcesUpdates; 
GRANT EXECUTE ON import.CreateAllIndexes TO ApplicationResourcesUpdates; 
+0

'' sys.tables' +から選択*は、タイプ=「P'' +いくつかの動的SQLは、あなたが必要とするすべてであるsys.objectsから選択* .... –

+0

この質問が見つかりました。これはあなたが探しているのと同じですか? http://stackoverflow.com/questions/6300740/how-to-script-sql-server-database-role –

+0

全体のスキーマを付与 –

答えて

1

はここであなたのためのSQLを生成するスクリプトのカップルです。

SELECT 'GRANT SELECT, INSERT, UPDATE, DELETE, REFERENCES ON [' + B.name + '].[' + A.name + '] TO [ApplicationResourcesUpdates]' 
FROM sys.objects A JOIN sys.schemas B 
ON A.schema_id = B.schema_id 
WHERE A.type = 'U' 

SELECT 'GRANT EXECUTE ON [' + B.name + '].[' + A.name + '] TO [ApplicationResourcesUpdates]' 
FROM sys.objects A JOIN sys.schemas B 
ON A.schema_id = B.schema_id 
WHERE A.type = 'P' 

SSMSを使用して出力を実行するだけで済みます。これを複数実行する予定の場合は、使用/グループを変数に変更してください。シンプルですが、機能します。一度の状況では良いです。許可を取り消す

0

そして:

SELECT 'REVOKE SELECT, INSERT, UPDATE, DELETE, REFERENCES ON OBJECT::' + B.name + '.' + A.name + ' FROM [ApplicationResourcesUpdates]' 
FROM sys.objects A JOIN sys.schemas B 
ON A.schema_id = B.schema_id 
WHERE A.type = 'U' 

SELECT 'REVOKE EXECUTE ON OBJECT::' + B.name + '.' + A.name + ' TO ApplicationResourcesUpdates' 
FROM sys.objects A JOIN sys.schemas B 
ON A.schema_id = B.schema_id 
WHERE A.type = 'P' 
関連する問題