實驗名稱 |
實驗三 數據庫的安全性和完整性控制 |
||
實驗教室 |
913 |
實驗日期 |
2018年10月22日 |
學 號 |
2016214220 |
姓 名 |
** |
專業班級 |
計算機科學與技術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 日 |