《数据库安全性及完整性-实验报告.pdf》由会员分享,可在线阅读,更多相关《数据库安全性及完整性-实验报告.pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实 验 报 告课程名称:数据库系统概论学院:工程学院专业:年级:班级:姓名:学号:指导教师:年月日教务处 制实验名称:数据库安全性及完整性时间:2015-12-17地点:三教 205 机房班组:教师评语成绩实验报告1 1 实验目的实验目的 1.熟悉通过 SQL 对数据进行安全性控制。教师签名2 2 实验工具实验工具 KingbaseESKingbaseESKingbaseES 及其交互式查询工具 ISQLW。3 3 实验内容和要求实验内容和要求 1.使用 SQL 对数据进行安全性控制,包括:授权和权力回收。操作完成后看看已授权的用户是否真正具有授予的数据操作的权力了;权力收回操作之后的用户是否
2、确实丧失了收回的数据操作的权力。根据操作过程认真填写实验报告,记录所有的实验用例。2. 2.首先在数据库中建立用户 U1,U2,U3,U4,U5,U6,U7,选择全部为 CONNECT 角色,具体操作见课本 141 页;进行例 4.1-。3. 3.在 SYSTEM 用户与 7 个 CONNECT 用户之间进行授权例题1-12。注意在完成授权或权利回收之后,以相应的用户登录数据库,检查是否获得相应的权利。4 4 实验方法及步骤实验方法及步骤例例 4.14.1 把查询把查询 studentstudent 表的权限授给用户表的权限授给用户 u1u1。以 system 的身份进入查询分析器,建立用户U
3、1,U2,U3,U4,U5,U6,U7,密码均为 tclcreate user U1 with passwordtcl;create user U2 with passwordtcl;create user U3 with passwordtcl;create user U4 with passwordtcl;create user U5 with passwordtcl;create user U6 with passwordtcl;create user U7 with passwordtcl;以 system 的身份进入企业管理器,查看用户以 U1 的身份进入查询分析器,进行任意查询。S
4、ELECT* FROMS-C.STUDENT打开企业管理器设置 u1 的权限,以 U1 的身份进入企业管理器,把查询模式S-C 的权限授给用户 U1。SELECT* FROMS-C.STUDENT以 U1 的身份进入企业管理器,把查询Student 表的权限授给用户 U1。SELECT* FROMS-C.STUDENT注意:注意:实验中假设出现则可以用语句 drop owned by U1删除它不懂删除的话,看 kingbase 用户手册例例 把查询把查询 studentstudent 表和表和 coursecourse 表的权全部操作限授给用户表的权全部操作限授给用户 u2u2 和和 u3u
5、3。SELECT* FROMS-C.STUDENT,S-C.COURSE以 system 的身份进入查询分析器,把对Student 表和 Course 表全部操作权限授予用户U2 和 U3。GRANT ALL PRIVILEGESON TABLE S-C.STUDENT,S-C.COURSETO U2,U3;以 U2/U3 的身份进入查询分析器,进行任意查询。SELECT* FROMS-C.STUDENT,S-C.COURSE例把对表例把对表 SCSC 的权限授给所有用户的权限授给所有用户. .以 U3 的身份进入查询分析器,进行任意查询。SELECT* FROMS-C.SC以 system
6、的身份进入查询分析器,把对表SC 的查询权限授予所有用户。GRANT SELECTON TABLE S-C.SCTO PUBLIC;以 U3 的身份进入查询分析器,进行任意查询。SELECT* FROMS-C.SC例例 把查询把查询 studentstudent 表和修改学生学号的权限授给用户表和修改学生学号的权限授给用户 u4u4。以 system 的身份进入查询分析器,对student 表插入一条新的学号INSERT INTO S-C.STUDENT(SNO,SNAME,SSEX,SDEPT,SAGE)VALUES(201215128,陈冬,男,IS,18);以 U4 的身份进入查询分析器
7、,修改插入的学号UPDATE S-C.STUDENTSET SNO=200215128WHERE SNO=201215128;SELECT * FROM S-C.STUDENT;以 system 的身份进入查询分析器,把查询Student 表和修改学生学号的权限授予用户U4。SELECT *FROM S-C.STUDENT;GRANT UPDATE(SNO),SELECTON TABLE S-C.STUDENTTO U4;以 U4 的身份进入查询分析器,进行任意查询。UPDATE S-C.STUDENTSET SNO=200215128WHERE SNO=201215128;SELECT *F
8、ROM S-C.STUDENT;例例 4.54.5 把对表把对表 SCSC 的的 INSERTINSERT 权限授给用户权限授给用户 u5u5,并允许将此权限再授予其他用户。,并允许将此权限再授予其他用户。以 U5 的身份进入查询分析器,进行任意查询。INSERT INTO S-C.SC(SNO,CNO,GRADE)VALUES(201215128,1,NULL);SELECT * FROM S-C.SC;以 system 的身份进入查询分析器, 把对表 SC 的 INSERT 权限授予 U5 用户, 并允许将此权限在授予其他用户。GRANT INSERTON TABLE S-C.SCTO U
9、5WITH 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 u54.6 u5 将此权限授给用户将此权限授给用户 u6u6。以 U6 的身份进入查询分析器,进行任意查询。INSERT INTO S-C.SC(SNO,CNO,GRADE)VALUES(201215126,1,NULL);SELECT * FROM S-C.
10、SC;以 U5 的身份进入查询分析器,把对表SC 的 INSERT 权限授予 U6 用户,并允许将此权限在授予其他用户。GRANT INSERTON TABLE S-C.SCTO U6WITH GRANT OPTION; /*此语句,U5 不仅有对表 SC 的 INSERT 权限,还可以传播此权限。*/以 U6 的身份进入查询分析器,进行任意查询。INSERT INTO S-C.SC(SNO,CNO,GRADE)VALUES(201215126,1,NULL);SELECT * FROM S-C.SC;例例 4.74.7 同样,同样,u6u6 还可以将此权限授给用户还可以将此权限授给用户 u7
11、u7。以 U6 的身份进入查询分析器,把对表SC 的 INSERT 权限授予 U7 用户。GRANT INSERTON TABLE S-C.SCTO U7;以 U7 的身份进入查询分析器,把对表SC 的 INSERT 权限授予 U2 用户。GRANT INSERTON TABLE S-C.SCTO U2;注意:注意:因为 U6 未给 U7 传播的权限,因此 U7 不能再传播此权限。例例 4.84.8 把用户把用户 U4U4 修改学生学号的权限收回。修改学生学号的权限收回。以 system 的身份进入查询分析器,把用户U4 修改学生学号的权利收回。REVOKE UPDATEON TABLE S-
12、C.STUDENTFROM U4;以 U4 的身份进入查询分析器,对学生学号进行修改。UPDATE S-C.STUDENTSET SNO=201215128WHERE SNO=200215128;例例 4.94.9 收回所有用户对表收回所有用户对表 SCSC 的查询权限。的查询权限。以 system 的身份进入查询分析器,收回所有用户对表SC 的查询权限。REVOKE SELECTON TABLE S-C.SCFROM PUBLIC;以 U1 的身份进入查询分析器,对表SC 进行任意查询SELECT grade FROM S-C.SC;例例 4.104.10 把用户把用户 U5U5 对对 SC
13、SC 表的表的 INSERTINSERT 权限收回。权限收回。以 system 的身份进入查询分析器,把用户U5 对 SC 表的 INSERT 权限收回。REVOKE INSERTON TABLE S-C.SCFROM U5 CASCADE;以 U5 的身份进入查询分析器,对表SC 进行 INSERT 权限测试。INSERT INTO S-C.SC(SNO,CNO,GRADE)VALUES(201215152,1,80);SELECT * FROM S-C.SC;例例 4.114.11 通过角色来实现将一组权限授予一个用户。通过角色来实现将一组权限授予一个用户。以 system 的身份进入查询
14、分析器,创建一个角色CREATE ROLE R1;以 system 的身份进入企业管理器,查看用户刚刚创建的角色是空的, 没有任何内容。 我们使用grant语句, 使角色R1拥有Student表的SELECT、 UPLECT、INSERT 权限GRANT SELECT,UPDATE,INSERTON TABLE S-C.STUDENTTO R1;将这个角色授予 U7,使他们具有角色 R1 所包含的全部权限。以 U7 的身份进入查询分析器,对 Student 表进行查询SELECT * FROM S-C.STUDENT;将这个角色授予 U7,使他们具有角色 R1 所包含的全部权限。GRANT R
15、1 TO U7;以 U7 的身份进入查询分析器,对 Student 表进行查询SELECT * FROM S-C.STUDENT;也可以一次性地通过 R1 来收回 U7 的这三个权限。以 system 的身份进入查询分析器,一次性地通过R1 来收回 U7 的这三个权限。REVOKE R1FROM U7;以 U7 的身份进入查询分析器,对 Student 表进行查询SELECT * FROM S-C.STUDENT;CREATE ROLE R1;CREATE ROLE 王平;CREATE ROLE 张明;CREATE ROLE 赵玲;GRANT SELECT,UPDATE,INSERTON TA
16、BLE S-C.STUDENTTO R1;GRANT R1TO 王平;GRANT R1TO 张明;GRANT R1TO 赵玲;REVOKE R1FROM 王平;例例 4.124.12 角色的权限修改。角色的权限修改。以 system 的身份进入查询分析器,增加角色R1 对 Student 表的 DELETE 权限。GRANT DELETEON TABLE S-C.STUDENTTO R1;将这个角色授予 U7,使他们具有角色 R1 所包含的全部权限。GRANT R1 TO U7;以 U7 的身份进入查询分析器,进行对Student 表的 DELETE 权限测试。DELETE FROM S-C.
17、STUDENTWHERE SNO=200215128;SELECT * FROM S-C.STUDENT;减少角色减少角色 R1R1 对对 StudentStudent 表的表的 selectselect 权限权限以 system 的身份进入查询分析器,减少角色R1 对 Student 表的 select 权限。REVOKE select ON TABLE S-C.STUDENT FROM R1;以 U7 的身份进入查询分析器,进行对Student 表的 select 权限测试。Select sname FROM S-C.STUDENTWHERE SNO=200215128;5 5 实验结果及总结实验结果及总结1. 实验的时候注意进入查询分析器的用户,不同的用户会有不同的查询结果。2. 创建或者删除用户角色的时候要刷新,不然不会自己更新。3. 注意在对权限的授予和收回的时候,要比照前后的不同结果,说明语句的执行结果。4. WITH GRANT OPTION; 此语句,U5不仅有对表SC的INSERT权限,还可以传播此权限。如果没有这条语句,则不能再传播此权限。5. 可以看用户手册研究企业管理器的更多功能,还有kingbase的其它各种功能。
限制150内