查看用户、权限、角色的命令和视图



1.查看所有用户: 


select * from dba_users; 


select * from all_users; 


select * from user_users; 


2.查看用户系统权限: 


select * from dba_sys_privs; 


select * from session_privs; 


select * from user_sys_privs; 


3.查看用户对象权限: 


select * from dba_tab_privs; 


select * from all_tab_privs; 


select * from user_tab_privs; 


4.查看所有角色: 


select * from dba_roles; 


5.查看用户所拥有的角色: 


select * from dba_role_privs; 


select * from user_role_privs; 




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


   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:     某个角色被赋予的相关表的权限



Oracle 本身的数据字典设计很合理, 因为DBA_xxx, ALL_xxx,USER_xxx


让人一看大概就知道这个视图是干什么用的. 本文简要总结了一下与权限,角色相关的视图.