实验名称 | 实验三 数据库的安全性和完整性控制 | ||
实验教室 | 913 | 实验日期 | 2018年10月22日 |
学 号 | 2016214*** | 姓 名 | *** |
专业班级 | 计算机科学与技术2016级 *班 | ||
指导教师 | 王阿川 |
东北林业大学
信息与计算机科学技术实验中心
一、实验目的 (1)通过本实验能够熟练应用sql语言进行用户权限的授予和回收。 (2) 熟练掌握实体完整性,参照完整性及用户定义的完整性的定义。 (3)体会oracle数据库系统在安全性和完整性保护方面的特性。 |
二、实验环境 计算机 windows7操作系统, Oracle 11g, SQL Developer |
三、实验内容及结果
其中,学号是指你的学号,比如你的学号为20130001,则你创建的用户应该是S20130001u1,S20130001u2,S20130001u3,S20130001u4 create user s2016214220u2 identified by nefu1234; create user s2016214220u3 identified by nefu1234; create user s2016214220u4 identified by nefu1234;
on s2016214220.student to s2016214220u1 (1)查询S20130001用户的Student表中全体学生的详细记录 select * from student
(2)查询S20130001用户Student表中所有姓刘的学生的姓名、学号和性别。 (3)查询S20130001用户Student表中名字中第二字为“阳”字的学生的姓名和学号。 where sname like '_阳%';
ON s2016214220.student TO s2016214220u2,s2016214220u3; GRANT all privileges ON s2016214220.course TO s2016214220u2,s2016214220u3;
修改:
on student to s2016214220u4; grant delete on student to s2016214220u4; grant update on student to s2016214220u4; grant insert on student to s2016214220u4;
grant insert on s2016214220.sc to s2016214220u5;
(1)让“S学号u2”用户查询S20130001用户的SC表中选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列 on s2016214220.sc to public
from s2016214220sc where cno='3' order by grade desc (2)让“S学号u2”用户查询S20130001用户的SC表中各个课程号与相应的人数。 select cno,count(*) from s2016214220.sc group by cno;
(首先应该以新创建的用户的身份重新登陆数据库,然后再进行授权)
1.收回用户”S学号u2”修改学生学号的权限 on student from s2016214220u2
revoke select on sc from public
3.收回用户”S学号U5”sc表的insert权限 on sc from s2016214220u5 4.在回收权限之后验证用户是否真正丧失了该权限(查询表,插入记录)
给角色授予权限
将角色授予某一用户
1建立教师表Teacher,要求教师名称Tname列取值唯一,教师编号TNO列为主码。 (tno varchar2(10) primary key , tname varchar2(10) unique ); 2建立学生登记表Student,要求学号在9000至9999之间,年龄<29,性别只能是’男’或’女’,姓名非空。
3修改表Student的结构,由年龄小于29改为小于40。
cno varchar2(4) constraint pk_c primary key, cname varchar2(10), tno varchar2(10) constraint fk_c_t references teacher(tno) On Delete Set NULL, credit number(3) check (credit<=7) );
cno varchar2(4) REFERENCES course1(cno) On Delete Cascade, sno char(10)REFERENCES stu(sno) On Delete Cascade, grade number(3), primary key(cno,sno) );
对上述新建立和修改定义的表,每个表输入3条数据,其中1条数据符合完整性约束,2条违反约束条件的,验证和体会Oracle的实体完整性和参照完整性。
|
四、实验过程分析与讨论 创建的用户成为该角色的成员,并授予一定的操作权限时,无法找到到哪儿去进 行权限设置,最后通过百度搜索找到如何设置角色的权限 |
|
五、指导教师意见
指导教师签字: 2018 年 10月 25 日 |