




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会计学1 节节 数据库安全和完整性约束数据库安全和完整性约束 8.1.1 8.1.1 视图的定义和查询修改视图的定义和查询修改 (1) 定义视图,可以限制各个用户的访问范围;定义视图,可以限制各个用户的访问范围; (2) 有些有些DBMS没有视图功能,但是系统可以根据没有视图功能,但是系统可以根据 用户的访问限制条件,自动的修改查询条件,使其只用户的访问限制条件,自动的修改查询条件,使其只 能在给定访问范围内查询。能在给定访问范围内查询。 第2页/共26页第1页/共26页 8.1.2 8.1.2 访问控制访问控制 访问控制访问控制(access control)是对用户访问数据库各种是对用户访
2、问数据库各种 资源资源的的权力权力的控制。的控制。 基表、视图、各种目录以及实用程序等基表、视图、各种目录以及实用程序等 创建、撤销、查询、增、删、改等创建、撤销、查询、增、删、改等 在同一在同一DBMS下,可能建立多个数据库,访问控下,可能建立多个数据库,访问控 制在数据库之间是相互独立的。制在数据库之间是相互独立的。 第3页/共26页第2页/共26页 数据库用户:数据库用户: 1.一般数据库用户;一般数据库用户; 2.具有支配数据库部分资源权限的数据库用户;具有支配数据库部分资源权限的数据库用户; 3.具有具有DBA特权的数据库用户特权的数据库用户 DBMS须解决:须解决:用户的标识与鉴别
3、用户的标识与鉴别以及以及授权(授权(grant- revoke)的问题。的问题。 第4页/共26页第3页/共26页 在数据库中,许多用户的权限相同,如分别授权,在数据库中,许多用户的权限相同,如分别授权, 十分繁琐,可以为他们定义一个角色。十分繁琐,可以为他们定义一个角色。 对角色授权,某用户承担某种角色就拥有该角色对角色授权,某用户承担某种角色就拥有该角色 的权限,一个用户可以拥有多个角色和其他权限。的权限,一个用户可以拥有多个角色和其他权限。 角色不是用户,不能用做登陆!角色不是用户,不能用做登陆! 第5页/共26页第4页/共26页 8.3 8.3 完整性约束检查完整性约束检查 8.3.1
4、 完整性约束的类型完整性约束的类型 以关系数据模型为例分类。以关系数据模型为例分类。 1. 静态约束静态约束(static constraints) (1) 固有约束固有约束(inherent constraints) 第一范式第一范式 (2) 隐含约束隐含约束(implicit constraints) 用用DDL说明,例如:域完整性、实体完整性、说明,例如:域完整性、实体完整性、 引用完整性等。引用完整性等。 (3) 显式约束显式约束(explicit constraints) 依赖于数据的语义和应用。依赖于数据的语义和应用。 第6页/共26页第5页/共26页 2. 动态约束动态约束(dy
5、namic constraints) 不是对数据库状态的约束,而是数据库从一个状态转到另一个状态时要遵守的约束。不是对数据库状态的约束,而是数据库从一个状态转到另一个状态时要遵守的约束。 第7页/共26页第6页/共26页 8.3.2 完整性约束的说明完整性约束的说明 约束的显式说明方法:约束的显式说明方法: 1.用过程说明约束用过程说明约束 让应用程序完成约束的说明和检验。让应用程序完成约束的说明和检验。 缺点:缺点:检验分散在应用程序中,增加程序员的负担,约束改变会导致程序要修改。检验分散在应用程序中,增加程序员的负担,约束改变会导致程序要修改。 优点:优点:容易实现,目前应用较多。容易实现
6、,目前应用较多。 第8页/共26页第7页/共26页 2.用断言用断言(assertions)说明约束说明约束 DBMS提供断言说明语言,用此语言可以写出数据库完整性断言,由系统编译成约束库提供断言说明语言,用此语言可以写出数据库完整性断言,由系统编译成约束库(constraint base) 。 DBMS的完整性控制子系统,对每个更新事务,用相关断言进行检查,如果发现违反约束,就回卷该事务。的完整性控制子系统,对每个更新事务,用相关断言进行检查,如果发现违反约束,就回卷该事务。 例如:例如:Assert 余额约束余额约束 on 储蓄帐:余额储蓄帐:余额 0 第9页/共26页第8页/共26页 缺
7、点:缺点:实现复杂,开销大,处理单一。实现复杂,开销大,处理单一。 优点:优点:集中控制,用户不编程,维护方便;集中控制,用户不编程,维护方便; 3.用触发子用触发子(triggers)表示约束表示约束 触发子是一种软件机制,形如:触发子是一种软件机制,形如: whenever then Event(激活触发器激活触发器) Condition(检验触发器的条件是否满足检验触发器的条件是否满足) Actions(触发器运行后的动作触发器运行后的动作) 第10页/共26页第9页/共26页 传统的数据库系统只能按照用户或应用程序的要求,对数据库进行操作,而不能根据发生的事件或数据库的状态主动进行相应
8、的处理,这样的数据库系统是被动的。传统的数据库系统只能按照用户或应用程序的要求,对数据库进行操作,而不能根据发生的事件或数据库的状态主动进行相应的处理,这样的数据库系统是被动的。 主动数据库系统就是具有主动数据库功能的数据库系统。主动数据库系统就是具有主动数据库功能的数据库系统。 第11页/共26页第10页/共26页 问题:主动数据库系统和关系数据库系统、面向对象数据库系统的区别和联系?问题:主动数据库系统和关系数据库系统、面向对象数据库系统的区别和联系? 主动数据库只是数据库系统的一种功能!主动数据库只是数据库系统的一种功能! 第12页/共26页第11页/共26页 假假 设有下列三个关系:设
9、有下列三个关系: Sailors(sid, sname, rating, birth, masterSailors(sid, sname, rating, birth, master)/ /* *分别为水手的编号、名字、级别、出生日期、师父的编号,每个水手的师父也是水手分别为水手的编号、名字、级别、出生日期、师父的编号,每个水手的师父也是水手* */ / Boats(bid, bname, color)Boats(bid, bname, color) / /* *分别为船的编号、名字、颜色分别为船的编号、名字、颜色* */ / Reserves(sid, bid, day)Reserves(s
10、id, bid, day) / /* *分别为订船水手编号、所订船编号、日期分别为订船水手编号、所订船编号、日期* */ / 第13页/共26页第12页/共26页 范例范例. .引用完整性规则的实现引用完整性规则的实现 以以Sailors,Boats,Reserves三张表为例,写出实现引三张表为例,写出实现引 用完整性约束的规则。用完整性约束的规则。 有哪些操作会影响到三张表间的引用完整性?有哪些操作会影响到三张表间的引用完整性? n Reserves表的表的Insert操作操作 n Sailors表的表的Delete操作操作 n Boats表的表的Delete操作操作 n Reserves
11、表的表的Update操作操作 n Sailors表的表的Update操作操作 n Boats表的表的Update操作操作 是否对所有属性的是否对所有属性的Update操操 作都影响引用完整性?作都影响引用完整性? 第14页/共26页第13页/共26页 规则规则1 1 创建触发器,对创建触发器,对Reserves表的表的InsertInsert操作进行监控,如操作进行监控,如 果插入元组的外键属性在果插入元组的外键属性在Sailors和和Boats表中不存在表中不存在, ,回卷回卷 插入该记录的操作。插入该记录的操作。 Create trigger referential_integrity_c
12、heck Before Insert on Reserves Referencing NEW as N For Each Row Event 第15页/共26页第14页/共26页 When (not (exists(Select * From Sailors Where sid = N.sid) and (exists(Select * From Boats Where bid = N.bid) ) Rollback; Condition Action 第16页/共26页第15页/共26页 规则规则2 2 创建触发器,对创建触发器,对Boats表的表的Delete操作进行监控,如果操作进行监控
13、,如果 删除元组的主键是删除元组的主键是Reserves表中的外键表中的外键, ,回卷删除该记录的回卷删除该记录的 操作。操作。 Create trigger boats_delete Before Delete on Boats Referencing OLD as O For Each Row Event 第17页/共26页第16页/共26页 When (exists(Select * From Reserves Where bid = O.bid) Rollback; Condition Action 第18页/共26页第17页/共26页 规则规则3 3 创建触发器,对创建触发器,对Sa
14、ilors表的表的Delete操作进行监控,如果操作进行监控,如果 删除元组的主键是删除元组的主键是Reserves表中的外键表中的外键, ,则将则将Reserves表中表中 的相关记录删除。的相关记录删除。 Create trigger sailors_delete After Delete on Sailors Referencing OLD as O For Each Row Event 第19页/共26页第18页/共26页 When (exists(Select * From Reserves Where sid = O.sid) Delete From Reserves Where
15、sid = O.sid; Condition Action 第20页/共26页第19页/共26页 规则规则4 4 创建触发器,对创建触发器,对Reserves表的表的UpdateUpdate操作进行监控,如操作进行监控,如 果修改元组果修改元组sidsid和和bidbid属性值在属性值在Sailors和和Boats表中不存在表中不存在, , 回卷修改该记录的操作。回卷修改该记录的操作。 Create trigger referential_integrity_check Update of sid,bid on Reserves Referencing NEW as N For Each Ro
16、w Event Before 第21页/共26页第20页/共26页 When (not (exists(Select * From Sailors Where sid = N.sid) and (exists(Select * From Boats Where bid = N.bid) ) Rollback; Condition Action 第22页/共26页第21页/共26页 规则规则5 5 Create trigger sailors_sid_update Before Update of sid on Sailors Referencing Old as O For Each Row
17、When (exists(Select * From Reserves Where sid = O.sid) Rollback; 创建触发器,对创建触发器,对SailorSailors表的表的Update操作进行监控,如操作进行监控,如 果果ReservesReserves表中有元组引用修改前的表中有元组引用修改前的sidsid值作为外键值作为外键, ,回卷回卷 此修改操作。此修改操作。 第23页/共26页第22页/共26页 监视监视SailorsSailors表上的表上的InsertInsert操作,对每条操作,对每条InsertInsert语句,判断其插入后的元组是否有年龄小于语句,判断其插入后的元组是否有年龄小于1818的水手,将这样的水手自动插入到的水手,将这样的水手自动插入到YoungSailorsYoungSailors表中(表中(YoungSailorsYoungSailors表与表与SailorsSailors表的模式相同)。表的模式相同)。 规则规则6 6 问题:与上面各题创建触发器的范例有什么不同?如问题:与上面各题创建触发器的范例有什么不同?
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (正式版)DB15∕T 3351-2024 《饲用燕麦草饲喂评价》
- 电力职称考试题及答案
- 电工考试题及模拟答案
- 信息安全管理制度与技术规范模板
- (正式版)DB15∕T 3255-2023 《胡萝卜大棚繁种蜜蜂授粉技术规程》
- (正式版)DB15∕T 3234-2023 《苜蓿混作饲用燕麦干草调制技术规程》
- 三基三严题库及答案护理简答题
- 大雪封山考试题及答案
- 招聘与人才筛选工作表标准化人才评估流程优化版
- 企业营销推广计划标准模板(包含预算编制)
- 2024-2025学年统编版(2024)初中历史七年级下册(全册)教学设计(附目录P162)
- 国网安规培训课件
- 干部教育培训工作条例解读
- 机械设计方案评审
- 《婴幼儿睡眠习惯培养》课件
- 公司有关进一步改组股份合作制实施方案
- 房建工程监理规划范本
- 高速通信管道迁改施工方案
- USP 62-非无菌产品的微生物检验特定微生物的试验CN
- 2025-2030年地域风味酱板鸭行业跨境出海战略研究报告
- 2025年一季度全院难免压疮风险评估上报总结分析(二篇)
评论
0/150
提交评论