我正在寻找一些查询来列出所有对包有授权的用户。
例如,用户 Schema_A 已被授权执行包:B.MyPackage。
我正在查询视图或表,例如:role_tab_privs、role_sys_privs、sys.dba_sys_privs、dba_role_privs ......但我找不到我在找的东西。
我正在寻找一些查询来列出所有对包有授权的用户。
例如,用户 Schema_A 已被授权执行包:B.MyPackage。
我正在查询视图或表,例如:role_tab_privs、role_sys_privs、sys.dba_sys_privs、dba_role_privs ......但我找不到我在找的东西。
如果权限已被直接授予或授予角色,则授予将出现在
DBA_TAB_PRIVS
如果它
grantee
是一个角色,那么您需要dba_role_privs
查看哪些用户(或角色)已被授予该角色,如果您将角色授予其他角色,则遵循该链。如果您需要考虑由于(非常危险的)ANY
授权(即EXECUTE ANY PROCEDURE
)而获得授权的用户,则需要单独查询。但是,如果您想要比简单地对 进行直接查询更复杂
dba_tab_privs
,那么您最好使用Pete Finnigan 的脚本中的 on ,例如who_has_priv.sql
(orwho_has_priv_procedure.sql
)。Pete 可能是 Oracle 安全性方面的领先专家,因此与我试图拼凑的任何东西相比,这些更可能解决所有可能的极端情况。