Edgar Rodriguez Testa Asked: 2022-04-14 08:50:57 +0800 CST2022-04-14 08:50:57 +0800 CST 2022-04-14 08:50:57 +0800 CST 如何在另一个角色 oracle 中获取角色 772 我正在尝试制作一个脚本,允许我获取所有用户的另一个角色中的角色 oracle-12c 1 个回答 Voted Best Answer Andrew Sayer 2022-04-14T09:21:49+08:002022-04-14T09:21:49+08:00 授予的角色都在 中dba_granted_roles,因此您可以执行简单的递归查询来获取它们。 connect by当我可以摆脱简单时,我更喜欢: select granted_role ,ltrim(sys_connect_by_path(granted_role,'>'),'>') how from dba_role_privs rp connect by prior rp.granted_role = rp.grantee start with rp.grantee = '<USER>' 我正在使用sys_connect_by_path,所以每个返回的行都告诉我路线,例如SYS GRANTED_ROLE HOW ______________________________ __________________________________________________________________________________________________________ ACCHK_READ ACCHK_READ ADM_PARALLEL_EXECUTE_TASK ADM_PARALLEL_EXECUTE_TASK APPLICATION_TRACE_VIEWER APPLICATION_TRACE_VIEWER AQ_ADMINISTRATOR_ROLE AQ_ADMINISTRATOR_ROLE AQ_USER_ROLE AQ_USER_ROLE AUDIT_ADMIN AUDIT_ADMIN AUDIT_VIEWER AUDIT_VIEWER AUTHENTICATEDUSER AUTHENTICATEDUSER BDSQL_ADMIN BDSQL_ADMIN BDSQL_USER BDSQL_USER CAPTURE_ADMIN CAPTURE_ADMIN CDB_DBA CDB_DBA CONNECT CONNECT DATAPATCH_ROLE DATAPATCH_ROLE DATAPUMP_EXP_FULL_DATABASE DATAPUMP_EXP_FULL_DATABASE EXP_FULL_DATABASE DATAPUMP_EXP_FULL_DATABASE>EXP_FULL_DATABASE EXECUTE_CATALOG_ROLE DATAPUMP_EXP_FULL_DATABASE>EXP_FULL_DATABASE>EXECUTE_CATALOG_ROLE HS_ADMIN_EXECUTE_ROLE DATAPUMP_EXP_FULL_DATABASE>EXP_FULL_DATABASE>EXECUTE_CATALOG_ROLE>HS_ADMIN_EXECUTE_ROLE HS_ADMIN_ROLE DATAPUMP_EXP_FULL_DATABASE>EXP_FULL_DATABASE>EXECUTE_CATALOG_ROLE>HS_ADMIN_ROLE HS_ADMIN_EXECUTE_ROLE DATAPUMP_EXP_FULL_DATABASE>EXP_FULL_DATABASE>EXECUTE_CATALOG_ROLE>HS_ADMIN_ROLE>HS_ADMIN_EXECUTE_ROLE ... 您会注意到某些角色是通过多个其他角色授予的,您可以distinct在此处简单地删除重复项(当然您必须放弃路线,因为这是使它们与众不同的原因) select distinct granted_role from dba_role_privs rp connect by prior rp.granted_role = rp.grantee start with rp.grantee = '<USER>'
授予的角色都在 中
dba_granted_roles
,因此您可以执行简单的递归查询来获取它们。connect by
当我可以摆脱简单时,我更喜欢:我正在使用
sys_connect_by_path
,所以每个返回的行都告诉我路线,例如SYS
您会注意到某些角色是通过多个其他角色授予的,您可以
distinct
在此处简单地删除重复项(当然您必须放弃路线,因为这是使它们与众不同的原因)