前言
DBA_* 描述的是数据库中的所有对象
ALL_* 描述的是当前用户有访问权限的所有对象
USER_* 描述的是当前用户所拥有的所有对象
系统权限
-- 查看所有角色
select * from dba_roles
-- 查看用户拥有的角色
select * from user_role_privs
--查看用户被授予的角色
select * from dba_role_privs where grantee='TEST';
-- 查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)
select * from V$PWFILE_USERS
-- 查看用户拥有的系统权限
select * from user_sys_privs
对象权限
-- 查看用户拥有的对象权限
select * from user_tab_privs
用户管理
- 创建用户
CREATE USER robinson IDENTIFIED BY robinson
- 解锁用户
ALTER USER robinson ACCOUNT LOCK;
- 删除用户
DROP USER username [CASCADE]
CASECADE 连同用户创建的对象一并删除,如果该用户创建了对象,要加CASCADE删除,否则删除不掉
另外,不能删除当前正在与ORACLE服务器相连的用户。
- 改变用户在表空间上的配额
ALTER USER username QUOTA 0 ON system;
ALTER USER scott QUOTA UNLIMITED ON USERS;
ALTER USER dog QUOTA 30M ON system;
- 查看用户表空间配额
SELECT USERNAME,TABLESPACE_NAME,MAX_BYTES/1024/1024 "Max MB"
- 查看用户所拥有的对象
SELECT owner,object_name, object_type FROM dba_objects WHERE owner= 'LXM';
或者
select * from user_objects (此时处于LXM用户会话)