如何通过USER_SYS_PRIVS视图查询Oracle 11g中当前用户的所有系统权限?

2026-04-30 21:260阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计830个文字,预计阅读时间需要4分钟。

如何通过USER_SYS_PRIVS视图查询Oracle 11g中当前用户的所有系统权限?

相关专题内容摘要:

user_sys_privs 是最直接、最安全的方式查当前用户系统权限,不需要 dba 权限,也不依赖其他角色或视图嵌套。

为什么用 USER_SYS_PRIVS 而不是 DBA_SYS_PRIVS

因为 DBA_SYS_PRIVS 只对有 DBA 角色或 SELECT_CATALOG_ROLE 的用户开放;普通开发账号执行会报 ORA-00942: table or view does not exist。而 USER_SYS_PRIVS 是每个登录用户都能访问的视图,只返回「当前会话实际生效」的系统权限(包括直授的 + 通过角色继承来的)。

注意:USER_SYS_PRIVS 不显示 ADMIN_OPTION 列 —— 这意味着它不告诉你是否有「带 ADMIN 选项」的授权(比如能否再转授给他人),这点容易被忽略。

USER_SYS_PRIVS 返回字段含义和常见陷阱

该视图返回三列:PRIVILEGE(权限名)、ADMIN_OPTION(Oracle 11g 中此列恒为 NO,不可信)、COMMON(仅在 CDB 环境有意义,11g 单机库始终为 NO)。

阅读全文
标签:Oracle

本文共计830个文字,预计阅读时间需要4分钟。

如何通过USER_SYS_PRIVS视图查询Oracle 11g中当前用户的所有系统权限?

相关专题内容摘要:

user_sys_privs 是最直接、最安全的方式查当前用户系统权限,不需要 dba 权限,也不依赖其他角色或视图嵌套。

为什么用 USER_SYS_PRIVS 而不是 DBA_SYS_PRIVS

因为 DBA_SYS_PRIVS 只对有 DBA 角色或 SELECT_CATALOG_ROLE 的用户开放;普通开发账号执行会报 ORA-00942: table or view does not exist。而 USER_SYS_PRIVS 是每个登录用户都能访问的视图,只返回「当前会话实际生效」的系统权限(包括直授的 + 通过角色继承来的)。

注意:USER_SYS_PRIVS 不显示 ADMIN_OPTION 列 —— 这意味着它不告诉你是否有「带 ADMIN 选项」的授权(比如能否再转授给他人),这点容易被忽略。

USER_SYS_PRIVS 返回字段含义和常见陷阱

该视图返回三列:PRIVILEGE(权限名)、ADMIN_OPTION(Oracle 11g 中此列恒为 NO,不可信)、COMMON(仅在 CDB 环境有意义,11g 单机库始终为 NO)。

阅读全文
标签:Oracle