数据库安全性

实验四 数据库安全性

一、实验目的

(1)了解Oracle数据库的用户管理,权限管理和角色管理。

(2)掌握为用户分配权限的方法。

(3)了解为不同用户分配不同权限的目的及原因。

二、实验内容

用SQL语句完成以下内容:

1.用系统帐户sys登录数据库,分别创建用户Tom和Mary,创建时分配帐户口令。

create user Tom

identified by 2013013587

default tablespace users

temporary tablespace temp

quota unlimited on users;

 

create user Mary

identified by 2013013587

default tablespace users

temporary tablespace temp

quota unlimited on users;

 

2.为了使两位用户登录数据库请为其分配相应的权限。

grant create session to Tom;

grant create session to Mary;

3.授予用户Tom在自己模式下创建表和视图的权限,授予用户Mary可以在任何模式下创建表的权限。

grant create table,create view to Tom;

grant create any table to Mary;

4.用Mary帐户登录,在Tom模式下创建一张表,表结构自定。(如果建立的表中有主键约束,需要预先授予Mary用户create  any index的权限。)

(1)建立的表中无主键约束

create table Tom.SS

(

  sno varchar2(40)

);

(1)建立的表中有主键约束

grant create any index

to Mary;

 

create table Tom.SSS

(

      snovarchar2(40) primary key

);

5.用系统帐户sys登录数据库,创建用户John,将角色权限DBA授予用户John,并将S、P、J、SPJ四张表导入到John模式下。

create user John

identified by 2013013587

default tablespace users

temporary tablespace temp

quota unlimited on users;

 

grant dba to John;

 

(1)    把对表S的INSERT权力授予用户Tom,并允许他再将此权限授予其他用户。

1)把对表S的INSERT权力授予用户Tom:

grant insert

on S

to Tom

with grant option;

 

2)验证:

insert

into John.s(sno,sname,city,sphone)

values('S6','好又多','杨凌',null);

3)验证Tom能否把对表S的INSERT权力授予用户Mary

grant insert

on S

to Mary;

 

insert

into John.s(sno,sname,city,sphone)

values('S8','好多多','杨大凌',null);

 

(2)    用户Mary对S,P,J三个表有SELECT和INSERT权力

1)用户Mary对S三个表有SELECT和INSERT权力

grant insert,select

on S

to Mary;

insert

into John.s(sno,sname,City,Sphone)

values('S99','大大大','大大',null);

2)用户Mary对P三个表有SELECT和INSERT权力

 

grant insert,select

on P

to Mary;

insert

into John.p

values('P99','大大','大红',10);

 

3)用户Mary对J三个表有SELECT和INSERT权力

 

grant insert,select

on J

to Mary;

insert

into John.j

values('J10','大大','杨凌');

 

 

(3)    用户Tom对SPJ表有DELETE权力,对QTY字段具有UPDATE权力。

1)用户Tom对SPJ表有DELETE权力

grant delete

on SPJ

to Tom;

 

delete

fromJohn.Spj

where sno='S9';

2)用户Tom对QTY字段具有UPDATE权力

grant update(QTY)

on SPJ

to Tom

 

updateJohn.Spj

set qty=300

where sno='S1';

 

(4)    把对用户Tom授予的所有权力收回

revoke create table

from Tom;

revoke create view

from Tom;

(5)    对用户Mary增加SPJ表的SELECT权力。

grant select

onJohn.Spj

to Mary;

6.在John模式下导入Sudent、Course和SC表,创建角色STUDBA,将修改Student、Course、SC表结构的权限、操作三张表中数据的权限授予角色STUDBA,将角色的权限授予所有用户。

 

grant create table

to studba;

 

grant select,update,insert

on Student

to studba;

 

grant select,update,insert

on SC

to studba;

 

grant select,update,insert

on Course

to studba;

 

grant studba

to Mary,John,Tom;

 

三,实验总结

(1)   需要创建用户或者删除用户时,当前用户一般要有dba权限。创建新用户的时候,创建用户名,密码,默认表空间,临时表空间,分配内存。创建好用户之后要授予连接数据库的权限。Password expire一般用于设置口令为过期状态。

(2)   注意区分在自己模式下的权限和任何模式下权限的区分

(3)   使用grant语句时如果指定with grant option子句,则获得某种权限的用户还可以把这种权限授予其他用户

(4)   授予系统权限:grant…to…

授予对象权限:grant…on…to…

回收系统权限:revoke…from…

回收对象权限:revoke…on…from…

创建角色:create role 角色名

修改角色:alter role 角色名

删除角色:drop role 角色名

授予角色一些权限:grant…on…to 角色名

把角色授予某用户:grant 角色名 to 用户名

把授予某用户的角色回收:revoke 角色名 from 用户名

 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值