Oracle实验一数据库安全管理_第1页
Oracle实验一数据库安全管理_第2页
Oracle实验一数据库安全管理_第3页
Oracle实验一数据库安全管理_第4页
Oracle实验一数据库安全管理_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一 数据库安全管理 实验内容1、创建用户、角色根据下表的要求1) 建立角色;2) 为角色分配权限;3) 建立密码管理和资源限制Profile文件;4) 建立用户;5) 为用户分配角色;6) 用户登录,执行相应的SQL操作。由系统管理员(admin)创建以下数据表:课程信息表CourseInfo,排课信息表ClassInfo,部门代码表DepartmentInfo,教师信息表TeacherInfo,学生信息表StudentInfo,选课信息表SelectiveInfo,保存在系统管理员的schema中。请按照文档lab1_DataModel.doc的表结构创建表。缺省表空间及限额角色/用户权

2、限/角色密码管理资源限制Admin,20M用户:系统管理员(admin)角色:DBA 三次登录失败,锁定账户; 使用30天后需要更改密码; 旧密码过期后100天内不能重用; SESSIONS_PER_USER = UNLIMITED CPU_PER_SESSION=UNLIMITEDTeacher,2M角色:教师(teacher) 用户:teacher1角色:CONNECT 对象权限: 查看学生信息 查看教师信息 更新教师信息 查看排课记录 更新和查看选课信息中成绩列,学号列以及班级列记录 查看院系代码信息 登录时修改密码; SESSIONS_PER_USER2 IDLE_TIME=30 CO

3、NNECT_TIME=60Student,2M角色:学生(student) 用户:(用你的名字的拼音)角色:CONNECT对象权限: 查看学生信息 查看课程信息 查看选课信息 登录时修改密码; SESSIONS_PER_USER1 IDLE_TIME=20 CONNECT_TIME=30实验步骤如下:运行SQL*Plus工具,sys用户以SYSDBA特权登录,输入口令abc123。1、ADMIN操作步骤一:创建表空间ADMIN指定该表空间内的表在加载数据时是否产生日志,默认为产生日志(LOGGING),指明数据文件的路径与名字,表空间的大小,最后指定表空间的扩展方式是本地化管理EXTENT M

4、ANAGEMENT LOCAL,段空间的管理方式为自动SEGMENT SPACE MANAGEMENT AUTO。操作步骤二:创建概要文件ADMINPROFILE来对数据库用户进行资源限制和密码管理限制用户在一次数据库会话期间可以使用的CPU时间为UNLIMITED,用户可打开的并发会话的最大数目为UNLIMITED,指定用户三次登录失败后锁定账户,设置使用一个特定密码的时间限制为30天,指定可重新使用密码前要经过100天。操作步骤三:创建ADMIN用户设置ADMIN用户密码为admin,指定其概要文件为ADMINPROFILE,标志用户所创建对象的默认表空间为admin,用户的临时段表空间为

5、temp,限制表空间存储对象为1M。并授予ADMIN用户DBA权限。操作步骤四:以AMDIN身份登录,执行lab1.sql脚本文件创建数据表。2、TEACHER操作步骤一:创建表空间TEACHER操作步骤二:创建角色TEACHER该角色使用非验证方式。将CONNECT角色授予TEACHER,给TEACHER角色授予查看学生信息,查看更新教师信息,查看排课记录,查看选课信息,更新选课信息中的成绩列、学号列和班级列记录,查看院系代码信息的权限。操作步骤三:创建概要文件TEACHERPROFILE操作步骤四:创建用户teacher1,并将TEACHER权限授予teacher13、STUDENT操作步

6、骤一:创建表空间STUDENT操作步骤二:创建概要文件STUDENT操作步骤三:创建角色STUDENT操作步骤四:创建用户CHENWEIXIAO(陈伟晓),并将STUDENT权限授予CHENWEIXIAO3.2、权限管理及安全信息查询1) 系统管理员admin登录选课系统数据库,登录三次失败,第四次输入正确的密码进行登录,会出现什么情况?为什么? 答:系统管理员admin登录三次失败,系统会提示“在3次尝试之后无法连接到ORACLE,退出SQL*PLUS”,第四次输入正确的密码进行登录,系统提示“the account is locked”,即账户被锁定,无法登录。可以用sys as sysd

7、ba登录,输入alter user admin account unlock;命令对admin进行解锁。2) 使teacher1具有创建数据表系统权限,以用户teacher1登录,创建一个部门代码表DepartmentInfo作为系统管理员创建的部门代码表的备份;答:以管理员admin登录,将创建表权限授予teacher1登录teacher1用户,系统提示密码过期,更改teacher1密码为sir后重新登录。输入命令create table DepartmentInfo as select * from admin.DepartmentInfo;来创建表(当使用CREATE TABLEAS S

8、ELECT语句创建表时,Oracle将通过从admin.DepartmentInfo表中复制列来建立表。在创建表后,Oracle就会使用从SELECT语句中返回的行来填充新表)。3) 用户teacher1登录,分配学生用户(你的名字的拼音)查看teacher1. DepartmentInfo记录的权限;学生用户登录,查看teacher1. DepartmentInfo中的记录; 答:用teacher1登录,输入grant select on teacher1.DepartmentInfo to chenweixiao分配给我查看teacher1. DepartmentInfo记录的权限,再用c

9、henweixiao登录,系统提示密码过期,修改密码为cwx后登录,输入selece * from teacher1.DepartmentInfo;来查看记录4) 取消用户teacher1创建数据表权限;取消学生用户查看teacher1. DepartmentInfo记录的权限; 答:用系统管理员admin登录,用REVOKE system_privilege FROM user | role | public收回系统权限5) 从数据库中删除用户teacher1。 答:用DROP USER user_name CASCADE语句即可删除用户,CASCADE选项可以删除该用户模式中的所有对象。6

10、) 创建密码验证函数,要求密码至少包含大小写字母、数字和特殊字符(#$%)中的一个,并且不少于8位。然后将该密码验证函数应用于学生用户并验证效果(可选)SQL语句如下:CREATE OR REPLACE FUNCTION xiao_verify_function(username varchar2, password varchar2, old_password varchar2) RETURN boolean IS n boolean; m integer; isdigit boolean; ischar boolean; ispunct boolean; digitarray varcha

11、r2(20); punctarray varchar2(25); chararray varchar2(52);BEGIN digitarray:= 0123456789; chararray:= abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ; punctarray:=#$%; - Check for the minimum length of the password IF length(password) 8 THEN raise_application_error(-20002, Password length less tha

12、n 8); END IF; - Check if the password contains at least one letter, one digit and one - punctuation mark. - 1. Check for the digit isdigit:=FALSE; m := length(password); FOR i IN 1.10 LOOP FOR j IN 1.m LOOP IF substr(password,j,1) = substr(digitarray,i,1) THEN isdigit:=TRUE; GOTO findchar; END IF; E

13、ND LOOP; END LOOP; IF isdigit = FALSE THEN raise_application_error(-20003, Password should contain at least one digit, one character and one punctuation); END IF; - 2. Check for the character ischar:=FALSE; FOR i IN 1.length(chararray) LOOP FOR j IN 1.m LOOP IF substr(password,j,1) = substr(chararra

14、y,i,1) THEN ischar:=TRUE; GOTO findpunct; END IF; END LOOP; END LOOP; IF ischar = FALSE THEN raise_application_error(-20003, Password should contain at least one digit, one character and one punctuation); END IF; - 3. Check for the punctuation ispunct:=FALSE; FOR i IN 1.length(punctarray) LOOP FOR j

15、 IN 1.m LOOP IF substr(password,j,1) = substr(punctarray,i,1) THEN ispunct:=TRUE; GOTO endsearch; END IF; END LOOP; END LOOP; IF ispunct = FALSE THEN raise_application_error(-20003, Password should contain at least one digit, one character and one punctuation); END IF; - Everything is fine; return TRUE ; RETURN(TRUE);END;/将该密码验证函数应用于学生用户 alter prof

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论