一、实验目的
(1)了解oracle的物理备份
(2)掌握oracle数据库逻辑备份方法
(3)掌握oracle数据库恢复的方法
(4)学会使用exp备份数据库、使用imp恢复数据库
(5)了解flashback 的使用
(6)学会使用PLSQL/developer工具完成导入导出
(7)掌握ORACLE中有关用户创建的方法
(8)熟练掌握PL-SQL的数据控制语言,能通过自主存取控制进行权限管理
(9)熟悉用户资源文件的使用
(10)熟悉ORACLE中角色管理
(11)熟悉视图机制在自主存取控制上的应用
二、实验环境
PLSQL Developer 12
Oracle Database 11 home
三、实验步骤、出现的问题及解决方案
实验步骤:
1、逻辑备份
(1)导出自己用户中的“预约”表
EXP USERID=S512017****/**********@orcl TABLES=预约 FILE=C:\Users\Administrator\Desktop\预约.dmp


(2)删除自己用户中的“预约”表
DROP TABLE 预约;

(3)进行导入数据库操作
IMP USERID=S512017****/@orcl TABLES=预约 FILE=C:\Users\Administrator\Desktop\预约.dmp

更新Tables:

(4)查询导入的“预约”表中的信息。
SELECT * FROM 预约;

(5)导出数据库(以全库方式导出)。
EXP USERID=S512017
/
**@orcl FULL=Y INCTYPE=COMPLETE FILE=C:\Users\Administrator\Desktop\all.dmp




2、使用Flashback
(1)设置行可移动
ALTER TABLE 读者 ENABLE ROW MOVEMENT;
(2)在读者表中添加多条记录(或者删除没有借书的读者记录)。
插入记录:
INSERT INTO 读者 VALUES(‘20196307’,‘张三’,‘四川绵阳西科大计算机学院’,‘男’,‘西南科技大学’,‘12345678912’,‘431126199910030011’);
INSERT INTO 读者 VALUES(‘20196666’,‘李四’,‘四川绵阳西科大计算机学院’,‘男’,‘西南科技大学’,‘12345678915’,‘431126199910030111’);
INSERT INTO 读者 VALUES(‘20195555’,‘王曦’,‘四川绵阳西科大计算机学院’,‘女’,‘西南科技大学’,‘12345678920’,‘431126199910033695’);
COMMIT;
或者删除记录:
DELETE FROM 读者 WHERE 读者.借书证号 NOT IN (SELECT 借阅.借书证号 FROM 借阅);
COMMIT;

(3)闪回到改变前
FLASHBACK TABLE 读者 TO TIMESTAMP TO_TIMESTAMP(‘2019/12/2 11:00:00’,‘YYYY/MM/DD HH24:MI:SS’);

3、使用PLSQL/developer 来完成SQL导出
(1)打开PLSQL/developer,选择菜单“工具“导出表
(2)点击你要导出的表(如:“预约”表),然后选择标签SQL 插入
(3)选中复选框创建表(create tables),浏览或者输入输出文件,然后点击导出

(4)在你输入的目录下找到你的导出文件(SQL 文件)

(5)删除自己表空间中的“预约”表
DROP TABLE 预约;

(6)通过“工具“导入表,利用SQL插入导入“预约”表。

(7)查询导入的“预约”表,检查导出是否正确。

4、使用PLSQL/developer 来完成PLSQL/developer方式导出
(1)打开PLSQL/developer,选择菜单“工具“导出表
(2)点击你要导出的表(如:“预约”表),然后选择标签PLSQL/developer
(3)浏览或者输入输出文件,然后点击导出。

(4)在你输入的目录下找到你的导出文件。

(5)删除自己表空间中的“预约”表
DROP TABLE 预约;

(6)通过“工具“导入表,PLSQL/developer方式并选中复选框“创建表”,导入“预约”表。

(7)查询导入的“预约”表,检查导出是否正确。

5、以SYSTEM登录数据库,为自己帐号增加系统角色DBA.
GRANT DBA TO S512017****;

6、 重新以自己的帐号登录,创建一个数据库用户:S512017****_USER1,该用户拥有所有CONNECT, RESOURCE,DBA系统角色权限。
CREATE USER S512017****_USER1 IDENTIFIED BY 123456;
GRANT CONNECT TO S512017****_USER1;
GRANT RESOURCE TO S512017****_USER1;
GRANT DBA TO S512017****_USER1;

7、 建立角色:S512017****_OPER,该角色拥有调用存储过程借书、还书、预约的权限,以及CONNECT系统角色权限。
CREATE ROLE S512017****_OPER;
GRANT CONNECT TO S512017****_OPER;
GRANT EXECUTE ON 借书 TO S512017****_OPER;
GRANT EXECUTE ON 还书 TO S512017****_OPER;
GRANT EXECUTE ON 预约图书 TO S512017****_OPER;

8、创建一个数据库用户:S512017****_USER2,为该用户授权角色:S512017****_OPER。以该用户登录,完成借书功能。
创建账号并授权角色:
CREATE USER S512017****_USER2 IDENTIFIED BY 123456;
GRANT S512017****_OPER TO S512017****_USER2;

完成借书:
CALL S512017****.借书(‘20051001’,‘1005050’);
CALL S512017****.借书(‘20051001’,‘2001231’);



9、以自己的帐号登录,建立视图VIEW_READER, 该视图包含书目(ISBN, 书名,作者,出版单位,图书分类名称)
CREATE VIEW VIEW_READER
AS
SELECT 书目.ISBN,书目.书名,书目.作者,书目.出版单位,图书分类.类名
FROM 书目,图书分类
WHERE 书目.图书分类号=图书分类.图书分类号;

10、 创建一个数据库用户:S512017****_USER3,该用户具有对视图VIEW_READER查询的权限。
CREATE USER S512017****_USER3 IDENTIFIED BY 123456;
GRANT CONNECT TO S512017****_USER3;
GRANT SELECT ON VIEW_READER TO S512017****_USER3;

11、创建一个概要文件,如果S512017****_USER3连续3次登录失败,则锁定该账户,10天后该账户自动解锁。把创建的概要文件分配给该账号,然后以该用户登录进行权限测试。
创建概要文件:
CREATE PROFILE LOCK_USER LIMIT
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME 10;

分配概要文件:
ALTER USER S512017****_USER3 PROFILE LOCK_USER;

测试:

连续输错3次后SQLPLUS关闭,再次测试:

账户已锁定,然后进行解锁:
ALTER USER S512017****_USER3 ACCOUNT UNLOCK;

登录测试视图权限

出现的问题及解决方案:
1、在PL/SQL和SQLPLUS使用EXP和IMP导出导入数据失败,解决方案:EXP和IMP命令需要在系统命令行中使用,在SQLPLUS中使用需要在EXP和IMP命令前面加“$”符号或者“HOST”,在PL/SQL中同样如此,不过不是在SQL Window窗口运行,而是在Command Window窗口运行。

2、使用账号S512017****_USER2授权S512017****_OPER角色权限后调用借书储存过程(CALL 借书(‘20051001’,‘1005050’))失败,解决方案:因为借书储存过程不是用户S512017****_USER2创建的,使用其他用户创建的储存过程在调用时需要加上创建储存过程的用户名,如“CALL S512017****.借书(‘20051001’,‘1005050’)”。
四、实验心得体会
通过本次实验,收获较大,掌握了多种数据库导入和导出的方法,培养了对数据库的及时备份的思维,只有及时备份数据库,才能将数据库发生错误时或者误操作时产生的损失降为最低甚至为零。使用Flashback可以将数据库回闪到指定的时间去,虽然非常的方便,但是也有不足之处,就是如果许多操作都连接在一起,非常紧密,可能无法精确的回闪到想要的状态,而且需要自己手动确定时间点。ORACLE数据库的自主存取控制非常的严格,用户的操作需先授权才能进行,即使创建了用户,如果没有授权CONNECT权限,用户都无法进行登录。所以在设计数据库使用人员权限时,设计思路要清晰,确定好用户该拥有哪些权限,以及是使用单独授权还是创建角色来批量授权,还有是否允许授权给他人,这些都需要考虑。设计概要文件可以使用户账号更加安全,使数据库的数据安全更有保障。使用视图可以将数据库操作更简化。

数据库实验四 数据库恢复与安全性相关推荐

  1. mysql安全实验测验答案_实验四∶数据库安全性实验报告.doc

    资源描述 1 / 2实验四:数据库安全性班级:软件工程 0918 姓名:许啸 学号:0911610819[实验目的] :验证数据库安全性[实验要求] :1)新建一个登陆名为 tom,密码为 tom00 ...

  2. 数据库实验:数据库和表、查询、视图与安全性、存储过程及游标、触发器、综合实验-水果商店进阶

    数据库实验:数据库和表.查询.视图与安全性.存储过程及游标.触发器.综合实验-水果商店进阶 实验一.数据库和表 源码1: 源码2: 小结 实验二.查询 源码 小结 实验三.视图.安全性 源码: 小结 ...

  3. mysql实验四图书视图_[数据库实验四.doc

    [数据库实验四 计算机与信息学院实验报告 系: 专业: 年级: 姓名: 学号: 22 实验室号 计算机号 22 实验时间: 2013年10月29日 指导教师签字: 成绩: 报告退发 (订正 . 重做) ...

  4. 实验四 数据库SQL语言基础编程

    -- 实验四 数据库SQL语言基础编程 -- 实验目的: --  掌握数据库查询语句的编写方法 --  掌握利用查询语言完成基本查询 --  掌握利用SQL语句完成数据的添加.删除.修改操作 -- 实 ...

  5. mysql实验四数据库查询和视图_实验四 数据库查询和视图.doc

    实验四 数据库查询和视图 测试过程:(实验中出现的问题.错误.解决方法) 问题一:新建查询,调试过程中出现提示无效行或列 问题二:新建查询,调试过程中出现第几行出现错误 解决办法:检查新建的查询,标点 ...

  6. 太原理工大学软件学院数据库实验四(2021.4.26)

    太原理工大学软件学院数据库实验四(2021.4.26) -- (1)创建Student 表 CREATE TABLE Student ( Sno CHAR(8) PRIMARY KEY, Sname ...

  7. Oracle 11g 数据库 实验7 数据库安全管理

    Oracle 11g 数据库实验7 数据库安全管理 1.实验目的 (1)掌握Oracle数据库安全控制的实现. (2)掌握Oracle数据库用户管理. (3)掌握Oracle数据库权限管理. (4)掌 ...

  8. 数据库实验:数据库高级查询

    数据库实验:数据库高级查询 实验过程 (1) IN 嵌套查询 (2) 单层EXISTS 嵌套查询 (3) FROM 子句中的嵌套查询 (4) 集合查询(交) (5) 集合查询(并) (6) 集合查询( ...

  9. mysql实验四数据库查询和视图_数据库-第四次实验报告-视图-t-sql语句

    实验十报告 创建视图 实验目的 1.掌握创建视图的SQL语句的用法. 2.掌握使用企业管管理器创建视图的方法. 3.掌握使用创建视图向导创建视图的方法. 4.掌握查看视图的系统存储过程的用法. 5.掌 ...

最新文章

  1. audio标签控制音量_html中audio标签的使用
  2. 关于keras的class_weight与sample_weight(解决样本不均衡或类别不均衡问题)
  3. 这10项机器人领域的核心技术,你了解多少
  4. Android ContentProvider介绍
  5. 单片机代码怎么读懂_单片机程序员的面试经验
  6. 安卓服务Service详解
  7. java操作oracle数据_Java jdbc操作oracle数据库的两种方式
  8. VSLAM技术框架详述
  9. 管理大数据存储的十大技巧
  10. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用
  11. DBA_Oracle性能优化的基本方法概述(方法论)
  12. 人工智能python3+tensorflow人脸识别_Tensorflow+opencv2实现人脸识别
  13. c语言的真随机,怎样让c语言中的随机函数真正随机?
  14. 如何编写自己的C语言头文件
  15. linux 查看链接文件,Linux下的链接文件详解
  16. Shell /dev/null 文件的含义
  17. 狐吧吧刊——遇见最好的浏览器(1-6期)
  18. 谷歌浏览器显示不安全内容
  19. 后端程序员看前端想死(二)进入页面之后js分析
  20. Javascript 判断一个数是否为素数的三种解法

热门文章

  1. hdu 3944 数学组合+帕斯卡定理
  2. 工作邦智慧水务云平台的十大系统
  3. 用python采集数据_python数据分析4之自动采集数据
  4. python 统计哈姆雷特词汇频率_Python练习15:文本单词频率统计:哈姆雷特,练习题,英文版...
  5. 推荐一款优秀的简历模板
  6. GitLab持续集成持续部署(CICD)
  7. 我是如何从屌丝程序员逆袭成为大厂总监的?
  8. 前端/后端 - 表单数据验证 - 个人实践
  9. C语言 变量的指针和指向变量的指针变量
  10. FAST-LIVO论文翻译