如何查看授予其他用户的架构的权限

Bha*_*ita 20 oracle

考虑这种情况:在数据库中,我有两个用户A和B及其相应的模式.

我想知道,我如何获取信息:Schema B中的USER A有哪些权限.

考虑这种情况:我们有两个用户及其相关的scehmas.我们有用户A和用户B.在A中,假设我们有TB1 TB2,在B中,我们说有TBa,TBb.现在我想知道如何找到用户A在Schema B上拥有的权限.

例如:用户A正在写:select * from B.TBb 这意味着用户A正在访问用户B的表,因此,它显示他具有SELECT权限.我想知道用户A在Schema B上拥有的所有权限.

应执行哪个查询以获取用户A在模式B上具有的权限列表.

Don*_*gyi 27

您可以使用以下查询:

select * from all_tab_privs;
select * from dba_sys_privs;
select * from dba_role_privs;
Run Code Online (Sandbox Code Playgroud)

这些表中的每一个都有一个grantee列,您可以在where条件中对其进行过滤:

where grantee = 'A'
Run Code Online (Sandbox Code Playgroud)

为了查询我建议的其他模式中的对象(例如表)的权限all_tab_privs,它还有一个table_schema列.

如果您正在使用您要查询其权限相同的用户登录后,就可以使用user_tab_privs,user_sys_privs,user_role_privs.它们可以由普通的非dba用户查询.