有没有办法一次更改SQL服务器数据库中所有表的权限?

时间:2009-12-28 16:52:47

标签: sql-server database permissions

我想立即更改SQL-Server数据库中所有表的权限。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:2)

运行此脚本的结果(根据您的要求进行更改):

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)

答案 1 :(得分:2)

如果您的所有表都属于同一模式,则可以在模式级别修改权限。

请参阅Grant Schema Permissions

答案 2 :(得分:0)

您可以编写一个脚本来检索一组表,然后通过动态SQL授予/拒绝权限。

但是,我认为更好的方法是创建角色,为该角色授予权限,然后根据需要添加/删除该角色中的个人。