西南科技大学数据库实验四(Oracle 11g)

/*
*实验四 数据库恢复与安全性
*时间: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 图书分类;

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值