Oracle 新建删除用户并赋权

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;

  

原文地址:https://www.cnblogs.com/wongzzh/p/15107013.html