数据库实验五、六
实验类型
验证型实验
实验目的
- 了解数据库恢复技术的原理
- 了解oracle各类故障的数据恢复方法
- 了解oracle的物理备份
- 掌握oracle数据库逻辑备份方法
- 掌握oracle数据库恢复的方法
- 学会使用exp备份数据库、使用imp恢复数据库
- 了解flashback 的使用
- 学会使用PLSQL/developer工具完成导入导出
- 理解数据库的安全性保护
- 掌握ORACLE中有关用户创建的方法
- 理解数据库存取控制机制
- 熟练掌握PL-SQL的数据控制语言,能通过自主存取控制进行权限管理
- 熟悉用户资源文件的使用
- 熟悉ORACLE中角色管理
- 熟悉视图机制在自主存取控制上的应用
实验内容
- 查看归档模式
- 使用exp导出数据库
- 使用imp导入数据库
- 使用flashback 闪回表
- 使用PLSQL/developer工具完成导出
- 使用PLSQL/developer工具完成导入
实验步骤
实验五
- 查看系统归档模式。(在SQLPLUS中)
SQL> archive log list。
对各参数值进行解释。 - 热备份和冷备份,分别使用什么归档模式?
- 如何对WINDOWS平台服务器中的ORCL数据库进行冷备份?说明方法。
- 客户端可以使用RMAN进行热备份吗?
- 逻辑备份
(1)导出自己表空间中的“预约”表
在运行中输入:exp 用户名/密码@orcl
按照提示进行导出
(2)删除自己表空间中的“预约”表
(3)进行导入数据库操作
在运行中输入:IMP 用户名/密码@orcl
按照提示进行导入
(4)查询导入的“预约”表中的信息。
(5)导出数据库(以全库方式导出)。
- 必须是DBA才能执行完整数据库或表空间导出操作。
- 使用Flashback
(1)设置行可移动
SQL>ALTER TABLE 读者 ENABLE ROW MOVEMENT
(2)在读者表中添加多条记录(或者删除没有借书的读者记录)。
(3)闪回到改变前(TO_ TIMESTAMP函数完成对非时间戳类型数据的转换)
SQL>FLASHBACK TABLE 读者 TO TIMESTAMP TO_ TIMESTAMP(….) - 使用PLSQL/developer 来完成SQL导出
(1)打开PLSQL/developer,选择菜单“工具“导出表
(2)点击你要导出的表,然后选择标签SQL 插入
(3)选中复选框创建表,浏览或者输入输出文件,然后点击导出
(4)在你输入的目录下找到你的导出文件(SQL 文件)
(5)依次导出你账户下所有用户自定义表。
(6)删除自己表空间中的“预约”表
(7)通过“工具“导入表,利用SQL插入导入数据库预约表。
(8)查询导入的预约表,检查导出是否正确。 - 使用PLSQL/developer 来完成PLSQL/developer方式导出
(1)打开PLSQL/developer,选择菜单“工具“导出表
(2)点击你要导出的表,然后选择标签PLSQL/developer
(3)浏览或者输入输出文件,然后点击导出。
(4)在你输入的目录下找到你的导出文件。
(5)依次导出你账户下所有用户自定义表。
(6)删除自己表空间中的“预约”表
(7)通过“工具“导出表,PLSQL/developer方式导入数据库预约表。
(8)查询导入的预约表,检查导出是否正确。
实验六
- 同学之间相互授权访问对方“读者”表并能进行查询。
- 以SYS登录数据库 为你的账号增加系统角色DBA.
- 重新以自己的账号登录,创建一个数据库用户:账号_USER1(注:账号即学生登录数据库账号:S2009XXXX)该用户拥有所有CONNECT, RESOURCE,DBA系统角色权限。然后以该用户登录,查看该用户的所有系统权限。
- 建立角色:账号_OPER,该角色拥有调用存储过程借书、还书、预约的权限,以及查询读者,书目,图书,借阅以及预约表的权限。
(注:执行存储过程的授权语句
Grant execute on procedure_name to user/role) - 创建一个数据库用户:账号_USER2(注:账号即:S2009XXXX)
为该用户授权角色:账户_OPER。以该用户登录,完成借书功能。 - 建立视图VIEW_READER, 该视图包含书目(ISBN, 书名,作者,出版单位,图书分类名称)(注:所有属性来自关系书目和图书分类)
- 创建一个数据库用户:账号_USER3(注:账号即:S2009XXXX)
该用户具有对视图VIEW_READER查询的权限。创建一个概要文件,如果 账号_USER3连续3次登录失败,则锁定该账户,10天后该账户自动解锁。以该用户登录进行权限测试。
实验结果
- 查看系统归档模式。(在SQLPLUS中)SQL> archive log list。对各参数值进行解释。
使用SYS登录,由于是超级管理员所以要使用: “口令+ as sysdba”登录
输入archive log list
- 热备份和冷备份,分别使用什么归档模式?
热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份是指在数据库关闭后,进行备份,适用于所有模式的数据库,热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于他的备份和回复操作相当简单,并且由于冷备份的数据可以工作在非归档模式下,数据库性能会比归档模式稍好。 - 如何对WINDOWS平台服务器中的ORCL数据库进行冷备份?说明方法。
1)正常关闭数据库
2)备份所有重要的文件到备份目录(数据文件、控制文件、重做日志文件等)
3)完成备份后启动数据库
4. 客户端可以使用RMAN进行热备份吗? 可以
5. 逻辑备份
(1)导出自己表空间中的“预约”表在运行中输入:exp 用户名/密码@orcl 按照提示进行导出
(2)删除自己表空间中的“预约”表
(3)进行导入数据库操作在运行中输入:IMP 用户名/密码@orcl,按照提示进行导入
(4)查询导入的“预约”表中的信息。
(5)导出数据库(以全库方式导出)。
exp S5120188039/yyk1776572104@orcl FULL=Y
6、使用Flashback
(1)设置行可移动
SQL>ALTER TABLE 读者 ENABLE ROW MOVEMENT
(2)在读者表中添加多条记录(或者删除没有借书的读者记录)。
插入数据:
1 | INSERT INTO 读者 VALUES('20181452','胡晋源','四川绵阳西科大计算机学院','男',null,null,null); |
(3)闪回到改变前(TO_ TIMESTAMP函数完成对非时间戳类型数据的转换)
SQL>FLASHBACK TABLE 读者 TO TIMESTAMP TO_ TIMESTAMP(….)
代码:
1 | FLASHBACK TABLE 读者 TO TIMESTAMP TO_TIMESTAMP('2020/11/15 16:30:00','YYYY/MM/DD HH24:MI:SS'); |
7、使用PLSQL/developer 来完成SQL导出
(1)打开PLSQL/developer,选择菜单“工具”导出表
(2)点击你要导出的表,然后选择标签SQL插入
(3)选中复选框创建表,浏览或者输入输出文件,然后点击导出
(4)在你输入的目录下找到你的导出文件(SQL 文件)
(5)依次导出你账户下所有用户自定义表。
(6)删除自己表空间中的“预约”表
1 | drop table 预约; |
(7)通过“工具“导入表,利用SQL插入导入数据库预约表。
(8)查询导入的预约表,检查导出是否正确。
8、使用PLSQL/developer 来完成PLSQL/developer方式导出
(1)打开PLSQL/developer,选择菜单“工具“导出表
(2)点击你要导出的表,然后选择标签PLSQL/developer
(3)浏览或者输入输出文件,然后点击导出。
(4)在你输入的目录下找到你的导出文件。
(5)依次导出你账户下所有用户自定义表。
(6)删除自己表空间中的“预约”表
1 | drop table 预约; |
(7)通过“工具“导出表,PLSQL/developer方式导入数据库预约表。
(8)查询导入的预约表,检查导出是否正确
实验六
1、同学之间相互授权访问对方“读者”表并能进行查询。
2、以SYS登录数据库 为你的账号增加系统角色DBA.
使用 “GRANT DBA TO + 用户名”给自己的账号增加系统角色DBA:
3、 重新以自己的账号登录,创建一个数据库用户:账号_USER1(注:账号即学生登录数据库账号:S2009XXXX)该用户拥有所有CONNECT, RESOURCE,DBA系统角色权限。然后以该用户登录,查看该用户的所有系统权限。
(1)登录
(2)使用CREATE USER 用户+_USER1 IDENTIFIED BY ORCL;创建用户
1 | CREATE USER S5120188039_USER1 IDENTIFIED BY ORCL; |
(3)使用GRANT CONNECT TO S5120188039_USER1;
1 | GRANT RESOURCE TO S5120188039_USER1; |
4、 建立角色:账号_OPER,该角色拥有调用存储过程借书、还书、预约的权限,以及查询读者,书目,图书,借阅以及预约表的权限。
(注:执行存储过程的授权语句Grant execute on procedure_name to user/role)
(1)创建角色
1 | CREATE ROLE S5120188039_OPER; |
(2)授权
1 | GRANT EXECUTE ON PROCESSED_借书 TO S5120188039_OPER; |
1 | GRANT SELECT ON 读者 TO S5120188039_OPER; |
5、创建一个数据库用户:账号_USER2(注:账号即:S2009XXXX)为该用户授权角色:账户_OPER。以该用户登录,完成借书功能。
(1)使用CREATE USER 用户+_USER1 IDENTIFIED BY ORCL;创建用户
1 | CREATE USER S5120188039_USER2 IDENTIFIED BY ORCL; |
(2)授权
1 | GRANT S5120188039_OPER TO S5120188039_USER2; |
(3)重新登录并且实现借书过程
1 | CALL S5120188039.PROCESSED_借书(20051001,1005050); |
(4)查询结果
7、 创建一个数据库用户:账号_USER3(注:账号即:S2009XXXX)
该用户具有对视图VIEW_READER查询的权限。创建一个概要文件,如果 账号_USER3连续3次登录失败,则锁定该账户,10天后该账户自动解锁。以该用户登录进行权限测试。
(1)创建数据库用户
1 | CREATE USER S5120188039_USER3 IDENTIFIED BY ORCL; |
(2)授权
1 | GRANT CONNECT TO S5120188039_USER3; |
1 | GRANT SELECT ON VIEW_READER TO S5120188039_USER3; |
(3)创建概要文件
1 | CREATE PROFILE LOCK_USER LIMIT |
(4)分配概要文件
1 | ALTER USER S5120188039_USER3 PROFILE LOCK_USER; |
(5)测试输入错误,锁定用户
(6)账户锁定进行解锁
1 | ALTER USER S5120188039_USER3 ACCOUNT UNLOCK; |
(7)再次测试