删除用户(用户名:kettle)
1.执行语句:
---BDA用户下执行
drop user kettle cascade;
2.针对执行DROP语句报错执行以下步骤
2.1锁定此用户
---BDA用户下执行
alter user kettle account lock;
2.2查询此用户下面锁定的进程
---BDA用户下执行
select saddr,sid,serial#,paddr,username,status from v$session where username = 'KETTLE';
结果:
2.3:杀死状态是INACTIVE的进程
---BDA用户下执行
alter system kill session '132,302';
alter system kill session '133,334';
alter system kill session '135,752';
alter system kill session '144,3956';
alter system kill session '145,1227';
alter system kill session '150,1923';
3.再次执行步骤1的DROP语句
---BDA用户下执行
drop user kettle cascade;
结果
新建用户(kettle1)并赋予权限
1.create新用户
---BDA用户下执行
create user kettle1 identified by sys;
2. 赋予用户会话权限(没有该权限无法登录)
---BDA用户下执行
grant create session to kettle1;
3.查询当前用户权限(登录KETTLE)
select * from user_sys_privs;
结果:
create session就是允许使用这个用户在服务器上创建session。其实就是允许这个用户登录。如没有赋予权限则登录时会显示SESSION失败。
4. 尝试使用这个用户创建KETTLE的数据库资源库,报错如下:
感觉还是缺少什么权限。
5.对比现有可创建资源库的用户权限
6.赋予权限
6.1 赋予建表权限(with admin option的区别)
grant create table to kettle1;
grant create table to kettle1 with admin option;
--赋予建表权限BDA用户下执行 grant create table to kettle1;
--kettle1用户下执行 grant create table to kettle2;
结果:
---BDA用户下再次执行语句带with admin option grant create table to kettle1 with admin option ;
--kettle1用户下执行 grant create table to kettle2;
结果:
---再次在KETTLE1用户下执行 grant create table to kettle2 with admin option;
结果:
KETTLE2用户还可以给其他用户赋予CREATE TABLE权限。
结论:GRANT create table TO USER WITH ADMIN OPTION 被赋予权限的用户USER可以给其他用户赋予相同的权限。
6.2 赋予查询表权限(with admin option的区别)
---BDA用户下执行
grant SELECT ANY TABLE to kettle1;
结果:
---BDA用户下执行
grant SELECT ANY TABLE to kettle1 with admin option ;
--为其他用户赋予同等权限
grant SELECT ANY TABLE to kettle2 ;
6.3 赋予UNLIMITED TABLESPACE对表空间使用权限
---BDA用户下执行
grant UNLIMITED TABLESPACE to kettle1;
结果:
尝试创建新的KETTLE工具的数据库资源库可以了。kettle空资源库有46张表。
6.4 移除某个权限
-----BDA用户下执行创建权限
grant GLOBAL QUERY REWRITE to kettle1;
-----BDA用户下执行移除权限
revoke GLOBAL QUERY REWRITE from kettle1;