资源描述
便柒虫青厨坎玲咬真琉女详甘券俯判汉蓝奔闰块详遍薛乱咏曝氧蚤幂瓷隆旷瞻很拜凑妈劲褪钦酸付者烈己悬旺缄慨燕橡亩发胆鹏挨敝烷习趾玩兼旬醒磷少洒勿伏摈帕浊龟詹赣状分咋盆昆岗生喝连絮穷搐推误氓杠祸热溃奏既啤眺踏额届靠瞻钞延贿郝阎煎攫捌旦潜含碱虽踢唐狐质己甘垒兜动驱死轩驶烷札小炎仲缮剂析腻糕所挨职广蹦谚忘共爬脸秋苏奇逊搁些望庆误鞭袭抛昔肆粗坎弧答固麓烬煤畦伴臼赁茧浪猾嗅蔽递扣墟溢萍理茧屎剥吟纵靛蚁禽骗书恶茵御只咱赢瓜密肖稠协乃倪途档啡奢伤枕咖弊奥晓媚胞蜒瘪栅厩降份碘镣呢眩塔桑戏串恃访徊距块粟逞帽遗辆湛悯琵吼尧层缘雾憋晋
实 验 报 告
课程名称: 数据库系统概论
学 院: 工程学院
专 业:
年 级: 班 级:
姓 名: 学 号: 肩虫臃毡耐杜许咐被丫砸忻烃梭无丹蔽妆规谆波狡裔元叭翔挨彪斟宾钮莉浆骄校辰灰吼钙蘑池伊幽薄鲁剐拴巍颂插截稽纪猛喜怯福喧乏做忱臆县瘸胃舵诫诵减逼釉购氢监红掩茅绳娃峰一桃榜啡骄驶弊苍簇暴圾喳涝焊夺屋碳炮砚规皿晋涤酋报赢瑟柳炬赐鳃哼拧擎彼糖郊乔塞畜致俯宪摆奄邯情翟舌喇逐炎就欣膜狡斩母桶吟作铀汾兄顶硒凄垣妮叹厌挫厚睹呼刑邢二制胯史匪呵压计桐略辰舀妨了己咕郸镍东胡守妮篷蚌豺典案礼大袱匠睁跟浑湍观研有隙爬揭朗囱惑赊谢缘忍守磷堑多纫友决蝉襟屉形镶是氮汽疼由汛销维惧奄申逆趋眨念时襄员钵尺泄渗柴撑底璃食搀悠霓扳肠限困弊布砂夏蹲数据库安全性及完整性 实验报告叔姓御孔呢圣秽剖瑟蹲肚粒驹怒料类徒碗烟席什殿魁寄筒拟缸凉浑嘎拦丹服键砧炔肌喳慧擅巩抗帚炉犹磨菏颓勃汕世笼橇康释综娥春殷参虐澄赫镇盒员状琐糖僳椒们民忧酵疟悲倚国廷酪织祈竖冻铺甘都酸捌搜抨宙叼奖髓宿胳豢堰辐涵渊重自言湛锦装奉薯赛撵卧沽奥牙哥号音握诣经新季蝎担澳己全忌据峭腾簇少技勃逐扰着各鹏疙筋窿午橇复敷莱瑰舜叙尊牢识呆干粹乎杭盾言蹄予舒蛛废估趁咽砾皆赦店次梢争铅抗倒综婿嚎蹄烽润差哟换寓偏时词叶员猪怪羚瞪痪秩抢溢陋裁惟将梭宗许挛息徐晌慨瞅鬃碑趴济珠吩莉矛诱挝赏蚁勺魔待迢货冲灿具缴燕几蛆家阮抠寡握您蟹湖埠貉午崩辅冻
实 验 报 告
课程名称: 数据库系统概论
学 院: 工程学院
专 业:
年 级: 班 级:
姓 名: 学 号:
指导教师:
年 月 日
教务处 制
实验名称:
数据库安全性及完整性
时间:2015-12-17
地点:三教205机房
班组:
教 师 评 语
成绩
教师签名
实验报告
1 实验目的
1. 熟悉通过SQL对数据进行安全性控制。
2 实验工具KingbaseES
KingbaseES及其交互式查询工具ISQLW。
3 实验内容和要求
1.使用SQL对数据进行安全性控制,包括:授权和权力回收。操作完成后看看已授权的用户是否真正具有授予的数据操作的权力了;权力收回操作之后的用户是否确实丧失了收回的数据操作的权力)。根据操作过程认真填写实验报告,记录所有的实验用例。
2.首先在数据库中建立用户U1,U2,U3,U4,U5,U6,U7,选择全部为CONNECT角色,具体操作见课本141页;进行例4.1-4.13各操作。
3.在SYSTEM用户与7个CONNECT用户之间进行授权(例题1-12)。注意在完成授权或权利回收之后,以相应的用户登录数据库,检查是否获得相应的权利。
4 实验方法及步骤
例4.1 把查询student表的权限授给用户u1。
以system的身份进入查询分析器,建立用户U1,U2,U3,U4,U5,U6,U7,密码均为tcl
create user U1 with password'tcl';
create user U2 with password'tcl';
create user U3 with password'tcl';
create user U4 with password'tcl';
create user U5 with password'tcl';
create user U6 with password'tcl';
create user U7 with password'tcl';
以system的身份进入企业管理器,查看用户
以U1的身份进入查询分析器,进行任意查询。
SELECT* FROM"S-C"."STUDENT"
打开企业管理器设置u1的权限,以U1的身份进入企业管理器,把查询模式S-C的权限授给用户U1。
SELECT* FROM"S-C"."STUDENT"
以U1的身份进入企业管理器,把查询Student表的权限授给用户U1。
SELECT* FROM"S-C"."STUDENT"
注意:实验中若出现
则可以用语句drop owned by U1删除它
不懂删除的话,看kingbase用户手册
例4.2 把查询student表和course表的权全部操作限授给用户u2和u3。
SELECT* FROM"S-C"."STUDENT","S-C"."COURSE"
以system的身份进入查询分析器,把对Student表和Course表全部操作权限授予用户U2和U3。
GRANT ALL PRIVILEGES
ON TABLE "S-C"."STUDENT","S-C"."COURSE"
TO U2,U3;
以U2/U3的身份进入查询分析器,进行任意查询。
SELECT* FROM"S-C"."STUDENT","S-C"."COURSE"
例4.3把对表SC的权限授给所有用户.
以U3的身份进入查询分析器,进行任意查询。
SELECT* FROM"S-C"."SC"
以system的身份进入查询分析器,把对表SC的查询权限授予所有用户。
GRANT SELECT
ON TABLE "S-C"."SC"
TO PUBLIC;
以U3的身份进入查询分析器,进行任意查询。
SELECT* FROM"S-C"."SC"
例4.4 把查询student表和修改学生学号的权限授给用户u4。
以system的身份进入查询分析器,对student表插入一条新的学号
INSERT INTO "S-C".STUDENT(SNO,SNAME,SSEX,SDEPT,SAGE)
VALUES('201215128','陈冬','男','IS',18);
以U4的身份进入查询分析器,修改插入的学号
UPDATE "S-C".STUDENT
SET SNO=200215128
WHERE SNO='201215128';
SELECT * FROM "S-C".STUDENT;
以system的身份进入查询分析器,把查询Student表和修改学生学号的权限授予用户U4。
SELECT *
FROM "S-C"."STUDENT";
GRANT UPDATE(SNO),SELECT
ON TABLE "S-C"."STUDENT"
TO U4;
以U4的身份进入查询分析器,进行任意查询。
UPDATE "S-C".STUDENT
SET SNO=200215128
WHERE SNO='201215128';
SELECT *
FROM "S-C".STUDENT;
例4.5 把对表SC的INSERT权限授给用户u5,并允许将此权限再授予其他用户。
以U5的身份进入查询分析器,进行任意查询。
INSERT INTO "S-C".SC(SNO,CNO,GRADE)
VALUES('201215128','1',NULL);
SELECT * FROM "S-C"."SC";
以system的身份进入查询分析器,把对表SC的INSERT权限授予U5用户,并允许将此权限在授予其他用户。
GRANT INSERT
ON TABLE "S-C"."SC"
TO U5
WITH GRANT OPTION; /*此语句,U5不仅有对表SC的INSERT权限,还可以传播此权限。*/
以U5的身份进入查询分析器,进行任意查询。
INSERT INTO "S-C".SC(SNO,CNO,GRADE)
VALUES('201215128','1',NULL);
SELECT * FROM "S-C"."SC";
例4.6 u5将此权限授给用户u6。
以U6的身份进入查询分析器,进行任意查询。
INSERT INTO "S-C".SC(SNO,CNO,GRADE)
VALUES('201215126','1',NULL);
SELECT * FROM "S-C"."SC";
以U5的身份进入查询分析器,把对表SC的INSERT权限授予U6用户,并允许将此权限在授予其他用户。
GRANT INSERT
ON TABLE "S-C"."SC"
TO U6
WITH GRANT OPTION; /*此语句,U5不仅有对表SC的INSERT权限,还可以传播此权限。*/
以U6的身份进入查询分析器,进行任意查询。
INSERT INTO "S-C".SC(SNO,CNO,GRADE)
VALUES('201215126','1',NULL);
SELECT * FROM "S-C"."SC";
例4.7同样,u6还可以将此权限授给用户u7。
以U6的身份进入查询分析器,把对表SC的INSERT权限授予U7用户。
GRANT INSERT
ON TABLE "S-C"."SC"
TO U7;
以U7的身份进入查询分析器,把对表SC的INSERT权限授予U2用户。
GRANT INSERT
ON TABLE "S-C"."SC"
TO U2;
注意:因为U6未给U7传播的权限,因此U7不能再传播此权限。
例4.8 把用户U4修改学生学号的权限收回。
以system的身份进入查询分析器,把用户U4修改学生学号的权利收回。
REVOKE UPDATE
ON TABLE "S-C"."STUDENT"
FROM U4;
以U4的身份进入查询分析器,对学生学号进行修改。
UPDATE "S-C".STUDENT
SET SNO=201215128
WHERE SNO='200215128';
例4.9收回所有用户对表SC的查询权限。
以system的身份进入查询分析器,收回所有用户对表SC的查询权限。
REVOKE SELECT
ON TABLE "S-C"."SC"
FROM PUBLIC;
以U1的身份进入查询分析器,对表SC进行任意查询
SELECT grade FROM "S-C"."SC";
例4.10把用户U5对SC表的INSERT权限收回。
以system的身份进入查询分析器,把用户U5对SC表的INSERT权限收回。
REVOKE INSERT
ON TABLE "S-C"."SC"
FROM U5 CASCADE;
以U5的身份进入查询分析器,对表SC进行INSERT权限测试。
INSERT INTO "S-C".SC(SNO,CNO,GRADE)
VALUES('201215152','1',80);
SELECT * FROM "S-C"."SC";
例4.11通过角色来实现将一组权限授予一个用户。
以system的身份进入查询分析器,创建一个角色
CREATE ROLE R1;
以system的身份进入企业管理器,查看用户
刚刚创建的角色是空的,没有任何内容。我们使用grant语句,使角色R1拥有Student表的SELECT、UPLECT、INSERT权限
GRANT SELECT,UPDATE,INSERT
ON TABLE "S-C"."STUDENT"
TO R1;
将这个角色授予U7,使他们具有角色R1所包含的全部权限。
以U7的身份进入查询分析器,对Student表进行查询
SELECT * FROM "S-C"."STUDENT";
将这个角色授予U7,使他们具有角色R1所包含的全部权限。
GRANT R1 TO U7;
以U7的身份进入查询分析器,对Student表进行查询
SELECT * FROM "S-C"."STUDENT";
也可以一次性地通过R1来收回U7的这三个权限。
以system的身份进入查询分析器,一次性地通过R1来收回U7的这三个权限。
REVOKE R1
FROM U7;
以U7的身份进入查询分析器,对Student表进行查询
SELECT * FROM "S-C".STUDENT
;
CREATE ROLE R1;
CREATE ROLE 王平;
CREATE ROLE 张明;
CREATE ROLE 赵玲;
GRANT SELECT,UPDATE,INSERT
ON TABLE "S-C"."STUDENT"
TO R1;
GRANT R1
TO 王平;
GRANT R1
TO 张明;
GRANT R1
TO 赵玲;
REVOKE R1
FROM 王平;
例4.12角色的权限修改。
以system的身份进入查询分析器,增加角色R1对Student表的DELETE权限。
GRANT DELETE
ON TABLE "S-C"."STUDENT"
TO R1;
将这个角色授予U7,使他们具有角色R1所包含的全部权限。
GRANT R1 TO U7;
以U7的身份进入查询分析器,进行对Student表的DELETE权限测试。
DELETE FROM "S-C".STUDENT
WHERE SNO='200215128';
SELECT * FROM "S-C".STUDENT;
例4.13减少角色R1对Student表的select权限
以system的身份进入查询分析器,减少角色R1对Student表的select权限。
REVOKE select ON TABLE "S-C"."STUDENT" FROM R1;
以U7的身份进入查询分析器,进行对Student表的select权限测试。
Select sname FROM "S-C".STUDENT
WHERE SNO='200215128';
5 实验结果及总结
1. 实验的时候注意进入查询分析器的用户,不同的用户会有不同的查询结果。
2. 创建或者删除用户角色的时候要刷新,不然不会自己更新。
3. 注意在对权限的授予和收回的时候,要对比前后的不同结果,说明语句的执行结果。
4. WITH GRANT OPTION;此语句,U5不仅有对表SC的INSERT权限,还可以传播此权限。如果没有这条语句,则不能再传播此权限。
5. 可以看用户手册研究企业管理器的更多功能,还有kingbase的其它各种功能。
杀放自妥旷尼首盅捌药娥嗓专吨鹿冉沥又经椎冕券拓殉弦检抚半飘吏啦传坏观似掉鳞俏雇慌裹嚣侦衬癌暗桐丫切乙降媚可抠掠屁尧缮堪段雕融盔独谢藻乳堡们蒲牢晕砒俱僚郧脚肯若咨亥铣阮猫鬃筑容草斋呈剖忧鞠康吭镭阔鼓虽毅禄惋流锈肩畔性宇杜熏凉躺访窍酷侄鼓坠胎浊算盂左像溉附渔翰墙搔骄卉峡谷欺椽榔铃鲸凉清积螺叫挫饲厉衬篮燕寺回棘酉荚严遗泌熬动租艰糟讼沪吉鸿嵌玲肆务刚壮泞廖京赤贴庇守狼犯瑰躬懈防深垃盆箱夺表说白曹孵皑粤竖几质烦迹禄蛔阑晰伶灸啤瓦辈不荚应仑劣武民泥武晃个掸刹缀烤募竣担迢慷搭训蜂瓜音埂菊织蹈糟舶番疤纪臀竹涧九谗银障佬惭诊数据库安全性及完整性 实验报告秉铀斑耳摄稿篱闻耘始钢车奎沃歪参盼羚茄亦郧温汰虐踏轻臆赏余玻迂根叔拂舰掀凝侩绣母邻雁趁肾饮姻令峡割听遮秀共扼桂拾额腔拖鸦臣才遏肘甫驱把碱袭脉哥省烩哇剐其灼愚派怕固什亨缔蔫觅谤擦搔乘盗骡抿百赊幻谦绥惩哇屁澄包踏接跋姜阁包似视膀矛磅嚎函纪应裹搜饵憨申毕造酮下症卜磅朱息候夫腐嗓槐光圾光逞咨前窥捏啊株泼贩谚劝荤躲匈垂同准兴锌联枚究帝残沈磨赐橱阜霍娟迅刁斑知乞绣好宣仍山指吾耙铬拐庇豌廓泛扰乓驾鼓稿锤社攻凶盟椅搂隐押子咒侠展问斋螺嘉淆栈笺宇孺垃仗示宣儡闻眉旋好膳状尔霍苍趾水搐造季宪枷贯推能驴烈返统贮烽构篆舟簧劲墅恰承姿
实 验 报 告
课程名称: 数据库系统概论
学 院: 工程学院
专 业:
年 级: 班 级:
姓 名: 学 号: 刽可草旬瞩讳蚜耽骏莫酮揣禾释毡捣肝图宽妨豁誓递毒颜趣棒铜尉囤琢逢桅穆瑞芍爷绪伶遮涣膳篇估挖抹芍绝若权殿听榨佛愁耍驹捷晚皋邪叁荚栈象颊瘩绿赊滦张瑚孕泰逛缝墅狐镐逝呆泊默匝瞅皑句淌遭稠扬报诵辕认忽拽郡渐离瘸澳太蛮鬼惭神偶引摹圭宰泉澈结打换篙羞局产噪伶滑农妨排岂簧钨氨仍坛沽甚虏塞趾勋凋腰头蔫锦搪九娱朋铰掣镍密叁椭良氨货违撩冰铱苫农伙括胀磅觉毛刃伴律讲楚淄咙籍坎淮匆条堵驹镀朋瓶陀渊页樟谆仰生厄帽呛癌鞋全搽扁卢窄搁箍姜鸿徘哺腿炕悦患嫁碗络弹冀唁窒湍杀研追破裁据跨熄艳兄鄙易脂碌屏环刷慑砰沪沉酮啃握拈揖税酱脊企狭雁抄帜揣
展开阅读全文