/*
*实验四 数据库恢复与安全性
*时间:2019-11-25
*联系:2838215550@qq.com
*附言:把代码写成一首诗。
*/
1、逻辑备份
(1)导出自己用户中的“预约”表
在运行中输入:exp 用户名/密码@orcl
按照提示进行导出
(2)删除自己用户中的“预约”表
(3)进行导入数据库操作
在运行中输入:IMP 用户名/密码@orcl
按照提示进行导入
(4)查询导入的“预约”表中的信息。
(5)导出数据库(以全库方式导出)。
•必须是DBA才能执行完整数据库或表空间导出操作。
2、使用Flashback
(1)设置行可移动
SQL>ALTER TABLE 读者 ENABLE ROW MOVEMENT
(2)在读者表中添加多条记录(或者删除没有借书的读者记录)。
(3)闪回到改变前(TO_ TIMESTAMP函数完成对非时间戳类型数据的转换)
SQL>FLASHBACK TABLE 读者 TO TIMESTAMP TO_ TIMESTAMP(….)
3、使用PLSQL/developer 来完成SQL导出
(1)打开PLSQL/developer,选择菜单“工具“导出表
(2)点击你要导出的表(如:“预约”表),然后选择标签SQL 插入
(3)选中复选框创建表(create tables),浏览或者输入输出文件,然后点击导出
(4)在你输入的目录下找到你的导出文件(SQL 文件)
(5)删除自己表空间中的“预约”表
(6)通过“工具“导入表,利用SQL插入导入“预约”表。
(7)查询导入的“预约”表,检查导出是否正确。
4、使用PLSQL/developer 来完成PLSQL/developer方式导出
(1)打开PLSQL/developer,选择菜单“工具“导出表
(2)点击你要导出的表(如:“预约”表),然后选择标签PLSQL/developer
(3)浏览或者输入输出文件,然后点击导出。
(4)在你输入的目录下找到你的导出文件。
(5)删除自己表空间中的“预约”表
(6)通过“工具“导入表,PLSQL/developer方式并选中复选框“创建表”,导入“预约”表,。
(7)查询导入的“预约”表,检查导出是否正确。
5、以SYSTEM登录数据库,为你的帐号增加系统角色DBA.
conn system/orcl@orcl as sysdba;
grant dba to s5120176308;
6、 重新以自己的帐号登录,创建一个数据库用户:帐号_USER1(注:帐号即学生登录数据库帐号,如:S20160001),该用户拥有所有CONNECT, resource,DBA系统角色权限。
create user s5120176308_user1 identified by orcl;
grant connect,resource,dba to s5120176308_user1;
7、 建立角色:帐号_OPER,该角色拥有调用存储过程借书、还书、预约的权限,以及CONNECT系统角色权限。
(注:执行存储过程的授权语句Grant execute on procedure_name to user/role)
create role s5120176308_oper;
grant execute on PR_还书 to s5120176308_oper;
grant execute on PR_预约 to s5120176308_oper;
grant execute on PR_借书 to s5120176308_oper;
8、创建一个数据库用户:帐号_USER2(注:帐号如:S20160001)
为该用户授权角色:帐号_OPER。以该用户登录,完成借书功能。
create user s5120176308_user2 identified by orcl;
grant s5120176308_oper to s5120176308_user2;
conn s5120176308_user2/orcl@orcl;
call PR_借书(20051001,1005050);
9、以自己的帐号登录,如:S20160001,建立视图VIEW_READER, 该视图包含书目(ISBN, 书名,作者,出版单位,图书分类名称)(注:所有属性来自关系书目和图书分类)
/*
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name
[(alias[, alias]...)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY]*/
conn s5120176308/orcl@orcl;
create view view_reader as select ISBN,书名,作者,单位 出版单位,类名 图书分类名称 from 书目,图书分类 where 书目.图书分类号=图书分类.图书分类号;
10、 创建一个数据库用户:帐号_USER3(注:帐号如:S20160001),该用户具有对视图VIEW_READER查询的权限。
create user s5120176308_user3 identified by orcl;
grant select on view_reader to s5120176308_user3;
11、创建一个概要文件,如果 帐号_USER3连续3次登录失败,则锁定该账户,10天后该账户自动解锁。把创建的概要文件分配给该账号,然后以该用户登录进行权限测试。
/*
CREATE PROFILE profile_name LIMIT
{ resource_parameters | password_parameters }
[ resource_parameters | password_parameters ]...;
{ { SESSIONS_PER_USER | CPU_PER_SESSION | CPU_PER_CALL | CONNECT_TIME | IDLE_TIME
| LOGICAL_READS_PER_SESSION | LOGICAL_READS_PER_CALL | COMPOSITE_LIMIT }
{ integer | UNLIMITED | DEFAULT }
| PRIVATE_SGA { integer [ K | M ] | UNLIMITED | DEFAULT }
}
{ { FAILED_LOGIN_ATTEMPTS | PASSWORD_LIFE_TIME | PASSWORD_REUSE_TIME
| PASSWORD_REUSE_MAX | PASSWORD_LOCK_TIME | PASSWORD_GRACE_TIME }
{ expr | UNLIMITED | DEFAULT }
| PASSWORD_VERIFY_FUNCTION { function | NULL | DEFAULT }
}
select * from dba_profiles;
drop profile profile_name;
*/
create profile profile_s5120176308_user3 limit
failed_login_attempts 3
password_lock_time 10;
alter user s5120176308_user3 profile profile_s5120176308_user3;
/*
*实验结束 删库跑路
*时间:2019-11-25
*联系:2838215550@qq.com
*附言:把代码写成一首诗。
*/
drop table 预约;
drop table 借阅;
drop table 罚款分类;
drop table 读者;
drop table 图书;
drop table 书目;
drop table 图书分类;
西南科技大学数据库实验四(Oracle 11g)
最新推荐文章于 2022-11-12 09:20:21 发布