Oracle查询用户权限
2011-09-19 11:35
344 查看
Oracle查询用户权限 -- 确定角色的权限 select * from role_tab_privs ; 包含了授予角色的对象权限 select * from role_role_privs ; 包含了授予另一角色的角色 select * from role_sys_privs ; 包含了授予角色的系统权限 -- 确定用户帐户所授予的权限 select * from DBA_tab_privs ; 直接授予用户帐户的对象权限 select * from DBA_role_privs ; 授予用户帐户的角色 select * from DBA_sys_privs ; 授予用户帐户的系统权限 查看当前用户权限: SQL> select * from session_privs; PRIVILEGE ---------------------------------------- CREATE SESSION CREATE TABLE CREATE CLUSTER CREATE SYNONYM CREATE VIEW CREATE SEQUENCE CREATE PROCEDURE CREATE TRIGGER 8 rows selected. 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 * 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可以生成这个角色.
原文
相关文章推荐
- 给oracle用户查询其它用户表的权限
- Oracle查询用户权限角色(dba_sys_privs) (转)
- (转载)Oracle创建用户并给用户授权查询指定表或视图的权限
- 查询oracle用户角色权限
- oracle查询有sysDBA权限的用户
- Oracle查询用户权限
- 将oracle查询权限赋予另一用户的方法
- Oracle创建用户并给用户授权查询指定表或视图的权限
- oracle――将指定用户下所有表的查询权限赋权给查询用户
- oracle用户/角色权限查询
- oracle查询 :一个角色包括的系统权限,对象权限,Oracle有多少种角色,某个用户有什么角色
- oracle 查询用户权限
- Oracle 基础 查询命令 用户 权限
- 在oracle db中查询某用户的权限 or 角色
- Oracle为其他用户存储过程分配查询权限
- ORACLE中赋予一个用户查询另一个用户所有表的权限
- Oracle创建用户并给用户授权查询指定表或视图的权限
- 查询oracle用户权限常用语句
- Oracle查询用户权限
- oracle创建新用户只有mes账户下四张表的查询权限