您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据结构与算法 > 南邮数据库实验2--DBMS对数据库的保护
实验二DBMS对数据库的保护一、实验目的通过上机,体会DBMS对数据库的保护;巩固事务的概念;正确理解并发及锁机制;熟悉DBMS的安全控制回顾完整性控制功能。二、相关章节:第七章三、实验内容1.创建用户U1、U2。createuseru1identifiedbyabc;grantconnect,resourcetou1;createuseru2identifiedbydef;grantconnect,resourcetou2;2.对系统中scott用户的员工(emp)表,用授权机制完成以下存取控制(1)所有用户具有对员工编号empno、姓名ename和所在部门deptno的查询权限。**在oracle中,授权语句不支持如同garntselect(属性名列表)on表名to用户名这样的格式,所以先建视图,然后再对视图设存取控制权限**CONNECTSCOTT/TIGER;createviewvemp(empno,ename,deptno)asselectempno,ename,deptnofromemp;grantselectonvemptopublic;(2)用户U1拥有对表emp的删除权限和对奖金(comm)的修改权限,并具备转授这些权限的权力grantdelete,update(comm)onemptou1withgrantoption;scott用户状态下(在scott用户下输入DESCEMP查看emp表的结构)(3)用户U1授予用户U2对员工表的删除权。以U1身份进入:connectu1/abcgrantdeleteonscott.emptou2;(4)回收用户U1和用户U2对员工表的删除权。Connectscott/tigerrevokedeleteonempfromU1;(不需要对U2操作级联回收删除权限)3.为自己的用户授予对scott用户的员工表EMP的所有操作权grantallprivilegesonemptou1withgrantoption;4.(1)分别以scott和自己的用户名登录数据库(自己用户要重新打开一个窗口U1ABC)各自输入命令:setautooff(2)scott在事务1中将10号部门所有员工工资增加200元,Updateempsetsal=sal+200where(deptno)=10;(3)自己的用户在事务2中将工号以77开头的员工工资(在U1中操作)增加300元。Updatescott.empset工资=工资+300whereempnolike77%(数字型的不用加单引号);(4)观察发生什么现象,为什么?如何解决?发生现象:事务二处于等待状态。原因;scott用户的加X锁作用。事物二一直处于等待状态,因为scott用户给事务加了一个X锁,事务二不能操作没有响应。在scott用户下输入rollback,则事务二操作后工资变为300。在scott用户下输入commit,则事务二操作后工资变为500.可能用到的语句:SelectsalfromempWhere‘部门号’=10and‘工号’like‘77%’;Selectscott.salfromscott.empWhere‘部门号’=10and‘工号’like‘77%’;Commit;Rollback;
本文标题:南邮数据库实验2--DBMS对数据库的保护
链接地址:https://www.777doc.com/doc-5701490 .html