1、删除用户
drop user user_name cascade; 如果提示 ORA-01940提示 “无法删除当前已连接用户” (1)锁定用户 alter user XXX account lock; (2)查询当前进程号(注意用户名一定要大写) SELECT * FROM V$SESSION WHERE USERNAME='XXX';
select username,sid,serial# from v$session where USERNAME = 'XXX'; (3)删除对应的进程 alter system kill session 'xx,xx' (4)删除对应的用户 drop user user_name cascade
2、创建用户
(1)、创建只读用户
create user read_user identified by "password";
//赋予用户登录的权限
grant connect to read_user;
//赋予用户操作表空间的权限
grant create session to 用户名;
(2)、给用户赋予查询其他用户某几张表的权限
grant select on user_name.table_nameA to read_user
(3)创建同义词 (注意:如果不创建同义词,那么read_user用户查询表时,必须使用a.table这类的写法,不能直接用table.)
grant create synonym to read_user
create or replace synonym read_user.table_nameA for user_name.table_nameA
3、查看一个用户所拥有权限
elect * from dba_sys_privs where grantee='USER_NAME'; 其中的username即用户名要大写才行。
4、查看所有用户
select * from dba_users;
select * from all_users;
select * from user_users;//查看当前用户
5、查看用户或角色系统权限(直接赋值给用户或角色的系统权限)
select * from dba_sys_privs;
select * from user_sys_privs; (查看当前用户所拥有的权限)
6、查看用户或角色所拥有的角色:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
7、Oracle删除指定用户所有表的方法
select 'Drop table '||table_name||';' from all_tables where owner='USER_NAME';(用户名要大写)
8、查看所有角色
select * from dba_roles;
9、查看用户或角色所拥有的角色:
select * from dba_role_privs;
select * from user_role_privs;