スキーマ権限
-- execute permission on programmability objects in CMV schema
GRANT EXECUTE ON SCHEMA::CMV TO cmv_executor
-- DML permissions on tables/views in CMV schema
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::CMV TO cmv_viewer
ユーザーがCMV
以外のスキーマ内のオブジェクトのためのリード/ライトを必要としない限り、これはdb_datareader
とdb_datawriter
役割にユーザーを追加するための必要性を排除する必要があります。
granting schema permissionsの詳細については、こちらをご覧ください。
オブジェクト権限
-- use output of this query to grant permissions for individual objects
SELECT
'GRANT SELECT ON ' +
QUOTENAME(SCHEMA_NAME(schema_id)) + '.' +
QUOTENAME(name) + ' TO [cmv_viewer];'
FROM
sys.objects
WHERE
SCHEMA_NAME(schema_id) = 'CMV'
AND
type_desc = 'VIEW'
UNION
SELECT
'GRANT EXECUTE ON ' +
QUOTENAME(SCHEMA_NAME(schema_id)) + '.' +
QUOTENAME(name) + ' TO [cmv_executor];'
FROM
sys.objects
WHERE
SCHEMA_NAME(schema_id) = 'CMV'
AND
type_desc IN ('SQL_STORED_PROCEDURE', 'SQL_SCALAR_FUNCTION',
'SQL_INLINE_TABLE_VALUED_FUNCTION');
私はCLR
ファンクションまたはプロシージャが含まれるので、必要に応じてそれらを追加しませんでした。 type_desc
列の有効な値はhereです。
EXECUTEはプロシージャと関数を意味しますか?他のユーザーはどのようにVIEWSに対して権限を与えますか? –
ビューは 'GRANT SELECT'に含まれませんか? –
@PrisonerZEROこのページでは、さまざまなオブジェクトタイプに適用されるアクセス許可とその適用方法について説明します。 http://msdn.microsoft.com/en-us/library/ms191291.aspx – Bryan