我已经运行了以下查询来找出分配给每个用户的访问权限:
SELECT DISTINCT
A.GRANTEE AS DB_ACCOUNT,
B.PRIVILEGE AS ACCESS_RIGHTS
FROM SYS.EXA_DBA_ROLE_PRIVS A
INNER JOIN SYS.EXA_DBA_SYS_PRIVS B
ON A.GRANTED_ROLE = B.GRANTEE;
查询的输出中,每个用户都具有逐行格式列出的多个访问权限,我需要为每个用户在同一行中列出所有 ACCESS_RIGHTS 。
例如:对于所有用户,输出都是这样的:
EXECUTE
SELECT
CREATE
而我需要输出为:
EXECUTE, SELECT, CREATE
我需要EXASOL中的功能 。
预先感谢:)
答案 0 :(得分:1)
答案 1 :(得分:0)
我在Exasol中有一个用于将行汇总为单行的函数,函数名称为 GROUP_CONCAT 。修改后的查询是:
SELECT DISTINCT
A.GRANTEE AS DB_ACCOUNT,
GROUP_CONCAT(B.PRIVILEGE)作为访问权限
来自
SYS.EXA_DBA_ROLE_PRIVS A
内联接
SYS.EXA_DBA_SYS_PRIVS B
开启
A.GRANTED_ROLE = B.GRANTEE
GROUP BY A.GRANTEE;