频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

Oracle数据库与用户角色权限相关的视图

来源:中国IT实验室 作者:佚名 出处:巧巧读书 2008-05-07 进入讨论组

    一. 概述

    与权限,角色相关的视图大概有下面这些:

    DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限

    USER_SYS_PRIVS: 当前用户所拥有的系统权限

    SESSION_PRIVS: 当前用户所拥有的全部权限

    ROLE_SYS_PRIVS: 某个角色所拥有的系统权限

    注意: 要以SYS用户登陆查询这个视图,否则返回空.

    ROLE_ROLE_PRIVS: 当前角色被赋予的角色

    SESSION_ROLES: 当前用户被激活的角色

    USER_ROLE_PRIVS: 当前用户被授予的角色

    另外还有针对表的访问权限的视图:

    TABLE_PRIVILEGES

    ALL_TAB_PRIVS

    ROLE_TAB_PRIVS: 某个角色被赋予的相关表的权限

    二.Examples

    1.查询当前用户所拥有的权限

    Select * from session_privs;

    2.查询某个用户被赋予的系统权限:

    可以有多种方式

    Select * from user_sys_privs;

    或者: select * from DBA_SYS_PRIVS where grantee='XXX'

    (需要当前用户拥有DBA角色)

    3.查询当前用户被授予的角色:

    1.Select * from SESSION_ROLES order by ROLE

    说明: 这个查询会返回当前用户所被授予的全部角色, 其中包括

    嵌套授权的角色. 例如将DBA角色授予了一个用户,DBA角色

    已经被授予的角色(例如 exp_full_database 和 imp_full_database)

    也会被查询出来

    2.Select * from USER_ROLE_PRIVS

    4.查询某一角色被赋予的系统权限

    Select Privilege from ROLE_SYS_PRIVS where ROLE=&Role

    输入 role='CONNECT'

    输出:

    PRIVILEGE

    --------------------

    ALTER SESSION

    CREATE CLUSTER

    CREATE DATABASE LINK

    CREATE SEQUENCE

    CREATE SESSION

    CREATE SYNONYM

    CREATE TABLE

    CREATE VIEW

    5. 查询当前角色被授予的角色

    Select GRANTED_ROLE from ROLE_ROLE_PRIVS where ROLE=&ROLE

    输入 role= 'DBA'

    输出:

    GRANTED_ROLE

    ----------------------

    DELETE_CATALOG_ROLE

    EXECUTE_CATALOG_ROLE

    EXP_FULL_DATABASE

    IMP_FULL_DATABASE

    PLUSTRACE

    SELECT_CATALOG_ROLE

    说明: PLUSTRACE这个角色是用于执行SQL AUTO TRACE的, 通过执行

    $ORACLE_HOME/sqlplus/admin/plustrce.sql可以生成这个角色。

更多文章 更多内容请看Windows权限设置数据库专栏数据库处理专题专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章