NaN*_*NaN 8 sql-server-2008 security
作为一项清理工作,我试图删除所有用户(包括非公共用户)对单个表对象(超级用户除外)的访问权限,并随后授予新的访问权限。有没有一种简单的方法可以在不使用系统表的游标的情况下删除对表的访问权限?
该代码应该在下面工作:
declare
@user_name sysname,
@deny_cmd nvarchar(500)
declare UserCursor cursor for
select name
from sys.database_principals
where type in ('U', 'S')
and name not in ('dbo', 'information_schema', 'sys')
open UserCursor
fetch next from UserCursor
into @user_name
while @@fetch_status = 0
begin
set @deny_cmd =
'deny select, insert, update, delete on object::UberSecureTable
to ' + @user_name
exec (@deny_cmd)
fetch next from UserCursor
into @user_name
end
close UserCursor
deallocate UserCursor
Run Code Online (Sandbox Code Playgroud)
让我知道这是否符合您的要求。将UberSecureTable更改为您的实际表名称。