首页 游戏 软件 资讯 排行榜 专题
首页
数据库
Oracle如何查看被授予角色的用户列表_查询DBA_ROLE_PRIVS

Oracle如何查看被授予角色的用户列表_查询DBA_ROLE_PRIVS

热心网友
38
转载
2026-04-28

DBA_ROLE_PRIVS:精准定位Oracle角色授权的唯一视图

在Oracle数据库的权限管理体系中,要精确掌握“哪些用户被授予了哪些角色”,DBA_ROLE_PRIVS 视图是至关重要的核心工具。但请注意,查询此视图需要具备 SELECT_CATALOG_ROLEDBA 等高级权限。普通用户通常只能通过 USER_ROLE_PRIVS 查看自身角色,或利用 SESSION_ROLES 了解当前会话已激活的权限。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

为什么直接查询 DBA_ROLE_PRIVS 可能返回空结果?

许多用户曾遇到这样的困惑:使用普通账户登录后,执行 SELECT * FROM DBA_ROLE_PRIVS;,却收到 ORA-00942: table or view does not exist 的错误提示。

这并非视图不存在,而是当前用户缺乏访问它的权限。就如同用普通门禁卡无法打开管理员专用的数据机房。

  • 对于普通用户,默认只能查询 USER_ROLE_PRIVS,该视图仅显示当前用户自身的角色授权情况。
  • 需要特别指出的是,Oracle并未提供名为 ALL_ROLE_PRIVS 的视图。
  • 因此,若想查看其他用户的角色授予详情,没有 DBA 或相应的系统权限是无法实现的。

如何查询特定角色授予了哪些用户(以 CONNECT 为例)

在拥有相应权限后,查询操作将变得十分便捷。例如,要查找所有被授予 CONNECT 角色的用户,可以使用以下SQL语句:

SELECT GRANTEE, GRANTED_ROLE, ADMIN_OPTION, DEFAULT_ROLE
FROM DBA_ROLE_PRIVS
WHERE GRANTED_ROLE = 'CONNECT';

执行查询时,有几个关键字段需要理解:

  • GRANTEE 列显示被授权者,可能是数据库用户,也可能是另一个角色,这构成了Oracle的角色嵌套机制。
  • ADMIN_OPTION 显示为 'YES',则表示该用户有权将此角色再次授予其他用户或角色。
  • DEFAULT_ROLE = 'YES' 意味着用户登录时该角色会自动启用;若为 'NO',则需手动执行 SET ROLE 命令激活。
  • 角色名称在Oracle中是严格区分大小写的。使用 'connect' 可能无法查到结果,必须使用大写 'CONNECT'

如何查询指定用户被授予的所有角色(以用户 SCOTT 为例)

反之,若要查看如 SCOTT 这样的用户被直接授予了哪些角色,查询语句也非常相似:

SELECT GRANTED_ROLE, ADMIN_OPTION, DEFAULT_ROLE
FROM DBA_ROLE_PRIVS
WHERE GRANTEE = 'SCOTT';

这里需要补充几点重要说明:

  • 此查询结果仅包含直接授予 SCOTT 的角色,不会展示通过角色继承链获得的间接权限。
  • 若要一次性获取 SCOTT 所有的系统权限(包括通过角色间接获得的),需要联合查询 DBA_SYS_PRIVS 等视图,仅靠 DBA_ROLE_PRIVS 无法满足需求。
  • 如果查询结果中 GRANTEE 列显示的是另一个角色名(例如 'APP_DEVELOPER'),则表明这是一次“角色授予角色”的操作,而非直接授予用户。

没有 DBA 权限时如何进行权限查询?

对于大多数不具备高级权限的普通用户,也并非完全无法进行权限管理。我们可以聚焦于自身可访问的视图:

  • 查看自身拥有的角色SELECT * FROM USER_ROLE_PRIVS;
  • 查看当前会话激活的角色SELECT * FROM SESSION_ROLES;(注意,未通过 SET ROLE 激活或非默认的角色不会在此显示)
  • 查看当前有效的系统权限SELECT * FROM SESSION_PRIVS;
  • 最直接的权限验证方法:当不确定对某张表是否拥有操作权限时,直接尝试执行 SELECTINSERT 等语句,有时比查询权限视图更为可靠。因为权限可能来源于角色、直接的对象授权,甚至是复杂的细粒度访问控制策略,单一视图未必能完全覆盖所有情况。

实际上,Oracle权限管理的真正挑战,往往不在于单条SQL语句的编写,而在于其多层嵌套的授权体系。一个典型的权限传递链条可能是:用户 → 角色A → 角色B → 最终的系统权限。仅凭 DBA_ROLE_PRIVS 只能看到“谁被直接授予了什么角色”这第一层关系。要理清整个权限脉络,还需要进一步查询 ROLE_ROLE_PRIVS(角色间的授予关系)和 ROLE_SYS_PRIVS(角色包含的系统权限)。这才是全面掌握Oracle数据库权限体系的关键所在。

来源:https://www.php.cn/faq/2316209.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

Oracle RAC中数据文件损坏怎么恢复?利用RMAN进行块修复
数据库
Oracle RAC中数据文件损坏怎么恢复?利用RMAN进行块修复

Oracle RAC单块损坏修复:首选RMAN BLOCKRECOVER的精准手术 遇到Oracle RAC环境报出ORA-01578这类数据块损坏错误,先别急着动“大手术”——也就是立刻还原整个数据文件。更精准高效的做法,是优先使用RMAN的BLOCKRECOVER命令。它就像一场针对性的微创手术

热心网友
04.27
Oracle数据库性能调优指南?基于AWR的自动化诊断
数据库
Oracle数据库性能调优指南?基于AWR的自动化诊断

Oracle AWR报告深度解读:避开四个经典分析误区 AWR报告生成失败主因是快照不存在或权限不足;CPU time占比高未必异常,需结合DB Time Elapsed比值及绝对值分析;物理读高不等于缺索引,应查Buffer Hit Ratio和执行计划变化;SQL未共享常因大小写、绑定变量类型等

热心网友
04.25
Oracle视图如何提高跨库查询效率_利用DBLINK与视图封装
数据库
Oracle视图如何提高跨库查询效率_利用DBLINK与视图封装

Oracle视图如何提高跨库查询效率:利用DBLINK与视图封装 说到跨库查询,很多朋友的第一反应就是创建DBLINK。但实际操作后,往往会发现一个令人困惑的现象:明明已经建好了链路,查询速度却依然慢得让人难以接受。这背后的症结,通常不在于DBLINK本身,而在于查询的执行方式没有优化到位。 DBL

热心网友
04.24
Oracle如何高效处理海量数据_利用PL/SQL Bulk Collect与Forall
数据库
Oracle如何高效处理海量数据_利用PL/SQL Bulk Collect与Forall

PL SQL批量查数据不能只用普通LOOP,因逐行FETCH引发高频上下文切换和引擎通信,性能极差;应使用BULK COLLECT配合显式集合类型一次性加载数据,再用FORALL批量DML提升效率。 PL SQL里批量查数据,为什么不能只用普通LOOP? 原因其实很直接:逐行 fetch 的操作,本

热心网友
04.24
如何在Spring Boot应用中监控Oracle连接池_集成Druid
数据库
如何在Spring Boot应用中监控Oracle连接池_集成Druid

Druid连接池为什么比Hikari更适配Oracle监控需求 说到监控Oracle数据库的连接池,很多开发者可能会发现,事情没那么简单。Oracle的官方JDBC驱动在暴露连接状态、会话级指标(比如SQL执行耗时、等待事件)方面,远不如MySQL那样“友好”。这时候,连接池的选择就变得至关重要了。

热心网友
04.24

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

财务系统更换的风险?企业转型的隐形陷阱与应对策略
业界动态
财务系统更换的风险?企业转型的隐形陷阱与应对策略

一、财务系统更换:一场不容有失的“心脏手术” 如果把企业比作一个生命体,那么财务系统就是它的“心脏”。这颗“心脏”一旦老化,更换就成了必须面对的课题。但这绝非一次简单的软件升级,而是一场精密、复杂、牵一发而动全身的“外科手术”。数据显示,超过70%的ERP(企业资源计划)项目实施未能完全达到预期,问

热心网友
04.28
模拟人工点击软件有哪些?类型盘点与应用指南
业界动态
模拟人工点击软件有哪些?类型盘点与应用指南

在企业数字化转型的浪潮中,模拟人工点击软件:从效率工具到智能伙伴 企业数字化转型的路上,绕不开一个话题:如何把那些重复、枯燥的电脑操作交给机器?模拟人工点击软件,正是因此而成为了提升效率、降低成本的得力助手。那么,市面上的这类软件到底有哪些?答案其实很清晰。它们大致可以归为三类:基础按键脚本、传统R

热心网友
04.28
ai智能体发展前景:2026年AI Agent如何重塑全
业界动态
ai智能体发展前景:2026年AI Agent如何重塑全

一、核心结论:AI智能体是通往AGI的必经之路 时间来到2026年,AI智能体这个词儿,早就跳出了PPT和实验室的范畴。它不再是飘在天上的技术概念,而是实实在在地成了驱动全球数字化转型的引擎。和那些只能一问一答的传统对话式AI不同,如今的AI智能体(Agent)本事可大多了:它们能自己规划任务步骤、

热心网友
04.28
ai智能体主要通过哪一层与外部系统交互:深度解析Agen
业界动态
ai智能体主要通过哪一层与外部系统交互:深度解析Agen

一、核心结论:AI智能体交互的“桥梁”是行动层 在AI智能体的标准架构里,它与外部系统打交道,关键靠的是“行动层”。可以这么理解:感知层是Agent的五官,决策层是它的大脑,而行动层,就是那双真正去执行和操作的手。这一层专门负责把大脑产出的抽象指令,“翻译”成外部系统能懂的语言,无论是调用一个API

热心网友
04.28
ai智能体人设描述怎么写?构建高转化AI角色的深度方法论
业界动态
ai智能体人设描述怎么写?构建高转化AI角色的深度方法论

一、核心结论:AI人设是智能体的“灵魂” 在构建AI应用时,一个核心问题摆在我们面前:如何写好AI智能体的人设描述?这个问题的答案,直接决定了智能体输出的专业度与用户端的信任感。业界实践表明,一个优秀的人设描述,离不开一个叫做RBGT的模型框架,它涵盖了角色、背景、目标和语气四个黄金维度。有研究数据

热心网友
04.28