gpt4 book ai didi

sql-server - 在 SQL Server 2005 中,是否有一种简单的方法可以将对象的 "copy"权限从一个用户/角色授予另一个用户/角色?

转载 作者:行者123 更新时间:2023-12-02 07:56:57 24 4
gpt4 key购买 nike

我问了another question关于角色和权限,这主要是为了揭示我的无知。其他结果之一是建议人们通常应该避免使用“公共(public)”角色的权限。

好的,很好,但是如果我已经这样做并想将相同的权限重新分配给自定义/“灵活”角色,那么最好的方法是什么?到目前为止我所做的是运行脚本向导,并告诉它在没有创建或删除的情况下编写对象权限脚本,然后运行查找替换,这样我就可以在 [dbo 上得到很多 "GRANT DELETE .tablename] 到 [newRole]”。它完成了工作,但我觉得它可以更漂亮/更容易。有任何“最佳实践”建议吗?

最佳答案

凭内存工作(我的游戏机上没有 SQL),您可以使用 sys.database_permissions

运行它并将结果粘贴到新查询中。

编辑,2012 年 1 月。添加了 OBJECT_SCHEMA_NAME。
您可能需要通过加入 sys.objects 来拉动它以支持模式 (dbo.)

SET NOCOUNT ON;
DECLARE @NewRole varchar(100), @SourceRole varchar(100);

-- Change as needed
SELECT @SourceRole = 'Giver', @NewRole = 'Taker';

SELECT
state_desc + ' ' +
permission_name + ' ON ' +
OBJECT_SCHEMA_NAME(major_id) + '.' + OBJECT_NAME(major_id) +
' TO ' + @NewRole
FROM
sys.database_permissions
WHERE
grantee_principal_id = DATABASE_PRINCIPAL_ID(@SourceRole)
AND
-- 0 = DB, 1 = object/column, 3 = schema. 1 is normally enough
class <= 3;

关于sql-server - 在 SQL Server 2005 中,是否有一种简单的方法可以将对象的 "copy"权限从一个用户/角色授予另一个用户/角色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/372086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com