【发布时间】:2010-12-30 12:48:45
【问题描述】:
我想一次更改 SQL-Server 数据库中所有表的权限。有没有办法做到这一点?
【问题讨论】:
标签: sql-server database permissions
我想一次更改 SQL-Server 数据库中所有表的权限。有没有办法做到这一点?
【问题讨论】:
标签: sql-server database permissions
如果您的所有表都属于同一个架构,您可以在架构级别修改权限。
【讨论】:
您可以编写一个脚本来检索表集,然后通过动态 SQL 授予/拒绝权限。
但是,我认为更好的方法是创建一个角色,授予该角色权限,然后根据需要从该角色添加/删除个人。
【讨论】:
运行此脚本的结果(根据您的要求进行更改):
SELECT
'GRANT SELECT ON ' + OBJECT_NAME(o.object_id) + ' TO myRole'
FROM
sys.objects o
WHERE
OBJECTPROPERTY(o.object_id, 'IsMSSHipped') = 0
AND
OBJECTPROPERTY(o.object_id, 'IsTable') = 1
ORDER BY
OBJECT_NAME(o.object_id)
【讨论】: