第六章 数据库保护
第6章 数据库的保护

第6章数据库的保护6.1 数据的安全性保护6.1.1 数据库安全性概述6.1.2 安全性控制的一般方法6.2 数据的完整性保护6.2.1 完整性的约束条件6.2.2 完整性控制6.2.3 触发器的概念触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它执行。
触发器经常用于加强数据的完整性约束和业务规则等。
1.触发器组成一个触发器有三个基本部件:触发事件或语句、触发器的限制、触发器动作。
触发事件或语句:为引起触发器激发的SQL语句,是对指定表INSERT、UPDATE或DELETE语句。
触发器限制:为一布尔表达式,当触发器激发时该条件必须为TRUE。
(在SQL Server 中,用户无法设置此项)触发器的动作:为一个SQL块(过程)。
当触发语句发出,触发器的限制计算得TRUE 时,它被执行。
在触发器动作的语句中,可使用触发器的处理的当前行的列值(新值、老值)。
2.触发器的作用触发器的主要作用就是能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。
除此之外,触发器还有其它许多不同的功能:(1)强化约束(Enforce restriction)触发器能够实现比CHECK 语句更为复杂的约束。
(2)跟踪变化(Auditing changes)触发器可以侦测数据库内的操作,从而不允许数据库中未经许可的指定更新和变化。
(3)级联运行(Cascaded operation)。
触发器可以侦测数据库内的操作,并自动地级联影响整个数据库的各项内容。
例如,某个表上的触发器中包含有对另外一个表的数据操作(如删除,更新,插入)而该操作又导致该表上触发器被触发。
(4)存储过程的调用(Stored procedure invocation)。
为了响应数据库更新触,发器可以调用一个或多个存储过程,甚至可以通过外部过程的调用而在DBMS(数据库管理系统)本身之外进行操作。
数据库保护方法

数据库保护方法数据库是现代信息系统中不可或缺的组成部分,它存储着组织的重要信息。
然而,数据库也面临着各种安全威胁,如未经授权的访问、数据泄露、数据篡改等。
为了保护数据库的安全性和完整性,需要采取一系列的保护方法。
本文将介绍几种常见的数据库保护方法。
1. 访问控制访问控制是数据库保护的基本手段之一。
通过限制用户对数据库的访问权限,可以防止未经授权的人员访问和修改数据。
可以通过以下几种方式实现访问控制:- 强化用户认证:采用强密码策略,要求用户使用复杂的密码,并定期更改密码。
- 用户权限管理:根据用户的职责和需要,分配不同的权限,限制其对数据库的操作。
- 定期审计:对用户的操作进行审计,及时发现异常情况。
2. 数据加密数据加密是数据库保护的重要手段之一。
通过对数据库中的敏感信息进行加密,可以防止数据在传输和存储过程中被窃取。
常见的数据加密方式有:- 数据传输加密:使用SSL/TLS等安全协议对数据进行加密,确保数据在传输过程中不被窃取。
- 数据存储加密:对数据库中的敏感数据进行加密保存,即使数据库被攻击或泄露,也能保证数据的机密性。
3. 完整性保护保证数据库的数据完整性是数据库保护的重要目标之一。
数据完整性是指数据的准确性和一致性。
以下是几种保护数据完整性的方法:- 数据备份与恢复:定期备份数据库,以防止数据丢失。
同时,备份数据需要加密存储,以保证数据的机密性。
- 日志记录与审计:记录数据库的操作日志,及时发现和恢复数据异常。
- 数据校验:通过在数据库中设置约束条件和触发器,对数据进行校验和验证,确保数据的一致性和准确性。
4. 防止SQL注入攻击SQL注入攻击是指攻击者通过在用户输入的数据中注入恶意的SQL 代码,从而实现对数据库的非法操作。
为了防止SQL注入攻击,可以采取以下措施:- 输入验证:对用户输入的数据进行有效性验证,过滤或转义特殊字符,防止恶意代码的注入。
- 使用参数化查询:使用参数化查询的方式执行数据库操作,将用户输入的数据作为参数传递,而不是直接拼接到SQL语句中。
第六章 数据库保护 全文-

2.死锁的诊断与解除数据库系统中诊断死锁的方法与操作系统类似,一般使用超时法或事务等待图法。超时法是指如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。
6.4 数据库中的并发控制
6.4.7 封锁粒度和意向锁1.封锁粒度封锁对象的大小称为封锁粒度。封锁对象可以是逻辑单元,也可以是物理单元。2.意向锁如果对以一个结点加意向锁,则说明该结点的下层结点正在被加锁;对任一结点加锁时,必须先对它的上层结点加意向锁。
6.3 数据库故障及恢复
6.3.1 数据库系统的故障1.事务故障事务故障是指由于事务内部的逻辑错误(如运算溢出、数据输入错、记录找不到等)或系统错误(如并发事务发生死锁而被选中撤消等)所引起的、使事务在末达到规定的终点以前就被迫中止的任何事件。2.系统故障系统故障是指由硬件故障、软件故障(操作系统故障、 DBMS代码错等)、停电等原因造成的、使系统停止运转、必须重新启动的任何事件。3.介质故障系统故障常称为软故障(Soft Crash),介质故障称为硬故
Computer System Evaluation Criteria,简称TCSEC或
9/22/2023
本章主要讨论数据库保护的原理和方法,详细介绍了数据库的完整性、安全性、并发控制和数据库恢复技术。应重点了解数据库管理系统必须提供并发控制机制来协调用户的并发操作以保证并发事务的隔离性和一致性,从而保证数据库的一致性。
6.4 数据库中的并发控制
6.4.6 活锁和死锁和操作系统一样,封锁的方法可能引起活锁和死锁。1.死锁的预防在数据库中,产生死锁的原因是两个或多个事务都已封锁了一些数据对象,然后又都请求对己为其他事务封锁的数据对象加锁,从而出现死等待。防止死锁的发生其实就是要破坏产生死锁的条件。预防死锁通常有两种方法。一次封锁法顺序封锁法
第6章数据库安全保护资料

在数据字典中。
存取权限由两个要素组成:数据对象和操作类型。 定义一个用户的存取权限就是要定义该用户可以在 哪些数据对象上进行哪些类型的操作。
DBA特权用户------》GRANT REVOKE-------》 其他用户
5.审计
审计功能是一种监视措施,它跟踪记录有关数据的访 问活动。
审计追踪把用户对数据库的所有操作自动记录下来, 存放在一个特殊文件中,即审计日志中。
记录的内容一般包括:操作类型(如修改、查询等 ),操作终端标识与操作者标识,操作日期和时间 ,操作所涉及到的相关数据(如基本表、视图、记 录、属性等),数据的前象和后象等。
2.SQL Server 2000的身份验证模式
Windows身份验证模式利用了用户安全性和账号管理机制, 用户只需使用Windows的用户名和密码,通过Windows的身份验 证,就可以连接到SQL Server,登录SQL Server 2000时不再进 行身份验证,从而实现SQL Server 与Windows登录的安全集成。 因此,也称这种模式为安全验证模式。
2019/8/8
1
本章内容
6.1 数据库的安全性 6.2 数据库的完整性 6.3 并发控制 6.4 数据库的恢复
本章介绍
数据共享是数据库的基本性能要求,多用户共享数据库 时,必然有合法用户合法使用、合法用户非法使用以及非 法用户非法使用数据的问题,要保证合法用户合法使用数 据库及数据共享的安全性,就需要对数据库实施保护。
6.1.3 安全性控制的一般方法
安全性控制就是指要尽可能地杜绝所有可能的数据库 非法访问。
用户
第六章 数据库的保护共23页

2、建立“日志”文件 事务运行过程中对DB插入,删除,修改作为
一条记录,写入“日志”文件
写一个修改到DB中和写一个表示这个修改的 登记记录到日志文件中,运行记录优先原则
(3) 恢复
• REDO(重做) 若DB已破坏,应装入最 近一次的COPY DB,正向扫描“日志”文 件,重新执行OP,由DBA执行
4、若多个事务并发执行,应互不干扰
数据重复存储
恢复DATA源头 恢复依据 恢复的方法
系统恢复
DUMP 日志文件 数据库恢复
(1)定期进行DB的COPY 或转储 (DUMP)
DUMP 静态DUMP DUMP时不允许对DB进行存
取, 修改
动态DUMP DUMP与事务可以并行执行 海量DUMP 转储整个DB的DATA 增量DUMP 仅DUMP更新过的DATA
SQL中完整性约束 •主键约束 “PRIMARY KEY(S#)”定义了S的主键 “S# CHAR(4) PRIMARY KEY”主键短语 主键值不允许空,也不允许出现重复,关系满足实体 完整性规则 •外键约束
FOREIGN KEY(S#) REFERENCES(S#) SC中外键定义 S#的值,空值或S中的S#值 主键的关系,“基本关系”(参照关系),外键关系 是依赖关系
T7LockS(A) Sum=A
Read(B)
Read(A) LockS(B) Sum=Sum+B
T8
LockX(C) Read(C)
Lock S(C) Wait……
C=C-10 Write(C) LockX(A) Wait………
发生死锁
DB的完整性
完整性
正确性
相容性
由DBMS完整性子系统实现
数据库保护的四个方面

数据库保护的四个方面数据库是现代信息系统中的重要组成部分,其中存储了大量的敏感数据。
为了保护这些数据的安全性和完整性,数据库的保护工作变得至关重要。
数据库保护主要包括四个方面:物理安全、访问控制、备份与恢复、加密与解密。
一、物理安全物理安全是指对数据库服务器的物理环境进行保护,防止未经授权的访问和破坏。
为了确保数据库的物理安全,可以采取以下措施:1. 选择合适的存储介质:选择可靠的硬盘或固态硬盘,确保数据的稳定性和可靠性。
2. 安全的机房环境:将数据库服务器放置在安全的机房中,控制机房的进出口,防止未经授权的人员进入。
3. 视频监控系统:安装视频监控系统,对机房进行实时监控,发现异常情况及时报警。
4. 防火墙和入侵检测系统:配置防火墙和入侵检测系统,阻止非法入侵和攻击,保护数据库的安全。
二、访问控制访问控制是指限制用户对数据库的访问权限,确保只有经过授权的用户才能访问数据库。
为了有效进行访问控制,可以采取以下措施:1. 用户身份认证:采用用户名和密码等方式对用户进行身份认证,确保只有合法用户才能访问数据库。
2. 用户权限管理:为每个用户分配相应的权限,限制其对数据库的操作范围,防止非法操作和数据泄露。
3. 审计日志:记录用户的操作行为和访问记录,及时发现异常操作和安全事件。
4. 强化密码策略:要求用户使用复杂的密码,并定期更换密码,增加密码的安全性。
三、备份与恢复备份与恢复是数据库保护中非常重要的一环,它能够保证数据库在意外故障或数据丢失时能够快速恢复。
为了有效进行备份与恢复,可以采取以下措施:1. 定期备份:根据数据库的重要性和更新频率,制定合理的备份计划,定期对数据库进行备份。
2. 备份验证:备份完成后,进行备份验证,确保备份文件的完整性和可用性。
3. 存储分离:将备份数据存储在与数据库服务器不同的位置,防止因灾害导致数据库和备份数据同时丢失。
4. 恢复测试:定期进行数据库恢复测试,验证备份的可用性和恢复的可行性。
数据库保护的四个方面

数据库保护的四个方面数据库保护是数据安全的重要组成部分,它涉及到数据库的安全性、完整性、可用性和可靠性。
在数据库中,有四个方面需要重点保护,分别是访问控制、备份和恢复、加密和审计。
本文将分别对这四个方面进行详细的介绍。
一、访问控制访问控制是数据库保护的核心,它可以确保只有经过授权的用户才能访问数据库。
访问控制主要包括身份验证和授权两个方面。
身份验证是通过验证用户的身份来确定其是否有权限访问数据库。
常见的身份验证方式包括用户名和密码、指纹识别、智能卡等。
数据库管理员需要合理设置复杂的密码策略,定期更换密码,以提高身份验证的安全性。
授权是指通过授权机制来确定用户对数据库的访问权限。
数据库管理员可以根据用户的职责和需要,为其分配相应的权限。
合理的授权可以保护数据库中的敏感数据不被未经授权的用户访问和修改。
二、备份和恢复备份和恢复是数据库保护的重要手段,它可以防止数据丢失和数据损坏,保障数据库的可靠性和可用性。
备份是指将数据库的数据和日志文件复制到其他存储介质上,以防止原始数据的丢失。
备份策略包括完全备份、增量备份和差异备份等。
数据库管理员需要根据业务需求和数据重要性制定合理的备份策略,并定期进行备份操作。
恢复是指在数据库发生故障或数据丢失时,通过使用备份数据来还原数据库的过程。
数据库管理员需要熟悉数据库的恢复操作,能够快速有效地进行数据库的恢复,以减少数据库不可用时间和数据的丢失。
三、加密加密是保护数据库中敏感数据的重要手段,它可以防止数据在传输和存储过程中被未经授权的用户访问和窃取。
数据传输加密主要通过使用SSL/TLS协议来保护数据库连接过程中的数据传输安全。
数据库管理员需要启用SSL/TLS协议,并配置合适的加密算法和证书,以确保数据在传输过程中的安全性。
数据存储加密主要通过使用数据库自身的加密功能或第三方加密工具来保护数据库中的敏感数据。
数据库管理员需要根据数据的重要性和敏感性,选择合适的加密算法和密钥管理方式,以保护数据库中的敏感数据。
第6章 数据库的安全技术

Server的安全认证 2. SQL Server的安全认证
当SQL Server在Windows环境中运行时,SQL Server 2000提供了下面两种确认用户的认证模式: (1)Windows认证模式 Windows认证模式利用Windows操作系统对于用户登录 和用户帐号管理的安全机制,允许SQL Server也可以使用 Windows的用户名和口令。用户只需要通过Windows的认 证,就可以连接到SQL Server。
第六章数据库安全技术
6.3 数据库的数据保护
6.3.1 数据库的安全性
3.数据分类 数据库系统对安全性的处理是把数据分级。为每一数 据对象(文件,或字段等)赋予一定的保密级。 例如;绝密极、保密级、秘密级和公用级。对于用户, 成类似的级别。系统便可规定两条规则: (1)用户1只能查看比他级别低的或同级的数据。 (2)用户1只能修改和他同级的数据。
第六章数据库安全技术
6.3 数据库的数据保护
6.3.1 数据库的安全性
4.数据库加密 (3)数据库加密对数据库管理系统原有功能的影响 1)无法实现对数据制约因素的定义 ; 2)失去密文数据的排序、分组和分类作用; 3)SQL语言中的内部函数将对加密数据失去作用; 4)DBMS的一些应用开发工具的使用受到限制。
第六章数据库安全技术
6.1 数据库系统的组成
3.数据库特性 • 多用户 • 高可用性 • 频繁的更新 • 大文件 • 安全性与可靠性问题复杂 很 多 数 据 库 应 用 于 客 户 机 / 服 务 器 (Client / Server)平台。在Server端,数据库由Server上的DBMS 进行管理。由于Client/Server结构允许服务器有多个 客户端,各个终端对于数据的完整性和一致性要求很高, 这就涉及到数据库的安全性与可靠性问题。
数据库安全性保护方法与技巧

数据库安全性保护方法与技巧随着互联网的快速发展,数据库安全性保护变得尤为重要。
数据库存储着大量的敏感信息,如用户个人数据、商业机密等,因此必须采取一系列措施来保护数据库的安全。
本文将介绍几种常用的数据库安全性保护方法与技巧,助您有效地保护数据库的安全。
1. 强密码与访问控制为了保护数据库的安全性,一个基本的步骤是设置强密码。
强密码应包含大小写字母、数字和特殊字符,并且应定期更改密码以降低被破解的风险。
此外,数据库的访问应受到严格的访问控制。
只有授权用户才能访问数据库,并且应根据用户的身份和角色设置不同级别的访问权限,以防止未经授权的访问。
2. 数据加密数据库中的敏感数据可以使用加密进行保护。
加密可以防止未经授权的访问者读取或修改数据。
常用的加密方法包括对整个数据库或数据表进行加密,以及对敏感字段进行加密。
此外,还可以使用传输加密技术,如安全套接层(SSL)协议,保护在客户端和数据库服务器之间传输的数据。
3. 定期备份与恢复定期备份是保护数据库安全的关键措施之一。
定期备份可以确保在数据丢失或被破坏的情况下能快速恢复数据库。
备份应定期进行,并将备份数据存储在安全的地方,如离线介质或云存储中。
此外,恢复测试也是必要的,以确保备份数据完整可用,并能在需要时快速恢复。
4. 更新与补丁对于使用的数据库系统,应及时安装厂商发布的更新和补丁,以修复已知的漏洞和弥补系统安全性。
这些更新和补丁可以提供重要的数据库安全性修复,防止潜在攻击者利用已知的漏洞进入数据库系统。
5. 监控与审计日志数据库的监控和审计日志记录是发现和响应潜在安全威胁的重要工具。
通过实时监控数据库活动,管理员可以快速检测到异常或可疑的活动,并采取相应的措施。
审计日志记录功能可以记录数据库的关键活动,例如登录、访问和修改,为后续的调查和问题分析提供重要依据。
6. 防火墙和网络安全数据库服务器应位于受保护的网络环境中,并使用防火墙来限制对数据库的非法访问。
第6章 数据库保护

封锁 级别
加锁
放锁
防止丢 保证可 失修改 重复读
不读 “脏” 数据
事务T在修改数据A 事务T在修改数据A之 事务结束 可防 不能 一级 才释放X 前必须先对其加X 前必须先对其加X锁 才释放X锁 止 保证 可防 一级封锁协议加上事 读完后即 止 不能 二级 务T在读取数据A之前 在读取数据A 可释放S 可释放S锁 保证 必须对其加S 必须对其加S锁 可防 一级封锁协议加上事 事务结束 止 能保 在读取数据A 务T在读取数据A之前 才释放S 才释放S锁 证 必须对其加S 必须对其加S锁
三级封锁协议例
事务T1 Slock C Slock D READ(C,D) M=C+D READ(C,D) M=C+D Commit Unlock C Unlock D 事务T2
不能 保证 能保 证
三级
能保 证
29
一级封锁协议例
事务T1 Xlock A Read (A) A=10 A=A-5 Write(A) Commit Unlock A 事务T2 事务T1 READ(C,D) M=C+D 事务T2 Xlock C Xlock D READ(C,D) C=C+10 D=D+10 Write (C) Write (D) Unlock C Unlock D
21
3、调度: 事务执行的次序。
设τ={T1,T2, …T n}是一事务集, τ的一个调 度S是一拟序集(∑ ,<s)
其中: 1) ∑说明S执行的操作正是T1,T2, …T n 的操作。 2) <s 说明调度S遵守每个事务的操作的内部执行次序 3) 每对冲突操作的执行次序由S决定。 W0(X) S1= W0(Y) W0(Z) R1(Z) R1(X) W1(X)
数据库安全性的保护与防护措施

数据库安全性的保护与防护措施随着信息技术的快速发展,数据库的重要性不断凸显。
数据库中存储着许多敏感信息,如用户信息、商业机密等。
因此,保护数据库的安全性是至关重要的。
在本文中,我将讨论数据库安全性的保护与防护措施。
首先,一个有效的数据库安全性保护措施是制定严格的访问控制策略,以确保只有授权用户能够访问数据库。
这可以通过以下几种方式实现:1. 用户认证和授权:建立用户身份认证机制,使用加密用户名和密码的方式验证用户身份。
将不同的用户分配到不同的用户组,并基于用户组设置权限。
只有经过授权的用户才能访问和修改数据库。
2. 强密码策略:要求用户使用强密码来保护其账户,密码应该包含足够的复杂程度,包括大小写字母、数字和特殊字符的组合。
此外,还应定期要求用户更改密码,以减少被非法访问的风险。
3. 多因素身份验证:使用多因素身份验证可以提高数据库的安全性。
除了用户名和密码之外,系统还可以采用身份卡、指纹识别等因素来验证用户身份。
其次,使用加密技术对数据库中的敏感数据进行保护也是一种有效的防护措施。
加密可以将数据转换成密文,在未授权的情况下,黑客无法获得有用的信息。
以下是一些常用的加密技术:1. 数据库加密:可以通过数据库内置的加密功能对整个数据库或特定字段进行加密。
这样,即使数据库被未经授权的用户访问,他们也无法获得有用的信息。
2. 传输加密:所有进出数据库的数据应该经过加密,以防止数据在传输过程中被窃取或篡改。
常见的传输加密协议有SSL和TLS。
另外,如果数据库的服务器被攻击或窃贼,其物理安全也应受到关注。
以下是几种物理安全措施:1. 严格的数据中心访问控制策略:只有授权人员可以进入数据中心,并且需要通过严格的身份验证。
登记系统和监控摄像头可以记录并监控访问者的活动。
2. 服务器设备的安全保护:服务器应安装在安全的机柜或机房中,并配备防火、防潮、防尘等设备。
此外,定期检查服务器设备,确保其安全运行。
除了以上措施,还需要定期进行漏洞扫描和安全审计,以发现潜在的安全威胁和弱点。
第六章数据库保护

6.4.1 安全性级别 1.环境级 2.职员级 3.操作系统级 4.网络级 5.数据库系统级
6.4.2 权限 用户权限是由两个要素组成的:数据 对象和操作类型。定义一个用户的存取权 限就是要定义这个用户可以在哪些数据对 象上进行哪些类型的操作。在数据库系统 中,定义存取权限称为授权
6.4.3 安全性控制的一般方法
元组值加以约束。 实现方法是CHECK 子句和约束条件
全局约束之二:断言ASSERTION
设有职工基本表:EMP(ENO,ENAME,AGE,SEX,SALARY,DNO),其属性分别 表示职工号、姓名、年龄、性别、工资,所在车间的编号。试写一个断言 (断言名为ASSE4),要求每个车间女职工人数不少于20人。
6.2.2
排它型封锁(X封锁)
常用的封锁有:排它型封锁(exclusive locks,简称X封锁)和共享型封锁(share locks,简称S封锁)两种 。 X封锁是指一旦事务得到了对某一数据的 X封锁,则其他任何事务再不能对事务进行X 封锁.其他事物只能进入等待状态,直到第一 个事务撤销了对该数据的封锁
6.1.2
事务的性质
1.原子性(Atomicity)
事务是一个操作序列。这些操作要么什么都做,要么 都不做,既Nothing or All原则,是一个不可分割的逻辑工 作单位。
2.一致性 所谓一致性简单地说就是数据库中的数据满足 完整性约束,包括它们的正确性。
6.1.2
事务的性质
3.隔离性(Isolation) 隔离性是指一个事物内部的操作及 使用的数据对其他事务是隔离的。 4.持久性(Durability) 持久性也称为持续性 (Permanence),即一旦事务成功执行, 在提交之后,对数据库的更新永久反映 在数据库中。
数据库管理规定范文(三篇)

数据库管理规定范文第一章总则第一条为了规范和管理数据库的使用,保护数据库的安全和完整性,保护数据的隐私和机密性,提高数据库的管理效率和服务质量,制定本规定。
第二条本规定适用于我单位内部所有的数据库管理工作,涉及到的部门和人员应严格按照本规定执行。
第三条数据库管理负责人应当负责组织、协调和监督数据库管理工作,并定期进行数据库管理工作的评估和改进。
第四条数据库管理员应当具备相关的专业知识和技能,严格遵守职业道德,保守数据库的机密性,不得滥用权限和泄露数据。
第五条数据库用户应当遵守数据库管理规定,正当使用数据库,不得非法获取、篡改、传播和泄露数据库中的数据。
第六条本规定的解释权归我单位数据库管理负责人所有。
第二章数据库的创建和维护第七条创建数据库应当按照相关的规定和流程进行,填写详细的数据库申请表,包括数据库的名称、用途、权限设置等内容。
第八条数据库管理员应当按照规定的权限分配,为数据库用户分配相应的用户权限,包括读取、修改、删除等操作。
第九条数据库管理员应当定期进行数据库的备份和恢复,保证数据库数据的安全和完整性。
第十条数据库管理员应当定期进行数据库的性能监控和优化,提高数据库的运行效率和响应速度。
第十一条数据库管理员应当保留数据库的操作日志,记录所有的操作记录和异常情况,并定期进行审计和分析。
第三章数据库的使用和权限管理第十二条数据库用户应当按照规定的权限进行数据库的使用,不得越权操作数据库。
第十三条数据库用户应当妥善保管个人账号和密码,不得将账号和密码泄露给他人。
第十四条数据库用户应当严格遵守数据库使用规范,不得进行非法操作和滥用权限。
第十五条数据库用户应当按照规定的权限申请流程进行权限的申请和调整,不得无故要求超出权限范围的操作。
第十六条数据库管理员应当及时处理数据库用户的权限申请和权限调整请求,并保证及时审批和反馈。
第十七条数据库管理员应当定期审核和维护数据库用户的权限,及时删除不需要的用户权限。
数据库原理第六章数据库保护

第六章数据库保护93. 事务的概念:事务是⼀个操作序列。
这些操作要么都做,要么都不做,是⼀个不可分割的⼯作单位,是数据库环境中的逻辑⼯作单位,相当于操作系统环境中的“进程”概念。
事务以BEGIN TRANSACTION 语句开始,以COMMIT语句或ROLLBACK语句结束。
94. 事务的性质:事务必须有四个性质:(1)原⼦性:⼀个事务中所有对数据库操作是⼀个不可分割的操作序列。
事务要么完事地被全部执⾏,要么什么也不做。
(2)⼀致性:⼀个事务独⽴执⾏的结果将保证数据库的⼀致性,即数据不会因事务的执⾏⽽遭受破坏。
(3)隔离性:在并发事务被执⾏时,系统应保证与这些事务先后单独执⾏时的结果⼀样,此时达到了隔离性要求。
(4)持久性:⼀个事务⼀旦完成全部操作后,它对数据库的所有更新应永久地反映在数据库中。
上述的四个性质称为事务的ACID性质。
95. 数据库系统中可能发⽣的故障:(1)事务故障:通常分为两种:⾮预期的事务故障(溢出、死锁),可预期的事务故障(可发现可撤消的)(2)系统故障:在硬件故障,软件错误的影响下,虽引起内存信息丢失,但未破坏外存中的数据。
这种情况称为故障终⽌假设。
系统故障通常称为软故障。
(3)介质故障:这类故障将破坏数据库,并影响正在存取这部分数据的所有事务。
介质故障通常被称为硬故障、磁盘故障。
96. 数据库恢复可以⽤哪些⽅法实现:(1)定期对整个数据库进⾏复制或转储。
1)转储可分为静态转储和动态转储。
静态转储:转储期间不允许(或不存在)对数据库进⾏任何存取、修改活动。
动态转储:转储期间允许对数据库进⾏存取或修改,即转储和⽤户事务可以并发执⾏。
2)还可分为海量存储和增量转储海量存储:每次转储全部数据库增量转储:每次只转储上次转储后更新的数据。
(2)建⽴“⽇志”⽂件(3)恢复1)如果数据库已被破坏,就装⼊最近⼀次备份的数据库,然后利⽤“⽇志”⽂件执⾏REDO操作。
2)数据库未被损坏,但某些数据可能不可靠。
第6章 数据库保护

有两种类型的锁:排他锁(Exclusive Locks,简记 为X锁)和共享锁(Share Locks,简记为S锁)。
2019年9月3日
数据库技术及应用
29
排它锁
排它锁又称为写锁
若事务T对数据对象A加上X锁,则只允许 T读取和修改A,其它任何事务都不能再对 A加任何类型的锁,直到T释放A上的锁
备份策略:什么时间备份、备份到什么位置、备份 者是谁、备份内容、备份频率、如何备份等。
企业管理器:“备份” 新建备份设备 备份数据 库
向导:
2、数据库的还原
2019年9月3日
数据库技术及应用
23
6.3 并发控制
6.3.1 并发操作带来的不一致问题
6.3.2 并发控制——封锁及解锁协议
在数据库技术中,并发是指多个事务同时访 问同一数据。
与事务的并发执行相对的是事务的串行执行 ,即每个时刻只有一个事务运行,其他的事务 只有在这个事务执行完毕后才可运行。
2019年9月3日
数据库技术及应用
24
6.3.1并发操作带来的不一致问题
存在三种因并发操作带来的不一致问题: 1、丢失修改(Lost Update) 2、不可重复读(Non-Repeatable read)
2019年9月3日
数据库技术及应用
10
各类故障对数据库的影响: (1) 数据库本身被破坏; (2) 数据库没有被破坏,但数据可能不正确。
恢复原理:冗余
2019年9月3日
数据库技术及应用
11
6.2.2 数据库的恢复原理
恢复机制涉及的关键问题
1. 如何建立冗余数据,即数据库的重复存储; 数据转储(backup) 登录日志文件(logging)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
16
6.2 数据库的完整性—域约束
4 域约束(SQL Server 不支持)
域是某一列可能取值的集合。SQL支持域的概念,用户可以定义域,给
定它的名字、数据类型、默认值和域约束条件。用户可以使用带有 CHECK 子句的CREATE DOMAIN语句定义带有域约束的域。
【例6.11】 用域约束保证小时工资域的值必须大于某一指定值(如最低工资)。
aid a01 a02 a03 a04 a05 a06 aname Smith Jones Brown Gray Otasi Smith city New York Newark Tokyo New York Duluth Dallas percent 6 6 7 6 5 5
ordno month jan jan feb feb 1011 ORDERS(订单) cid aid pid c001 c001 c001 c001 a01 a01 a02 a06 p01 p01 p02 p03 qty 1000 1000 400 600 dollars 450.00 450.00 180.00 540.00 cid c001 c002 c003 c004 c006
CUSTOMERS(顾客)
cname TipTop Basics Allied ACME ACME city Duluth Dallas Dallas Duluth Kyoto discnt 10.00 12.00 8.00 8.00 0.00
PRODUCTS(产品)
pid p01 p02 p03 p04 p05 p06 p07 pname comb brush razor pen pencil folder case city Dallas Newark Duluth Duluth Dallas Dallas Newark quantity 111400 203000 150600 125300 221400 123100 100500 price 0.50 0.50 1.00 1.00 1.00 2.00 1.00
A foreign key in a table can reference a primary key
in the same table.
13
6.2 数据库的完整性—属性约束
3 属性约束
属性约束体现用户定义的完整性。
属性约束主要限制某一属性的取值范围。 属性约束包括:
① ② ③
非空值(NOT NULL)约束:要求某一属性的值不允许为空值。 唯一值(UNIQUE)约束:要求某一属性的值不允许重复。 基于属性的CHECK约束:在在属性约束中的CHECK约束可以对一个属性的值加 以限制。限制就是给某一列设定的条件,只有满足条件的值才允许输入。
540.00
450.00 720.00 720.00 880.00 704.00
3
目录
3 1
系统目录 数据的完整性 数据库的安全性 事务
2 3 3 4
3 5
6
并发控制
数据库的恢复
4
6.1 系统目录
1 系统目录 DBMS需要维护关于其所有表和索引的信息,该信息都存储在目录表
(catalog table) 中。目录表也被称为数据字典(data dictionary)、系统
置空值删除(NULLIFIES):删除被参照关系的元组,并将参照关系中 与被参照关系中被删除元组主键值相等的外键值置为空值。
19
6.2 数据库的完整性—控制机制
create table account ( account_number char(10), branch_name char(15), balance integer, primary key (account_number), foreign key (branch_name) references branch on delete cascade ) ----级联更新:on update cascade
create table cities(city varchar(20) not null, primary key (city) ); create table customers (cid char(4) not null, cname varchar(13), city varchar(20), discnt real check(discnt <= 15.0), primary key (cid), foreign key (city) references cities);
Alter table AGENTS ADD constraint unique_aname unique (aname); Alter table AGENTS DROP constraint unique_aname;
15
6.2 数据库的完整性—属性约束
【例6.9】 运用参照完整性定义一个枚举类型。
数据的正确性 相容性,防止不合语义的数据进入数据库
例: 学生的年龄必须是整数,取值范围为14--29; 学生的性别只能是男或女;
学生的学号一定是唯一的;
学生所在的学院必须是学校设置的学院;
完整性:是否真实地反映现实世界
7
6.2 数据库的完整性—完整性规则
6.2.1 完整性规则
完整性规则由以下三部分构成:
17
6.2 数据库的完整性—控制机制
DBMS的完整性控制机制
1. 具有定义功能:允许用户定义各类完整性约束条件。 2. 具有检查功能
立即执行的约束:语句执行后立即检查是否违背完整性约束。
延迟执行的约束:完整性检查延迟到整个事务执行结束后进行。
例:银行数据库中“借贷总金额应平衡”的约束
从账号A转一笔钱到账号B为一个事务,从账号A转出钱后账就不平衡了,必须等转 入账号B后账才能重新平衡,这时才能进行完整性检查。
10
6.2 数据库的完整性—外键约束
【例6.3】创建带有主键约束的表CUSTOMERS。
create table customers (cid char(4) not null primary key, cname varchar(13), city varchar(20), discnt real check(discnt <= 15.0)); --check约束 --主键约束
create domain valid_no as int
constraint constraint_no check(value between 100 and 999) --- 然后创建表时,使用valid_no域
create table TestDomain
(emp_id valid_no, emp_name varchar(10))
2 外键约束
外键约束涉及的是一个表中的数据如何与另一个表中的数据相联系,也
称为参照完整性约束。参照完整性是指一个关系中给定属性集上的取值也在
另一关系的某一属性集的取值中出现。
6.2 数据库的完整性—外键约束
【例6.6】写出带有主键约束和外键约束的创建表ORDERS的Create Table语句。
create table orders ( ordno integer, [month] char(3), cid char(4) not null, aid char(3) not null, pid char(4) not null, qty integer not null CONSTRAINT qt_c check(qty >= 0), dollars float CONSTRAINT dd default 0.0 CONSTRAINT do_c check(dollars >= 0.0), CONSTRAINT PK_ord primary key ( ordno ), CONSTRAINT FK_ord_cus foreign key (cid) references customers, CONSTRAINT FK_ord_age foreign key (aid) references agents, CONSTRAINT FK_ord_pro foreign key (pid) references products);
① ②
触发条件:规定系统什么时候使用规则来检查数据。 约束条件:规定系统检查用户发出的操作请求违背了什么样的完整性约 束条件。
③
违约响应:规定系统如果发现用户的操作请求违背了完整性约束条件,
应该采取的动作来保证数据的完整性,即违约时要做的事情。
8
6.2 数据库的完整性—完整性约束
6.2.2 完整性约束
14
6.2 数据库的完整性—属性约束
Example
create table branch (branch_name char(15) not null, branch_city char(30), assets integer, primary key (branch_name), check (assets >= 0))
12
6.2 数据库的完整性—外键约束
Employees manages Employees
create table employees
(eid char(3) not null, ename varchar(24),mgrid char(3), primary key (eid), foreemployees(eid));
3. 违约反应 拒绝该操作 接受这个操作,同时执行一些附加的操作,以保证数据库的状态正确
18
6.2 数据库的完整性—控制机制
例3:删除被参照关系DEPT的某个元组,而参照关系S有若 干元组的外键值与被删除的被参照关系的主键值相同, 如何处理?