版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库管理系统规定,想要在数据库中操作数据的用户必须拥有相应的访问权限。访问权限由两个元素组成:数据对象和操作类型。定义用户的访问权限意味着定义用户可以对哪些数据对象执行哪些类型的操作。在数据库系统中,定义用户访问权限称为授权。不同的操作对象有不同的操作权限,例如:用户U2和U3拥有对SC表和课程表的所有权限,U2和U3拥有对课程表和课程表的所有权限;例如:向表SC上的所有用户授予查询权限,向公众授予表SC上的选择权限;例如:授予用户U4,授予更新(SnO),在学生表中选择U4有权查询学生表和修改学生id;示例:数据库管理员将在SPJ数据库中创建表的权限分配给用户1,并将SPJ数据库上的“创建
2、”选项卡授予用户1;例如:取消用户U6修改学号的权限,从U6撤销对学生表的更新(SnO);角色创建:CREATEROLE名称,角色是一组权限,它可以从一组具有相同权限的用户创建一个角色。使用角色管理数据库权限可以简化授权过程,并将角色授予其他用户或角色:致,通过管理选项,角色授予/撤销授权:授予,打开至,撤销授权3333。例如,将表S的查询、修改、插入和删除权限授予用户张萍、李梅、王玲、黄海和CREATE ROLE R1;向R1授予对表S的选择、插入、更新、删除权限;授予张萍、李梅、王玲、黄海R1;示例:将前面示例中R1的角色更改为仅查询权限,从R1撤销对表S的插入、更新和删除;表7-1授权表
3、的示例,第7章数据库安全保护,7.2完整性控制,7.2.1数据完整性含义,创建表SC (snochar (9),Cnochar (4),Grade Int,主键(SnO,cno),外键(SnO)引用s (SnO)在删除学生表中的元组时cade/*在删除学生表中的元组时,case删除SC */ON UPDATE CADED/*在更新学生表中的元组时,CaSe */外键(cno)引用c 删除时不执行任何操作/*删除课程中的元组时拒绝删除会导致与课程不一致*/在更新课程中的元组时更新课程中的元组*/); 示例:用户定义的完整性检查示例:定义:用户定义的完整性检查的默认处理:当插入或更新一个表时,RD
4、BMS将根据用户定义的完整性规则自动检查该检查,如果不满足,它将拒绝执行:创建表sc (snochar (9)不为空,cnochar (4)不为空,Grade INT CHECK (GRADE介于0和100之间),PRIMARY KEY (Sno,Cno),FOREDIAN KEY(Sno)REFERENCES S(Sno),FOREDIAN KEY(Cno)REFERENCES C(Cno);例如,当性别为男性时,其名称不能以ms开头,创建表学生(snochar (9)主键snake char (20)非空唯一,Ssex CHAR(2) CHECK (Ssex in(女性或男性),Sage
5、SMALINT CHECK(Sage 0和Sage40),Sdept CHAR(20),);CHECK (Ssex=雌性或Sname不喜欢MS %)/*定义元组中Ssex和Sname属性值之间的约束*/,7.2.3触发器,它是一个特殊的存储过程,是一个在表中添加、删除和删除数据时自动触发和执行的程序(即SQL),触发器主要用于实现主键和外键所不能保证的引用完整性和数据一致性。它还可以完成更复杂的数据完整性约束,这是普通约束难以实现的。触发器是在表上创建的触发器。在触发执行之前,系统自动在内存中创建两个临时表:删除表和插入表。插入行时:INSERTED表保存插入行的副本。删除行时:DELETED
6、表保存已删除行的副本。更新行时:新行的副本保存在INSERTED表中,旧行的副本保存在DELETED表中。一旦触发器被执行,这两个表将消失。简而言之:已删除表:用于临时保存要删除的行或旧行(指更新前的行)已插入表:用于临时保存更新时要插入的行或新行,触发类型AFTER触发器:只能在对表进行一定操作后触发。您可以为表的同一个操作定义多个触发器而不是触发器:您可以为同一个操作只定义一个触发器而不是触发器,而不是执行已定义的操作。在查询分析器中触发创建:在企业管理器中创建:1。用Transact-SQL语句定义触发器的格式:在|上为|创建触发器名称,在|之后,而不是插入、更新、删除为;其中,AFTE
7、R触发器也称为后触发器,它将在数据更改后触发(更新、插入和删除操作),而AFTER与指定的FOR代替相同,后者也称为前触发器,在数据更改前触发。并且不改变数据操作(更新、插入和删除操作),而是执行由触发器定义的操作,例如,创建触发器_1,以便在修改学生课程课程中的数据时显示提示消息“学生课程已被修改”。使用学生课程数据库在课程上创建触发器_ 1,以打印形式更新。学生课程已被修改,例如:创建触发器_2,因此当删除学生课程中的课程记录时,相应学生课程选择表中与该课程相关的所有课程选择记录都将被删除,go,USE学生课程数据库GO,create trigger_2,on course,for del
8、ete as,delete sc,from sc,deleted,where sc。课程编号=已删除。课程编号,例如:创建触发器trigger_3,可以认识到,当学生的课程计划课程中某一课程的课程编号被修改时,相应学生的课程选择表sc中的课程编号也被修改,使用学生课程数据库go create trigger _ 3 on Course for UPDATE好像update/*来确定此列是否被修改*/BEGIN UPDATE SC SET courseNo。=(选择课程编号。从sc插入),从sc删除。课程编号。=已删除。课程编号。结束,开始,2。用Transact-SQL语句修改触发器的格式:在
9、更新、插入、删除为后,在|上为|而不是|更改触发器,3。使用Transact-SQL语句删除触发器格式:DROP TRIGGER,修改触发器名称:sp_rename trigger原始名称,新名称,示例:如果已经创建了trigger_1,则有必要现在对其进行修改,并且需要将显示的提示消息(“学生课程已修改”)更改为“学生课程中课程编号为XXX的记录已修改”。使用学生课程数据库go将课程上的trigger _ 1更改为trigger _ 1以更新为声明kchchar (3)选择kch=课程编号FROM已删除打印学生课程中课程编号为kch的记录已被修改GO,使用企业管理器创建触发器,使用企业管理器
10、创建触发器(续),使用企业管理器创建触发器(续),7.3并发控制,7.3.1并发控制概述,7.3.2封锁,7.3.3封锁协议,7.3.4活锁和死锁,7.3.5并发调度的可串行化, 7.3.6两阶段锁定协议,当每个用户访问数据库中的数据时,可以串行执行,也可以多个用户并行访问数据库。7.3.1并发控制概述,串行执行意味着当一个用户运行一个程序时,其他用户程序必须等到这个用户程序结束才能访问数据库,因此如果一个用户程序涉及大量的数据输入/输出交换,数据库系统将在大部分时间处于空闲状态。因此,为了充分利用数据库资源,数据库用户经常并行访问数据库系统中的数据,这就导致了多个用户同时访问同一个数据块的情
11、况。如果并发操作不受控制,可能会生成不正确的数据,数据的完整性将被破坏。并发控制就是解决这些问题,以保持数据库中数据的一致性。,7.3.1并发控制概述,1。事务,概念:是用户定义的数据库操作序列,它是一个不可分割的工作单元。事务和程序事务和程序是两个概念。一般来说,一个程序包含许多事务,一个事务可以是一条SQL语句,一组SQL或整个程序事务是恢复和并发控制的基本单位。并发控制概述,包括定义事务的语句,显式定义方法:开始事务开始事务SQL语句1 SQL语句1 SQL语句2 SQL语句2 COMMIT ROLLBACK,COMMIT事务通常结束COMMIT事务的所有操作(读取更新),事务中对数据库
12、的所有更新永久生效,其中:ROLLBACK事务异常终止事务,并且在运行过程中出现故障,因此回滚事务的所有更新操作都无法继续。事务回滚到初始状态,事务特征(事务的ACID准则)、事务特征(事务的ACID准则)、事务特征(事务的ACID准则)和事务执行的结果必须组成数据库,因此,当数据库只包含成功提交事务的结果时,就表示数据库处于一致状态。如果数据库系统在操作中失败,并且一些事务在完成之前被中断,系统将撤消事务中数据库上所有已完成的操作,并回滚到事务开始时的一致状态。交易特征(ACID交易标准),交易特征(ACID交易标准),7.3.1并发控制概述,例如,银行,“将资金额r从账号a转到账号b”是一
13、个典型的交易,它包括两个操作,即从账号a中减去资金额r和增加账号b中的资金额r,如果只执行其中一个操作,数据库将处于不一致的状态,导致会计问题。也就是说,这两个操作要么完成,要么根本不完成,否则它们就不能成为事务。事务的完整描述如下:如果A0/* a不足,则开始事务读取aa-R */开始显示“a不足”回滚结束ELSE /*拨款*/开始BB R显示“拨款已完成”COMMIT END,7.3.1并发控制概述,事务的串行执行:事务可以一个接一个地串行执行,也就是说,每次只运行一个事务,其他事务必须等到事务结束后才能运行。如果串行执行使系统的许多资源空闲。为了充分利用系统资源,充分发挥数据库共享的特点
14、,应该允许多个事务并行并发执行。单处理器系统:事务的并发执行实际上意味着这些事务在并行操作中交替执行,即交叉并发模式可以减少处理器的空闲时间,提高系统的效率。多处理器系统:每个处理器可以运行一个事务,多个处理器可以同时运行多个事务。实现了多个事务的真正并行操作,即同时并发执行。事务的串行执行:事务可以一个接一个地串行执行,也就是说,每个时刻只有一个事务运行,其他事务必须等到事务结束后才能运行。如果串行执行使系统的许多资源空闲。为了充分利用系统资源,充分发挥数据库共享的特点,应该允许多个事务并行并发执行。单处理器系统:事务的并发执行实际上意味着这些事务在并行操作中交替执行,即交叉并发模式可以减少处理器的空闲时间,提高系统的效率。多处理器系统:每个处理器可以运行一个事务,多个处理器可以同时运行多个事务。实现了多个事务的真
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年保险从业资格《保险基础知识》考试真题(完整版)
- 2026年中学教师资格证笔试教育知识与能力真题汇编卷
- 护理急救技术与配合
- 崇左市城管执法支队临时工劳动合同范本三篇
- 新生儿肺炎的病情观察与护理要点
- 护理课件宝库让你的护理学习充满动力
- 护理不良事件中的皮肤问题预防措施与策略
- 护理实习中的患者教育与支持
- 斜疝患者饮食护理建议
- 水痘预防性治疗的护理配合
- 铸件尺寸公差ISO-8062-3
- GB/T 19243-2003硫化橡胶或热塑性橡胶与有机材料接触污染的试验方法
- GB/T 13683-1992销剪切试验方法
- GB/T 11352-2009一般工程用铸造碳钢件
- PET成像原理教育课件
- 零星维修施工组织设计方案方案
- 中国书法简史课件
- Pilon骨折精品课件
- 康复心理学试卷及答案
- 化粪池 (有限空间)作业安全告知牌及警示标志
- T∕CGMA 033001-2018 压缩空气站能效分级指南
评论
0/150
提交评论