Oracle查询用户权限(转)
-- 确定角色的权限 本身的数据字典设计我个人觉得很合理,因为DBA_xxx,ALL_xxx,USER_xxx 让人一看大概就知道这个视图是干什么用的.本文简要总结了一下与权限,角色相关的视图. 一. 概述与权限,角色相关的视图大概有下面这些: 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 * fromsession_privs; 2. 查询某个用户被赋予的系统权限.可以有多种方式 Select * from user_sys_privs; 或者: select * from DBA_SYS_PRIVS where grantee='XXX' (需要当前用户拥有DBA角色) 3.查询当前用户被授予的角色:1. Select * from SESSION_ROLES order byROLE 说明: 这个查询会返回当前用户所被授予的全部角色,其中包括 嵌套授权的角色. 例如将DBA角色授予了一个用户,DBA角色 已经被授予的角色(例如 exp_full_database 和 imp_full_database) 也会被查询出来 2. Select * fromUSER_ROLE_PRIVS 4. 查询某一角色被赋予的系统权限Select Privilege from ROLE_SYS_PRIVS whereROLE=&Role 输入 role='CONNECT' 输出: Select GRANTED_ROLE from ROLE_ROLE_PRIVS whereROLE=&ROLE 输入 role= 'DBA' 输出: GRANTED_ROLE 转自:http://blog.sina.com.cn/s/blog_629e606f0100ne81.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |