1

50 ほどのテーブルがあり、特定のユーザーの 1 つのテーブルを除いて、すべてのテーブルへの書き込み権限を拒否する必要があります。

どうすればこれを行うことができますか?

4

2 に答える 2

2

これを動的 SQL で行う方法を次に示します。Management Studio の出力制限のため、印刷ではコマンド全体が表示されない場合があります。ユーザー名と例外を更新する必要があります。

DECLARE @sql NVARCHAR(MAX);
SET @sql = N'';

SELECT @sql = @sql + '
    DENY UPDATE, DELETE, INSERT ON ' + 
    QUOTENAME(SCHEMA_NAME([schema_id])) + '.'
    + QUOTENAME(name) + ' TO [username];' -- fix this username
FROM sys.tables
WHERE name <> 'exception'; -- fix this to be the one you want to allow

PRINT @sql;
-- EXEC sp_executesql @sql;
于 2012-08-06T13:04:59.217 に答える