数据库安全性

一、实验目的

1.理解数据库安全性概念,了解关系数据库中常用的安全策略;

2.掌握自主存取控制的原理,掌握授权语句的使用;

3.掌握Oracle数据库中的用户管理、权限管理和角色管理;

4.理解Oracle中模式的概念,理解模式与用户的关系。

二、实验内容

用SQL语句完成以下内容:

1.用系统帐户sys登录数据库,分别创建数据库用户lisa和tom,初始帐户口令都为“888888”,要求将密码设置为过期状态,初次登录时强制修改密码。为两个用户指定默认表空间为users,并且在users表空间中使用大小不受限制。

create user lisa identified by 888888
default tablespace users
quota unlimited on users;
alter user lisa password expire;
create user tom identified by 888888
default tablespace users
quota unlimited on users;
alter user tom password expire;

2.为了使lisa和tom能够登录数据库,请为其授予相应的权限。

grant create session to lisa;
grant create session to tom;

3.授予用户lisa在自己模式下创建表的权限,在任何模式下删除表的权限,授予用户tom可以在任何模式下创建表的权限,查询任何模式下表中数据的权限和在任何模式下创建视图的权限。

grant create table,drop any table to lisa;
grant create any table,select any table,create any view to tom;

4.对Lisa和tom的权限进行验证。

(1)用lisa用户登录,写出相应SQL语句验证在任何模式下删除表的权限,如果建立的表中有主键约束,需要预先授予lisa用户create any index的权限。

grant create any index to lisa;
grant create any index to tom;
create table lisa1
(
       lno varchar2(10) primary key
       
);

drop table lisa1;

(2)用tom用户登录,写出相应的SQL语句验证在任何模式下创建视图的权限。

create table tom1
(
       tno varchar2(10) primary key
       
);

create view tom.view2
as
select * from lisa1;

create table lisa.t2
(
       name varchar2(10)
);

select * from lisa.t2;

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

create user user1_admin identified by 123456
default tablespace users
quota unlimited on users;
grant dba to user1_admin;

6.用user_admin登录,完成以下授权。

(1)把对表s的插入权限授予用户lisa,并允许他再将此权限授予其他用户,在用户lisa下写出相应语句验证插入权限。

grant insert on s to lisa with grant option;
insert into user1_admin.s values('s6','陕西','西安','1');
grant insert on user1_admin.s to tom; 
insert into user1_admin.s values('s8','4','3',null); 
select * from user1_admin.s;

(2)用户tom对s,p,j三个表有查询和插入权限,在tom用户下写出相应语句验证对s表的查询权限。

grant select,insert on s to tom;
grant select,insert on p to tom;
grant select,insert on j to tom;
select * from user1_admin.s;

(3)收回lisa对s表的插入权限,收回权限后进行相应操作看权限是否收回。

revoke insert on s from lisa;
insert into user1_admin.s values('s1','陕西','西安','1');

7.把对用户tom授予的所有权限收回,只保留登录权限。注意:系统权限和对象权限应该分别写语句收回。

revoke create any table,select any table,create any view from tom;
revoke select,insert on s from tom;
revoke select,insert on p from tom;
revoke select,insert on j from tom;
revoke create any index from tom;

8.用系统帐户sys登录数据库,创建用户user2_admin,将角色权限DBA授予此用户,在user2_admin的模式下导入Sudent、Course、Teacher、TC和SC表。

create user user2_admin identified by 123456
default tablespace users
quota unlimited on users;
grant dba to user2_admin;

9.使用user2_admin登录,创建角色school_manager,将user2_admin模式下五张表的插入、删除、修改和查询数据的权限授予角色school_manager,将角色的权限授予tom。

create role school_manager;
grant insert,delete,update,select on student to school_manager;
grant insert,delete,update,select on course to school_manager;
grant insert,delete,update,select on teacher to school_manager;
grant insert,delete,update,select on tc to school_manager;
grant insert,delete,update,select on sc to school_manager;
grant school_manager to tom;

10.对于通过school_manager角色授出的权限,挑选一个表上的一个数据操作权限在tom用户下执行相应的SQL语句进行验证。

select * from user2_admin.student;

这里我用的最简单的查询最为验证。

三、实验总结

1.简述Oracle中模式与用户的关系。

用户(user):Oracle用户是用连接数据库和访问数据库对象的。(用户是用来连接数据库访问数据库)。

模式(schema):模式是数据库对象的集合。模式对象是数据库数据的逻辑结构。(把数据库对象用模式分开成不同的逻辑结构)。

用户(user)与模式(schema)的区别:用户是用来连接数据库对象。而模式用是用创建管理对象的。(模式跟用户在oracle 是一对一的关系。)

2.在数据库中实现安全性控制的常用技术有哪些?

(1)用户身份鉴别
(2)存取控制
(3)视图机制
(4)审计
(5)数据加密
(6)其他

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南城`烟雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值