《数据库系统原理》实验指导四.doc_第1页
《数据库系统原理》实验指导四.doc_第2页
《数据库系统原理》实验指导四.doc_第3页
《数据库系统原理》实验指导四.doc_第4页
全文预览已结束

下载本文档

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

文档简介

1、每次实验前学生必须根据实验内容认真准备。2、在指导教师的帮助下能够完成实验内容。3、实验结束后总结实验内容、书写实验报告。4、遵守实验室规章制度、不缺席。5、实验学时内必须做数据库的有关内容,不允许上网聊天或玩游戏。 1. 明确实验的目的及要求;2. 记录实验的输入数据和输出结果;3. 说明实验中出现的问题和解决过程;4. 写出实验的体会和实验过程中没能解决的问题;实验4 授权及收回授权、约束、触发器一实验目的通过对本综合性实验的训练,学生能够比较熟练地掌握数据库的基本理论和方法,熟练掌握Oracle 10G数据库的使用方法;熟练掌握Oracle 10g的安全管理机制;熟练掌握数据库完整性控制机制;掌握触发器的建立与修改方法。二实验要求1、掌握Oracle数据库的安全性管理技术;2、掌握数据库中数据完整性约束控制技术;3、掌握触发器的建立与修改方法。三设计的内容或知识点数据库的账号、用户的建立、删除以及授权机制数据的完整性以及如何定义约束、使用规则和默认值触发器四、实验环境一种情况:普通PC机,装有Oracle的客户端,通过客户端配置和移植工具中的net manager配置远程数据库服务器,实现连接。另一种情况:下载简单的客户端配置程序,配置tnsnames文件,通过toad或pl/sql developer开发工具连接远程数据库服务器,实现连接。本实验环境现在选用第一种情况进行实验。五、实验步骤1、数据库的账号、用户的建立、删除以及授权机制1)对于系统中的每一个用户,Oracle都为其建立特定的用户账号。用户账号管理是Oracle实现安全性的核心。本实验要求实践以下内容:创建用户、修改用户的设置及口令、锁定和解锁用户、删除用户。A、创建用户语法:create user 用户名 -登录用户名identified by 密码 | external | globally by 外部名 -密码default tablespace -默认表空间temporary tablespace -临时表空间quota 数目 on 表空间名称-使用表空间的数量profile 用户配置文件-配置用户登录及使用资源信息password expire-密码过期account lock | unlock -帐户锁定/解锁B、修改用户的设置及口令、锁定和解锁用户alter user 用户名 -登录用户名identified by 密码 | external | globally by 外部名 -密码default tablespace -默认表空间temporary tablespace -临时表空间quota 数目 on 表空间名称-使用表空间的数量profile 用户配置文件-配置用户登录及使用资源信息password expire-密码过期account lock | unlock -帐户锁定/解锁C、删除用户drop user 用户名 cascade;2)Oracle定义了一整套丰富、完整的权限,通过授予或撤销用户适当的权限,实现了安全的数据库访问控制。在Oracle数据库中,有两类权限,即对象权限和系统权限。对象级别权限是由用户赋予的访问或操作数据库对象的权限。A、系统权限不是控制对指定数据库对象的访问,而是用来许可对各种特性的访问,或许可Oracle数据库中的特定任务。授予用户系统权限的基本语法格式如下:grant system_privilege to username with admin option;B、对象权限可以用来控制对指定数据库对象的访问。授予用户对象权限的语法格式如下:grant object_privilege on object_name to username with grant option;3)为了简化权限管理并提高效率,可以使用角色,角色是具有名称的一组系统权限和对象权限的集合。创建数据库角色的基本语法格式如下:create role role_name;create role role_name not identifed | identified by role_password;4)收回用户所拥有的权限revoke system_privilege from username;revoke object_privilege on object_name from username;2、数据库中数据完整性约束控制技术1)创建一个学生信息表,要求学生学号为主码(primary key),学生姓名不能取空值,并要求学生姓名取值唯一,性别只能取“男”、“女”,默认值为“男”,年龄在15到40岁之间。create table student(sno varchar2(10) constraint pk_student primary key,sname varchar2(30)constraint uk_student unique not null,ssex varchar2(2) default 男 constraint ck_ssex check(ssex in (男,女),sage int constraint ck_sage check(sage between 15 and 40),sdept varchar2(30);2)创建一个课程信息表,要求课程号为主码,课程名不能为空,取值唯一,前修课为外键,参照课程表的课程号。create table course(cno varchar2(10) constraint pk_course primary key,cname varchar2(30) constraint uk_course unique not null,cpno varchar2(10), ccredit number(4,2),constraint fk_course foreign key(cpno) references course(cno) on delete cascade |on delete set null);3、触发器是否对数据库进行了安全性控制和完整性控制,用户就可以自由地对数据进行操作而不受任何限制了?举例1:修改记录只能在正常工作时间段内(非星期六和星期日的8点到18点)。 举例2:在签订一份订单时,货物的库存量应减少。怎么办?使用触发器可以解决上述问题。1)定义触发器的语法如下: create or replace trigger before|after|instead of on for each row whenbegin end ;2)定义一个BEFORE行级触发器,为学生表student定义完整性规则“如果学生为女生,则学生的年龄不得低于15岁,如果低于15岁,自动改为15岁”。create or replace trigger Insert_Or_Update_sage before insert or update /*触发事件是插入或更新操作*/on student for each row /*行级触发器*/begin /*定义触发动作体,是PL/SQL过程块*/ if (:new.ssex=女) and (:new.sage15) then :new.sage :=15; end if;end ;3)定义一个BEFORE语句级触发器,为学生表student定义以下限制:不能在周末或非工作时间修改数据 (非星期六和星期日的8点到18点)。CREATE OR REPLACE TRIGGER operate_studentBEFORE INSERT or UPDATE or DELETE /*触发事件是插入或更新或删除操作*/ON StudentFOR EACH STATEMENTBEGIN /*定义触发动作体,是PL/SQL过程块*/IF (to_char(sysdate,DY) in (星期六,星期日) or (to_char(sysdate,HH24:MI) not between 08:00 and 18:00) THEN raise_application_error(-20500,不能在非工作日修改数据库); END IF;END ;4)删除触发器。DROP TRIGGER ;5)练习以下内容:1、定义AFTER行级触发器,当学生表Student的年龄发

温馨提示

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

评论

0/150

提交评论