50 ほどのテーブルがあり、特定のユーザーの 1 つのテーブルを除いて、すべてのテーブルへの書き込み権限を拒否する必要があります。
どうすればこれを行うことができますか?
50 ほどのテーブルがあり、特定のユーザーの 1 つのテーブルを除いて、すべてのテーブルへの書き込み権限を拒否する必要があります。
どうすればこれを行うことができますか?
これを動的 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;