Oracle用户管理-练习

1.  查看当前用户

show user;


2.  赋予系统角色:

a)        利用system用户,创建用户zhangsan

create user zhangsan identified by 123;

b)        试着用户zhangsan登录(无法登  因为没有授予权限 )

c)        利用system用户,为用户zhangsan授予connect角色

grant connect to zhangsan;

d)        试着用户zhangsan登录(可以登录)

Conn zhangsan/123;

e)      查看当前用户,在确定当前用户是zhangsan的情况下,在用户zhangsan下创建数据表stu,结构自定(无法 ,因为创建未授予权限)

f)         利用system用户,为用户zhangsan授予resource角色

grant resource to zhangsan;

g)        在确定当前用户是zhangsan的情况下,在用户zhangsan下创建数据表stu,结构自定(可以创建)

h)        查看当前用户,在确定当前用户是zhangsan的情况下,在用户zhangsan下创建视图,内容来自数据表stu的全部内容(不可以创建,权限不足)

create view view1 as select * from stu;

i)          利用system用户,为用户zhangsan授予创建视图的权限,并在用户zhangsan下创建视图,内容来自数据表stu的全部内容(可以创建)

grant create view to zhangsan;


3.  赋予对象角色

a)        在scott用户下创建表student,表的内容和emp表相同

create table student as select * from emp;

b)        使用scott用户赋予zhangsan对其student表的访问权限

                      i.            使用zhangsan访问scott用户下的student表,并且创建一个stu表,其内容和student表相同

(没有权限访问 无法创建)

                     ii.            scott赋予zhangsan查看student的权限,并使用zhangsan访问scott用户下的student表

grant select on student to zhangsan;

select * from scott.student;

                     iii.        在zhangsan用户中创建一个stu表,其内容和student表相同

create table stu as select * from scott.student;

                            

c)        使用scott用户赋予zhangsan对其student表的insert权限

                      i.             使用zhangsan用户对scott用户的student表增加数据,姓名“Eric”(权限不足)

                      ii.             scott赋予zhangsan查看student的权限,并使用zhangsan对scott用户下的student表增加数 据,姓名“Eric”,并查看结果

conn scott/123;

grant insert on student to zhangsan;

connzhangsan/123;

insert into scott.student (ename) values('Eric');

d)        使用scott用户赋予zhangsan对其student表的update权限

                        i.             使用zhangsan用户对scott用户的student表进行更新,将姓名“Eric”的雇员号设置为“8888”

(权限不足)

                      ii.             scott赋予zhangsan对student修改数据的权限,并使用zhangsan对scott用户

connscott/123;

grantupdate on student to zhangsan;

connzhangsan/123;

updatescott.student set empno='888' where ename='Eric';

select * from scott.student;

e)        使用scott用户赋予zhangsan对其student表的delete权限

                       i.             使用zhangsan用户对scott用户下的student表进行删除,将“Eric”的记录删除(权限不足)

                      ii.             scott用户赋予zhangsan对其student表的删除权限,并使用zhangsan对scott用户下的student 表进行删除,将“Eric”的记录删除,并查看结果

connscott/123;

grantdelete on student to zhangsan;

connzhangsan/123;

deletefrom scott.student where ename='Eric';

select * from scott.student;


4.  收回权限

a)        用scott用户将赋于zhangsan的四个权限分别收回,并测试在zhangsan用户下增加、更新、删除、查 看student表

connscott/123;

revokeselect on student from zhangsan;

connzhangsan/123;

select * from scott.student;

 

connscott/123;

revokeall on student from zhangsan;

conn zhangsan/123;

insert into scott.student (ename) values('Eric');

b)        使用system用户将scott用户下对student表的所有权限赋予zhangsan,并测试在zhangsan用户下增加、更 新、删除、查看student表

connsystem/123;

grant  all on scott.student to zhangsan;

connzhangsan/123;

insertinto scott.student (ename) values('Eric');

select * from scott.student;

c)        使用scott用户将zhangsan对student的所有权限都收回,并测试在zhangsan用户下增加、更新、删除、查看student表(尽管不是scott赋予的权限但只要有revoke权限的用户都可以收回)

connscott/123;

revokeall on student from zhangsan;

connzhangsan/123;

insertinto scott.student (ename) values('Eric');

select * from scott.student;

d)        使用system用户收回zhangsan登录和创建表的权限,并测试zhangsan用户是否可以登录

connsystem/123;

revokeresource from zhangsan;

connzhangsan/123;

create table aa(name char(2));  权限收回了 无法创建表

 

conn system/123;

revoke connect from zhangsan;

conn zhangsan/123;  权限收回了 无法登录

 

5.  权限维护

a)        创建用户lisi

create user lisi identified by 123;

b)        使用用户zhangsan将resource,connect角色赋予lisi,并测试用户lisi登录和创建数据表

connsystem/123;

grantconnect,resource to zhangsan with admin option;

connzhangsan/123;

grant resource,connect to lisi;

 

connlisi/123;

create table aa(name char(2));

 

c)        使用用户zhangsan将scott用户下student表的相应权限赋予lisi,并测试用户lisi下查看scott用户下的student表

connsystem/123;

grant allon scott.student to zhangsan with grant option;

connzhangsan/123;

grant allon scott.student  to lisi;

conn lisi/123;

select * from scott.student ;

 

d)        收回zhangsan的resource,connect角色,测试lisi是否可以登录和创建数据表?

lisi可以,因为系统权限不会级联

 

e)        收回zhangsan对scott用户里student表的对象权限,观察lisi是否还拥有这些对象权限

Lisi也失去了这些权限因为对象权限是级联的,zhangsan赋予lisi的对象权限

若zhangsan的对象权限被收回 lisi的一并被收回

connsystem/123;

revokeall on scott.student from zhangsan;

connlisi/123;

select * from scott.student;

 

6.  修改密码,删除用户

a)        在用户lisi下,修改其密码为:123456

conn lisi/123;

password

b)        在用户system下,修改lisi的密码为:456798

conn system/123;

password lisi

c)        删除用户lisi

drop user lisi cascade;

猜你喜欢

转载自blog.csdn.net/weixin_36708477/article/details/53168154