it编程 > 数据库 > Oracle

查询Oracle 数据库用户权限的方法

49人参与 2026-07-16 Oracle

一、oracle 权限体系说明

oracle 权限分为三大类,且支持角色嵌套继承(用户→角色→子角色→权限),查询时要区分直接权限和间接权限(通过角色继承获得):

二、查询当前登录用户的权限(普通用户可执行)

无需 dba 权限,登录后直接运行,可查自己拥有的全部权限。

1. 直接授予的系统权限

select privilege, admin_option
from user_sys_privs
order by privilege;

2. 直接授予的对象权限

select owner, table_name, privilege, grantable
from user_tab_privs_recd
order by owner, table_name, privilege;

3. 被授予的所有角色

select granted_role, admin_option, default_role
from user_role_privs
order by granted_role;

4. 所有系统权限(含角色继承的全部权限)

select distinct privilege
from (
    -- 直接授予的系统权限
    select privilege from user_sys_privs
    union all
    -- 角色携带的系统权限
    select rp.privilege
    from role_sys_privs rp
    where rp.role in (select granted_role from user_role_privs)
)
order by privilege;

5. 汇总版(看全权限)

select '系统权限' as 权限类型, privilege as 权限名称 from user_sys_privs
union all
select '所属角色' as 权限类型, granted_role as 权限名称 from user_role_privs
union all
select '对象权限' as 权限类型, owner||'.'||table_name||'('||privilege||')' as 权限名称 
from user_tab_privs_recd
order by 权限类型, 权限名称;

到此这篇关于查询oracle 数据库用户权限的方法的文章就介绍到这了,更多相关oracle 用户权限内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

您想发表意见!!点此发布评论

推荐阅读

KingbaseES数据库自动创建表空间目录的完整流程(不用再提前建文件夹了)

05-15

Oracle数据库无备份强制恢复的实战指南

05-15

Oracle查看表结构的多种方法详解

05-13

DBeaver首次连接Oracle驱动问题及解决

05-12

ORACLE GOLDENGATE监控脚本方式

05-11

Oracle 自动分区表(Interval Partition)的使用

05-09

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论