数据库恢复与安全性(Oracle)
实验目的
(1)了解oracle的物理备份
(2)掌握oracle数据库逻辑备份方法
(3)掌握oracle数据库恢复的方法
(4)学会使用exp备份数据库、使用imp恢复数据库
(5)了解flashback 的使用
(6)学会完成SQL导入导出
(7)掌握ORACLE中有关用户创建的方法
(8)熟练掌握PL-SQL的数据控制语言,能通过自主存取控制进行权限管理
(9)熟悉用户资源文件的使用
(10)熟悉ORACLE中角色管理
(11)熟悉视图机制在自主存取控制上的应用
实验环境
Oracle Database 12 home
实验步骤、出现的问题及解决方案
数据库用户、表空间、表
逻辑备份
导出“预约”表
exp userid=ZS20220872/123456@orcl tables=TEST.预约 file=C:\Users\Administrator\Desktop\西南科技大学\数据库原理\预约.dmp
删除”预约“表
drop table 预约;
导入“预约表”,恢复“预约表”
imp userid=ZS20220872/123456@orcl fromuser=test file=C:\Users\Administrator\Desktop\西南科技大学\数据库原理\预约.dmp tables=预约
查询预约表中信息
select * from 预约;
导出数据库
exp userid=ZS20220872/123456@orcl full=y inctype=complete file=C:\Users\Administrator\Desktop\西 南科技大学\数据库原理\all.dmp
使用闪回(flashback)
设置行可移动
alter table 读者 enable row movement;
在读者表中添加多条记录
insert into 读者 values('20190325','张四','西科大应计学院','男','西山学院西100宿舍楼','1352659962','52182193213123');
insert into 读者 values('201903232','张七','西科大应计学院','男','西山学院西100宿舍楼','135262359962','522665445454564563');
select 姓名,性别 from 读者;
闪回到改变之前
flashback table 读者 to timestamp to_timestamp('2022/11/24 15:30:00','YYYY/MM/DDHH24:MI:SS');
select 姓名,性别 from 读者;
SQl导入导出
导出图书表
删除表
NULL
导入表
以SYSTEM登录数据库,为自己帐号增加系统角色DBA
grant dba to ZS20220872;
重新以自己的帐号登录,创建一个数据库用户,该用户拥有所有CONNECT, RESOURCE,DBA系统角色权限。
create user Renchengzhen identified by 123456;
grant connect to renchengzhen;
grant resource to renchengzhen;
grant dba to renchengzhen;
(未定义函数,以下语句无效)
建立角色:renchengzhen_OPER,该角色拥有调用存储过程借书、还书、预约的权限,以及CONNECT系统角色权限。
create role renchengzhen_role;
grant connect to renchengzhen_role;
grant execute on 借书 to renchengzhen_role;
grant execute on 还书 to renchengzhen_role;
grant execute on 预约 to renchengzhen_role;
创建一个数据库用户:用户_oper(用户为“自己名字全拼”)为该用户授权角色:用户_role。以该用户登录,完成借书,还书功能。
create role renchengzhen_oper;
grant renchengzhen_role to renchengzhen_oper;
call renchengzhen.借书();
以自己的帐号登录,建立视图VIEW_READER, 该视图包含书目(ISBN, 书名,作者,出版单位,图书分类名称)
CREATE VIEW VIEW_READER
AS
SELECT
"书目"."iSBN",
"书目"."书名",
"书目"."作者",
"书目"."出版单位",
"书目"."图书分类号"
FROM
"书目";
创建一个数据库用户:renchengzhen_USER1,该用户具有对视图VIEW_READER查询的权限。
create user renchengzhen_user1 identified by 123456;
grant connect to renchengzhen_user1;
grant select on view_reader to renchengzhen_user1;
创建一个概要文件,如果renchengzhen_USER1连续3次登录失败,则锁定该账户,10天后该账户自动解锁。把创建的概要文件分配给该账号,然后以该用户登录进行权限测试。
CREATE PROFILE LOCK_USER LIMIT
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME 10;
ALTER USER renchengzhen_USER1 PROFILE LOCK_USER;
ALTER USER renchengzhen_USER1 ACCOUNT UNLOCK;