select username from dba_users; 查询系统所有用户
select * from dba_users where username = 'XXXX';查询用户相关信息
select * from dba_roles; 查询系统所有角色
DBA_ROLE_PRIVS 查询某个用户具有的角色或者某个角色下的有哪些用户
select * from dba_role_privs wheregrantee ='SYS';
select * fromdba_role_privs where granted_role ='RESOURCE';
DBA_SYS_PRIVS 查询某个用户具有的系统权限
select grantee,privilege from dba_sys_privs where grantee='XXXX';
ROLE_SYS_PRIVS显示授予角色的系统权限
select* from role_sys_privs where role = 'RESOURCE';查询RESOURCE角色相关的权限
ROLE_TAB_PRIVS显示授予角色的表权限
管理用户、角色和权限的DBA视图:
DBA_USERS 提供用户的信息
DBA_ROLES 显示数据库中所有角色
DBA_COL_PRIVS 显示列级对象授权
DBA_ROLE_PRIVS 显示用户及其角色
DBA_SYS_PRIVS 显示被授予系统权限的用户
DBA_TAB_PRIVS 显示用户及他们在表上的权限
ROLE_ROLE_PRIVS 显示授予角色的角色
ROLE_SYS_PRIVS 显示授予角色的系统权限
ROLE_TAB_PRIVS 显示授予角色的表权限
SESSION_PRIVS 显示允许用户使用的权限
SESSION_ROLES 显示当前允许用户使用的角色
select * from session_privs;查询用户本身拥有的权限
select * from user_role_privs;查询用户本身拥有的角色
select * from dba_sys_privs where grantee='CONNECT'; 查询角色所拥有的权限
select * from role_sys_privs where role='CONNECT';查询角色所拥有的权限
删除用户:SQL> drop user 用户名 cascade; //加上cascade则将用户连同其创建的东西全部删除
普通用户使用set autotrace on
首先需创建PLUSTRACE角色,用SYS登录执行@$ORACLE_HOME/sqlplus/admin/plustrce.sql
赋于test用户角色,grant plustrace to test
test用户添加角色后依旧报的错:
ERROR:
ORA-01039: insufficient privileges on underlying objects of the view
SP2-0612: Error generating AUTOTRACE EXPLAIN report
没有权限查看系统相关的视图
select * from role_sys_privs; 查询角色以及它的相关权限
select * from role_sys_privs where role='OEM_MONITOR'; 查询SELECT ANY DICTIONARY 这个权限所在的角色。
然后可以单个赋于SELECT ANY DICTIONARY这个权限,或者给test赋于OEM_MONITOR这个角色。
grant SELECT ANY DICTIONARY to test