1、数据库系统实验报告五学号姓名 实验时间 2014-12-10实验名称权限与事务管理 实验学时 2准备材料1. SQL Plus 命令手册2. Oracle 数据字典扩展实验1. 利用企业管理器的图形界面进行创建用户、角色并进行管理2.利用企业管理器的图形 界面完成对数据操纵权限的授权与回收工作(此部分内容不要求在实验室完成,不用写入实验报告。)实验环境Oracle 9i(及以上版本)服务器SQL Plus/ SQL Plus work sheet 客户端实验目的1掌握权限管理语句与视图进行安全性控制的方法 实验内容及步骤每两个同学一组,自由组合完成下列操作要求(使用 grant, revoke
2、 语句和视图):1. 执行教师提供的命令文件,建立 university 数据库,并输入数据。2. 同学 A 设置同学 B 对 A.course 表具有查询权限,对 A.instructor 表中salary 字段具有更新权限;同学 B 使用命令检查授权是否成功。grant select on course to cs113;grant update(salary) on instructor to cs113;3. 同学 B 授权同学 A 对 B. instructor 表具有插入数据、删除数据的权限,同学 A 用命令试验能否完成相应操作。select * from cs113.instru
3、ctor;insert into cs113.instructor values(21313,JDY,Comp. Sci.,745363);select * from cs113.instructor;delete from cs113.instructor where salary = 92000;select * from cs113.instructor;4. 同学 A 授权同学 B,对 A.student 表具有修改表结构的权限,同学 B 得到修改表结构的命令验证授权是否成功。grant alter,select on student to cs113;5. 同学 B 授权同学 A 对
4、 B. student 表具有增、删、改、查的权限,并允许他将权限授权给其它同学。同学 A 验证授权是否成功,并试验能否将权限授予其它同学(例如同学 C) 。select * from cs113.student;insert into cs113.student values(13221,KJDFH,Comp. Sci.,123);update cs113.student set tot_cred = 456 where ID = 13221;select * from cs113.student;delete from cs113.student where ID = 13221;sele
5、ct * from cs113.student;grant select on cs113.student to cs110;6. 同学 A 收回授权同学 B 的 student 表上的所有权限,同学 B 验证是否回收成功。revoke all on student from cs113;7. 同学 A 授权同学 B 具有察看每个部门职工最高、最低、平均工资的权限,但不允许他察看每个人的工资。同学 B 验证授权是否成功。create view rop_salary as (select dept_name, min(salary) as MIN,max(salary) AS MAX,avg(s
6、alary) AS AVG from instructor group by dept_name);select * from rop_salary;grant select on rop_salary to cs113;8. 同学 A、B 撤销所有已授给对方的权限,如果同学 C 从同学 A 得到对同学 B student 表的访问 权限,察看其权限是否一并收回。revoke all on course from cs113;revoke all on instructor from cs113;revoke all on student from cs113;revoke all on ro
7、p_salary from cs113;同学 C 对同学 B 的访问权限也一并收回;9.事务的提交方式有三种:显式提交隐式提交和自动提交。SQL PLUS 中可通过命令可进行提交方式设置,设置不同提交方式。事务命令有:COMMIT、ROLLBACK、SAVEPOINT、SET ISOLATION LEVEL,查询不同用户操作的结果。完成下列和事务相关的操作:(1)修改事务隔离级别,AB 两同学一起操作同一张表,A.instructor,B 同学修改数据,A 同学查询数据,查看在什么情况下可查看到 B 同学刚刚修改的数据。set transaction isolation level Read Committed;grant update on instructor to cs113;select * from instructor;(2)设置自动提交,A、B 同学同时操作同一张表的数据,察看是否可看到最新修改结果.set autocommit on;(3)B 同学设置 SAVEPOINT,进行数据操作、rollback ,A 同学察看数据变化情况。在不同隔离级别下执行相同操作,察看数据的不同点。SAVEPOINT 之前的操作被提交,之后被撤销;出现问题解决方案(列出遇到的问题及其解决方法)