合并vertica中的角色

Merge roles in vertica

您知道在 HP vertica 数据库中是否有一种巧妙的方法可以将不同的角色合并为一个角色? 我的意思是,我在 vertica 中有 3 个具有不同授权的角色,我需要将这 3 个角色合并为 1 个角色。 有聪明的方法吗? 谢谢。

如果您正在寻找一个快速的解决方案,请创建一个新角色并将您要合并的三个角色中的每一个都授予该角色,但除此之外,没有将三个角色合并为一个的功能.

过去我曾查询过 grants table 并完成字符串连接以生成授权语句。类似于:

SELECT 'GRANT ' || priveleges_description || ' ON TABLE ' || object_schema || '.' || object_name || ' TO merged_role;'
FROM grants
WHERE
    grantee IN ('role1', 'role2', 'role3')
    WHERE object_type = 'TABLE'
;

这个查询并不全面。您将需要修改它以使用 tables 和模式等。您还需要考虑 WITH GRANT OPTION 子句,但您已经了解了基本概念。

为什么不是这个?

SQL>create role one;
role created
SQL>create role two;
role created
SQL>create role three;
role created
SQL>create role allofthem;
role created
SQL>grant one,two,three to allofthem; 
grant  succeeded

干杯...