【发布时间】:2022-01-09 00:22:03
【问题描述】:
我需要帮助来构建以以下方式返回数据的查询。我认为分层查询可能会有所帮助。但我不确定如何在我的情况下使用它。
例如, 我有以下数据
Grantee Role
------- ------
User_1 Role_4
Role_4 Role_1
Role_4 Role_2
Role_4 Role_3
User_2 Role_5
User_2 Role_6
我需要返回用户已直接或间接授予的所有角色。我知道如何查询单个用户的所有角色
SELECT DISTINCT GRANTED_ROLE FROM DBA_ROLE_PRIVS
START WITH GRANTEE=UPPER('&&USERNAME')
CONNECT BY PRIOR GRANTED_ROLE=GRANTEE
用户User_1的查询结果是
ROLE_1
ROLE_2
ROLE_3
ROLE_4
但我不知道如何为多个用户返回所有角色。 例如,我希望通过以下方式获得结果集
Grantee Role
------- ------
User_1 Role_4
User_1 Role_1
User_1 Role_2
User_1 Role_3
User_2 Role_5
User_2 Role_6
【问题讨论】:
标签: sql oracle hierarchical