第9章数据库完整性与安全.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章数据库完整性与安全.doc

第章 数据库完整性core的若干权限分别授予用户u1、u2、u3、u4、u5和u6。 ① 将表Score的所有权限授予用户u1,且可以转授权限。 GRANT all ON Score TO u1 WITH GRANT OPTION ② 用户u1将表Score的所有权限授予用户u2,且可以转授权限。 GRANT all ON Score TO u2 WITH GRANT OPTION ③ 用户u2将表Score的查询和插入权限授予用户u5,且不可以转授权限。 GRANT select, insert ON Score TO u5 ④ 用户u2将表Score的所有权限授予用户u4,且可以转授权限。 GRANT all ON Score TO u4 WITH GRANT OPTION ⑤ 用户u4将表Score的查询和删除权限授予用户u6,且可以转授权限。 GRANT select, delete ON Score TO u6 WITH GRANT OPTION 通过上述的授权,用户u1、u2、u3、u4、u5和u6分别得到的权限如图9-5所示。 授权用户 被授权用户 数据库对象 允许的操作 能否转授权限 DBA u1, u2, u3 过程proSearchBySno 执行权限 不能 DBA u3, u4, u5 表Student select, update 不能 DBA u1 表Class select, insert 能 DBA u1 表Score 所有权限 能 u1 u2 表Score 所有权限 能 u2 u5 表Score select, insert 不能 u2 u4 表Score 所有权限 能 u4 u6 表Score select, delete 能 图9-5 用户权限定义 [例9.7] 用户u2将转授给用户u4的对表Score的修改和查询权限收回。 REVOKE select, update ON Score FROM u4 CASCADE 本例必须级联收回,因为u4将该表的查询和删除权限转授给了u6。 [例9.8] 用户u4将转授给用户u6的对表Score的查询权限收回。 REVOKE select ON Score FROM u6 [例9.13] 在学生成绩表Score中将studentNo、courseNo定义为外码。 CREATE TABLE Score ( studentNo char(7) NOT NULL, --学号 courseNo char(3) NOT NULL, --课程号 score numeric(5, 1) default 0 NOT NULL --成绩 CHECK( score BETWEEN 0.0 AND 100.0), /* 主码由两个属性构成,必须作为表级完整性进行定义 */ CONSTRAINT ScorePK PRIMARY KEY (studentNo, courseNo), /* 表级完整性约束条件,studentNo是外码,被参照表是Student */ CONSTRAINT ScoreFK1 FOREIGN KEY (studentNo) REFERENCES Student(studentNo), /* 表级完整性约束条件,courseNo是外码,被参照表是Course */ CONSTRAINT ScoreFK2 FOREIGN KEY (courseNo) REFERENCES Course(courseNo) ) 在本例的定义中,表Score为参照表,表Student和Course为被参照表。表Score中studentNo属性列参照表Student中的studentNo列,其含义为:表Score中studentNo列的取值必须是表Student中studentNo列的某个属性值,即不存在一个未注册的学生选修了课程。表Score中courseNo属性列参照表Course中的courseNo列,其含义为:表Score中courseNo列的取值必须是表Course中courseNo列的某个属性值,即不存在学生选修了一门不存在的课程。 本例也可以改写为: CREATE TABLE Score ( ... /* 表级完整性约束条件,studentNo是外码,被参照表是Student */

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档