数据库系统基础讲义第6章数据库完整性与安全性控制部分

合集下载

数据库安全性和完整性课件

数据库安全性和完整性课件
• PUBLIC是所有数据库用户的总称
• 若有WITH GRANT OPTION,则用户可将此特权 转授给其它<用户>。不允许循环授权
GRANT <权限> ON <数据对象> TO <用户> [WITH GRANT OPTION]
学习交流PPT
12
例如: GRANT SELECT ON TABLE 表1 TO PUBLIC; //将对表1的SELECT特权授予所有的用户。
02-10-28 8:00:53 查询数据
学习交流PPT
3
1. 用户标识与鉴别
• 用户标识:Identification
• 用户名:User Name,或者 • 用户标识号:UID
• 用户鉴别:Authentication
• 用户名+口令:Password
学习交流PPT
4
2. 存取控制
• 数据库安全的主要思路:存取控制
• 授权权限:Grant语句
• 把“在某个对象上” “干某种事情”的权限授予“某个用 户”
GRANT <权限> ON <数据对象> TO <用户> [WITH GRANT OPTION]
学习交流PPT
11
2.1 自主存取控制DAC
• <数据对象> ::= <基表>|<视图>|<属性>|… • <用户> ::= PUBLIC|<用户名>
学习交流PPT
15
2.1 自主存取控制DAC
//将对表1中2和4列的UPDATE特权授予wang,并允许 他将此特权转授给其它用户。
学习交流PPT

完整性:数据库安全性与完整性(共47张PPT)

完整性:数据库安全性与完整性(共47张PPT)
• 通常所讲到的数据库的完整性(Integrity)的基本含义是指数据库的正 确性、有效性和相容性,其主要目的是防止错误的数据进入数据库。
• ●正确性(correctness) 是指数据的合法性,例如数值型数据中只能含有(hán yǒu) 数字而不能含有(hán yǒu)字母。
• ●有效性(valid) 是指数据是否属于所定义域的有效范围。
第五页,共四十七页。
第7章 数据库安全性与完整性:
7.1.4 DBMS安全性保护(bǎohù)(2)
• 2.存取控制
• 在存取控制技术中,DBMS所管理的全体实体分为主 体和客体两类。
• 主体(Subject)是系统(xìtǒng)中的活动实体,它包括 DBMS所管理的实际用户,也包括代表用户的各种进 程。客体(Object)是系统(xìtǒng)中的被动实体,是受 主体操纵的,包括文件、基本表、索引和视图等。
属性(shǔxìng)A不能取空值
第十九页,共四十七页。
第7章 数据库安全性与完整性:
7.2.1 完整性基本概念(5)
• (2)参照完整性规则
• 如果属性或属性组F是基本(jīběn)表R的外键,它与基本(jīběn) 表S的主键Ks相对应(这里R和S不一定是两个不同的关 系),则对于R中每个元组在F上的取值应当满足:
第四页,共四十七页。
第7章 数据库安全性与完整性:
7.1.4 DBMS安全性保护(bǎohù)(1)
• 1.身份标识与鉴别
• 用户(yònghù)身份标识与鉴别(Identification And Authentication)是系统提供的最外层安全保护措施。 其方法是每个用户(yònghù)在系统中必须有一个标志自 己身份的标识符,用以和其它用户(yònghù)相区别。当 用户(yònghù)进入系统时,由系统将用户(yònghù)提供的身 份标识与系统内部记录的合法用户(yònghù)标识进行核 对,通过鉴别后方提供数据库的使用权

第6章 数据库的安全与控制[117页]

第6章 数据库的安全与控制[117页]
❖总结:在定义数据库对象时,权衡视图的优点和缺点, 合理地定义视图
10
6.1.3 数据加密
可以采用数据加密的技术,防止数据库中的数据在存 储和传输过程中丢失。 ❖加密方法
➢替换方法:使用密钥(Encryption Key)将明文中
的每一个字符转换为密文中的一个字符
➢置换方法:将明文的字符按不同的顺序重新排列。
11
6.1.3 数据加密
❖ 加密算法 ➢ 对称式加密:对加密和解密使用相同的密钥。 ➢ 一种密钥。 ➢ 数字证书:是一种非对称密钥加密,但一个组 织可以使用证书并通过数字签名将一组公钥和 私钥与其拥有者相关联。
12
6.2 事务机制
2
6.1 数据库安全性
➢ 数据库的一大特点是数据可以共享,但数据共享必 然带来数据库的安全性问题。
➢ 数据库的安全性是指保护数据库以防止不合法的使 用所造成的数据泄露、更改或破坏。
➢ 数据库的安全性和计算机系统的安全性,包括计算 机硬件、操作系统、网络系统等的安全性,是紧密 联系、相互支持的。
➢ 计算机系统的安全性问题可分为三大类:技术安全 类、管理安全类、政策法律类。本书只讨论技术安 全。
16
6.3 数据库恢复
❖ 故障是不可避免的 ➢ 系统故障:计算机软、硬件故障 ➢ 人为故障:操作员的失误、恶意的破坏等。
❖数据库的恢复 把数据库从错误状态恢复到某一正确状态的过程称为
数据库的恢复。
17
6.3.1 数据库的故障分类
1.事务内部的故障 事务故障是指事务在运行过程中被非正常终止,即
6.2.1 事务的概念与特性 1. 定义
事务是在数据库中用户定义的一个或多个操作序列, 它必须以原子的方式执行,也就是说这些操作要么全做 要么全不做,是一个不可分割的工作单位。

数据库第6章 数据库完整性简明教程PPT课件

数据库第6章 数据库完整性简明教程PPT课件

举例 修改“Scores”表时 “成绩”字段的默认约束值为20 USE Student
ALTER TABLE Scores ADD DEFAULT 20 FOR 成绩 GO /*重新设置成绩字段的默认约束值*/
6.2 约束
6.2.2 主键约束
主键约束属于实体完整性,主要用来标识实体集中每个实体对象的 唯一性,以区别实体集中其他的实体对象。主键约束也称为PRIMARY KEY约束,在创建表时,可以通过使用PRIMARY KEY定义约束。主键约束 既可以用作列级约束,也可以用作表级约束。如果某个列或列组合定义 为主键,那么该列或该列组合的值就唯一得标识一个元组。 主键的特点如下:
6.1 数据库完整性的概念
6.1.1 数据完整性的分类
3.参照完整性:又称为引用完整性,它是在插入或删除数据时用于 维护表格间数据一致性的一种手段。参照完整性保证了主表(被参照表) 中的数据与从表(参照表)中数据的一致性。 参数完整性的实现是通过定义外键(外码)与主键(主码)之间或 外键与唯一键之间的对应关系来实现的。参照完整性确保了键值在所有 表中一致。
6.2 约束
6.2.1 缺省束
2.使用T-SQL命令创建默认约束 当创建表后,我们也可以通过修改现有的表来重新设置字段的默认 值,其语法格式如下:
ALTER TABLE table_name ADD [CONSTRAINT constraint_name] DEFAULT (expression|NULL) FOR column_name
6.2 约束
6.2.1 缺省约束
缺省约束也称为默认约束或DEFAULT约束,可以在创建表时创建, 也可以使用数据库对象默认创建。 我们知道数据库中表的每一行记录中的每一列都应该有一个值,当 然这个值也可以是空值。但有时在向一个表中添加数据时并不知道某列 的值或该列的值当时还不能确定,这时可以将该列定义为允许接受空值 或给该列定义一个默认值,即为其添加一个缺省约束。 缺省约束的功能是:当向表中插入数据时,如果用户没有明确给出 某列的值,SQL Server自动为该列输入指定值。

数据库数据库完整性控制PPT课件

数据库数据库完整性控制PPT课件
第34页/共37页
12.5 数据的锁定
• 防止死锁应遵循以下原则:
(1) 尽量避免并发地执行涉及到修改数据的语句。 (2) 要求每个事务一次就将所有要使用的数据全
部加锁,否则就不予执行。 (3) 预先规定一个封锁顺序,所有的事务都必须
按这个顺序对数据执行封锁。例如,不同的过 程在事务内部对对象的更新执行顺序应尽量保 持一致。 (4) 每个事务的执行时间不可太长,对程序段长
注意定 界符
第15页/共37页
12.2 默认值 (2) 绑定默认对象
修改默 认对象
将右侧绑定列 删除至左侧,
解除绑定
第16页/共37页
将左侧列 添加至右 侧,即绑

12.2 默认值 (3) 重命名默认对象
(4) 删除默认对象
第17页/共37页
12.3 规则
• 规则是数据库中对存储在表的列或用户定义数据 类型中的值的规定和限制。
键,即外键是用于建立和加强两个表数据之间的连接的一列或多列,通过它可以强制参照完整性。 • 外键约束的主要目的是控制存储在外键表中的数据。
第6页/共37页
12.1 约束
• 创建外键约束的方法 • 打开企业管理器,展开数据库,右键单击关系图,选择【新建数据库关系图】 菜单项。 • 根据向导提示,选择欲创建外键约束的表。 • 出现如下界面,拖动关联列。
的基础上,添加或删除约束。当表被删除 时,表所带的所有约束定义也随之被删除。
第3页/共37页
12.1 约束
(1) 主键约束(Primary Key,PK)
• 表的一列或几列的组合的值在表中唯一地指定一行 记录,这样的一列或多列称为表的主键,通过它可
强制表的实体完整性。
• 主键不能为空,且不同两行的键值不能相同。 • 表本身并不要求一定要有主键,但最好给表定义主

数据库完整性讲解

数据库完整性讲解

5.2 完整性控制
在关系数据库管理系统中,最重要的完整性约束是实 体完整性和参照完整性,其它完整性约束条件则可以 归入用户定义的完整性。
目前许多关系数据库管理系统都提供了定义和检查实 体完整性、参照完整性和用户定义完整性的功能。
对于违反实体完整性和用户定义完整性的操作一般都 采用拒绝执行的方式进行处理。
5 数据库完整性
? 完整性约束条件 ? 完整性控制 ? FoxPro 的完整性 ? 小结
5 数据库完整性
数据库的完整性是指数据的正确性和相容性。 例如,学生的学号必须唯一; 性别只能是男或女、本科学生的年龄的取值范 围为14-30的整数;
学生所在的系必须是学校已经开设的系等。 数据库是否具备完整性关系到数据库系统能否真 实地反映现实世界,因此维护数据库的完整性 是非常重要的。
完整性检查是围绕完整性约束条件进行的,因此 完整性约束条件是完整性控制机制的核心。
完整性约束条件作用的对象可以是关系、元组、 列三种。
其中列约束条件主要是列的类型、取值范围、精 度、排序等约束条件。
元组的约束条件是元组中各个字段间的联系的约 束。 关系的约束是若干元组间、关系集合上以及关系 之间的联系的约束。
5.1 完整性约束条件
三、静态关系约束
在一个关系的各个元组之间或者若干关系之间 常常存在各种联系或约束。常见的静态关系约 束有:
? 实体完整性约束 ? 参照完整性约束
实体完整性约束和参照完整性约束是关系模型 的两个极其重要的约束,称为关系的两个不变 性。
5.1 完整性约束条件
三、静态关系约束
? 函数依赖约束。大部分函数依赖约束都在关系 模式中定义。
因此在实现参照完整性时,系统除了应该提供定义 外码的机制,还应该提供定义外码列是否允许空值 的机制。

数据库安全性和完整性

数据库安全性和完整性
安全性措施可以保护数据库免受未经授权的访问和恶意攻击,从而确保数据的保密性。
完整性措施可以确保数据的准确性和一致性,防止数据被错误地修改或损坏。
安全性措施和完整性措施相互补充,共同维护数据库的整体可靠性。
01
02
03
04
数据库安全性和完整性之间的联系
数据库安全性和完整性之间的区别
01
安全性主要关注数据的保密性,即防止未授权访问和泄露。
数据完整性包括实体完整性、域完整性和参照完整性等不同类型,分别对应不同的约束条件和规则。
数据库完整性的定义
提高数据可靠性
通过维护数据库完整性,可以减少数据不一致和冲突的情况,提高数据的可靠性和可信度。
保障业务正常运行
数据库中存储着大量关键业务数据,数据库完整性的保持对于保障业务的正常运行至关重要。
数据修复
一旦发现数据完整性问题,及时进行修复。根据问题的性质,可能需要回滚事务、更新数据或删除无效数据等操作。
检查完整性约束
定期检查数据库表中的约束条件是否得到满足,如主键约束、外键约束等。
数据库完整性的检查和修复
03
数据库安全性和完整性之间的关系
数据库安全性和完整性是相互关联的,它们共同确保数据库中数据的可靠性和保密性。
数据资产保护
保障数据库的安全性和完整性是确保业务连续性的关键,一旦数据库遭到破坏或泄露,可能导致业务中断或遭受重大损失。
业务连续性
访问控制
数据加密
备份与恢复
安全审计
如何保障数据库的安全性和完整性
对敏感数据进行加密存储,即使数据被非法获取也无法轻易解密。
定期进行数据库备份,并制定详细的备份和恢复计划,以便在数据出现问题时能够及时恢复。

数据库的完整性课件

数据库的完整性课件

06
案例分析与实践
案例一:电商数据库完整性设计
需求分析
实体关系设计
针对电商业务特点,分析数据完整性需求, 如商品信息、订单信息、用户信息等数据 的准确性和一致性。
设计合理的实体关系,确保数据表之间的 关联性和引用完整性。
约束条件设置
设置主键、外键、唯一性约束等,保证数 据的唯一性和准确性。
触发器应用
监控与日志管理
实践数据库监控和日志管理策 略,确保数据的可追溯性和可
审计性。
THANKS
感谢观看
触发器
使用触发器在插入、更新和删除操作时对实体完整性进行检查和维 护。
应用程序逻辑
在应用程序中编写逻辑代码,对实体数据进行验证和维护实体完整 性。
03
参照完整性
参照完整性定 义
参照完整性概念
指数据库中的数据在引用其他数据时,必须保持数据之间的一致性和准确性, 以确保数据在传递和使用过程中不会发生错误。
01
实体完整性规则
主键的值不能为空或部分为空,也不能有重复值。
02
参照完整性规则
外键的值或者为空,或者在其参照的关系中存在对应的主键值,并且外
键和主键的值应对应相等。
03
用户定义的完整性规则
针对某一具体应用的数据必须满足的语义要求,由用户自己来定义并实
施的数据完整性规则,如数据的取值范围、数据间的联系等。
用户自定义完整性实现方法
触发器
通过定义触发器,在插入、更新或删除操作前后对数据进行检查,确保数据满足用户自定义的完整性规则。
存储过程
通过编写存储过程,对数据进行复杂的完整性检查和处理,确保数据满足用户自定义的完整性规则。
约束 通过在表定义中添加约束条件,限制数据的取值范围或数据间的联系,确保数据满足用户自定义的完整 性规则。常见的约束包括主键约束、外键约束、唯一约束、检查约束等。

数据库系统原理(第6章:数据库安全与保护)

数据库系统原理(第6章:数据库安全与保护)

数据库系统原理(第6章:数据库安全与保护)展开全文一、数据库完整性数据库的安全保护:•完整性控制:数据库完整性是指数据库中数据的正确性和相容性•安全性控制:数据库防止不合法的操作而造成数据泄露、更改或破坏•并发控制:事务就是为了保证数据一致性而产生的一个概念和基本手段•数据库的备份与恢复:保证数据库的可靠性和完整性数据库完整性是指数据库中数据的正确性和相容性。

完整性约束的作用:防止数据库中存在不符合语义的数据。

完整性约束条件的作用对象•列级约束:包括对列的类型、取值范围、精度等的约束•元组约束:指元组中各个字段之间的相互约束•表级约束:指若干元组、关系之间的联系的约束完整性约束条件是完整性控制机制的核心定义与实现完整性约束:实体完整性、参照完整性、用户定义的完整性**************************实体完整性************************** 实体完整性:在MySQL中,实体完整性是通过主键约束和候选键约束实现的。

主键列必须遵守的规则•每一个表只能定义一个主键•主键的值(键值)必须能够唯一标志表中的每一行记录,且不能为NULL•复合主键不能包含不必要的多余列•一个列名在复合主键的列表中只能出现一次主键约束与候选键约束的区别•主键约束一个表只能创建一个主键关键字PRIMARY KEY•候选键约束可以定义若干个候选键关键字 UNIQUE***********************参照完整性*******************************REFERENCES tbl_name(index_col_name,…)[ON DELETE reference_option][ON UPDATE reference_option]tbl_name:指定外键所参照的表名index_col_name:指定被参照的列名ON DELETE:指定参照动作相关的SQL语句reference_option:指定参照完整性约束的实现策略(RESTRICT-限制策略(默认的) | CASCADE-级联策略 | SET NULL-置空策略 | NO ACTION-不采取实施策略)**********************用户定义的完整性****************************非空约束:NOT NULLCHECK 约束:CHECK(expr)触发器命名完整性约束:CONSTRAINT [symbol] symbol:指定的约束名字只能给基于表的完整性约束指定名字,无法给基于列的完整性约束指定名字命名完整性约束的方法是在各种完整性约束的定义说明之前加上关键字( CONSTRAINT )和该约束的名字更新完整性约束使用ALTER TABLE语句更新与列或表有关的各种约束。

第6章 保证数据的完整性1

第6章 保证数据的完整性1

第六章保证数据的完整性理论学习(教学)目标:1.了解数据完整性的概念。

2.了解数据完整性的各种类型。

3.掌握各种约束的使用特点。

技能学习(教学)目标:1.熟练掌握各种约束的设置方法。

2.掌握各种约束的管理办法。

在对数据库中数据操作的过程中,数据的添加、修改、删除都有可能造成数据的破坏或者出现表间数据的不一致,如何能保证输入数据的准确无误呢?在SQL Server2008中,系统本身提供了维护机制,通过约束、默认值、规则、触发器等维护机制来保证数据库中数据的正确性和一致性。

6.1 数据完整性的概念数据完整性就是指存储在数据库中的数据正确无误并且相关数据具有一致性。

例如,在“学生”表中,每个学生的信息应该是唯一的,不能存在两位学生的信息完全一致;学生的学号应具有唯一性;学生所在的系,专业,班级必须是存在的。

根据完整性的机制不同,数据完整性可分为:实体完整性、域完整性、参照完整性和用户定义完整性4种类型。

6.1.1 实体完整性这里的实体即表中的记录。

实体完整性要求在表中不能存在完全相同的记录,即表中的每一条必须是唯一的。

实体完整性可以通过设置主键约束、唯一性约束、标识列(IDENTITY)等多种方法来实现。

例如,“学生”表的学生编号可设为主键,则每条记录的学号唯一,并且不能为空,这样就能保证学生记录的唯一性。

6.1.2 域完整性域完整性也称为列完整性,要求向表中输入的数据必须具有正确的类型、格式及有效的数据范围。

例如,在“成绩”表中,成绩字段的值应在0-100之间;在“学生”表中,性别字段的值应为“男”或“女”,如果输入了超出此范围的数据,系统就会拒绝接受。

域完整性的实现可使用用默认值(DEFAULT),检查约束(CHECK)、外键约束(FOREIGN)和规则(RULE)等方法来实现。

6.1.3 参照完整性参照完整性又称为引用完整性。

参照完整性是指作用于有关联的两个或两个以上的表,通过使用主键和外键的关系,使表中的数据与其相关表中数据保持一致。

数据库完整性PPT课件

数据库完整性PPT课件
误,提高数据管理的效率和准确性。
04
数据库完整性将更加注重数据质量和数据治理,通过 更加全面的数据质量监控和治理机制来提高数据的准 确性和一致性。
THANKS
数据库完整性的重要性
01
02
03
保证数据质量
数据库完整性是确保数据 准确性和一致性的基础, 有助于提高数据的质量和 可靠性。
维护数据安全
通过确保数据的完整性和 准确性,可以降低因错误 数据导致的风险,从而保 护数据的安全。
提高系统性能
数据库完整性的维护有助 于提高系统的性能和效率, 减少因数据不一致或错误 而导致的系统故障。
数据库完整性的分类
01
02
03
04
实体完整性
确保表中每行数据的唯一性, 通过主键约束实现。
域完整性
限制数据列的取值范围,通过 数据类型、约束和函数实现。
参照完整性
维护表之间数据的一致性,通 过外键约束实现。
用户自定义完整性
根据业务规则和需求定义数据 的约束条件,通过触发器、存
储过程等实现。
02
数据完整性约束
方面具有重要意义。
数据库完整性未来发展
随着技术的发展和业务需求的不断变化,数据库完整 性将面临更多的挑战和机遇。
输标02入题
未来,数据库完整性将更加注重数据安全和隐私保护, 采用更加先进的数据加密技术和访问控制机制来确保 数据的安全性和机密性。
01
03
数据库完整性将更加注重自动化和智能化,利用机器 学习和人工智能技术来自动检测和修复数据异常和错
数据验证策略
对输入数据进行有效性验证,确保数据的正 确性和完整性。
审计策略
对数据库操作进行记录和监控,以便及时发 现和解决数据完整性问题。

第6章 数据库的安全技术

第6章 数据库的安全技术
Server的安全体系和安全认证 6.5.1 SQL Server的安全体系和安全认证
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结构允许服务器有多个 客户端,各个终端对于数据的完整性和一致性要求很高, 这就涉及到数据库的安全性与可靠性问题。

数据库的安全性和完整性ppt课件

数据库的安全性和完整性ppt课件
授予的特定权限。这种权限与整个数据库相关,与 数据库中具体的关系无关。这种权限是对用户使用 整个数据库的权限的限定。
– 关系级权限 关系级权限是数据库管理员或数据库对 象的拥有者为用户授予的与关系或视图有关的权限。 这种权限是对用户使用关系和视图的权限的限定。
渠道进行攻击。 – 敌对方对软件和硬件的蛮力破坏 – 绕过DBMS直接对数据进行读写 – 病毒、特洛伊木马、天窗 – 通过各种途径干扰DBMS的正常工作状态,使之在
正当用户提出数据请求时,不能正常提供服务。 8
数据库的安全性
数据库的安全性是指保护数据库以防止 不合法的使用所造成的数据泄漏、更改 和破坏。它包括两个方面的含义:
6
对数据库的安全威胁的分类
偶然地、无意地接触或修改DBMS管理 下的数据
– 自然的或意外的事故 – 硬件或软件的故障/错误导致数据丢失 – 人为的失误,如错误的输入和应用系统的不
正常使用。
7
对数据库的安全威胁的分类(I)
蓄意的侵犯和敌意的攻击
– 授权用户可能滥用其权力 – 信息的非正常扩散-泄密 – 由授权读取的数据推论出不应访问的数据 – 对信息的非正常修改 – 敌对方的攻击,内部的或外部的非授权用户从不同
– 例:收回Liming对Student表的全部权限
Revoke ALL On Student From Liming;
– 收回权限时,若该用户已将权限授予其它用 户,则也一并收回。
26
用户权限定义表
用户名 王平
张明霞 张明霞 张明霞 张明霞 张明霞
数据对象名 关系Student 关系Student 关系Course Sc.Grade Sc.Sno o
– Grant Select On CS_Student To Wangping;

数据库原理与应用课件(安全性保护, 完整性保护)

数据库原理与应用课件(安全性保护, 完整性保护)

动态约束
• 列级约束 • 修改列的是约束,存在NULL的列不能修 修改列的是约束,存在NULL的列不能修 改成not null的类型,存在string的字 改成not null的类型,存在string的字 段,不能设置成date 段,不能设置成date • 修改列值的约束:符合自然规律和社会 规律
数据对象
• 1.数据对象分为:数据表,属性,元组 1.数据对象分为:数据表,属性,元组 • 2.数据模式:外模式,模式,内模式 2.数据模式:外模式,模式,内模式 • 非关系系统中,2类对象只能有DBA来操 非关系系统中,2类对象只能有DBA来操 作 • 关系系统中,用户经过授权,可以进行 DBA的部分工作:建立CREATE和修改 DBA的部分工作:建立CREATE和修改 ALERT数据表结构,建立索引 ALERT数据表结构,建立索引 视图
4.5.2 存取控制
• 用户权限是指用户对数据对象能执行的 操作种类。(CRUD) 操作种类。(CRUD) • 系统采用控制语言(DCL)进行授权,计 系统采用控制语言(DCL)进行授权,计 算机将编译后的授权决定存放在数据字 典中,用户在允许范围内进行操作 • 权限=数据对象+操作类型 权限=数据对象+
• 元组级约束 • 1.元组中属性的约束和属性之间的值的 1.元组中属性的约束和属性之间的值的 相互制约关系(属性之间有内在关系) • 静态表级约束 • 1.实体完整性约束 1.实体完整性约束 • 2.参照完整性约束 2.参照完整性约束 • 3.函数依赖约束(3NF) 3.函数依赖约束(3NF) • 统计约束(自定义)
存取控制机制分类
1.自主存取控制,用户对不同对象有不 • 1.自主存取控制,用户对不同对象有不 同的存取权限,不同用户对同一对象的 存取权限也不同,高权限用户可以拥有 的权限给低级用户 • 强制存取控制,每个数据对象具有密级 ,单个用户授予某一密级的许可证,具 有许可证的用户才能执行存取。 • 强制存取是开发程序时,可以借鉴的良 好习惯

数据库的安全性和完整性及其实现机制

数据库的安全性和完整性及其实现机制

数据库的安全性和完整性及其实现机制为了保证数据库数据的安全可靠性和正确有效,DBMS必须提供统一的数据保护功能。

数据保护也为数据控制,主要包括数据库的安全性、完整性、并发控制和恢复。

一、数据库的安全性数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。

计算机系统都有这个问题,在数据库系统中大量数据集中存放,为许多用户共享,使安全问题更为突出。

在一般的计算机系统中,安全措施是一级一级设置的。

在DB存储这一级可采用密码技术,当物理存储设备失窃后,它起到保密作用。

在数据库系统这一级中提供两种控制:用户标识和鉴定,数据存取控制。

在ORACLE多用户数据库系统中,安全机制作下列工作:防止非授权的数据库存取;防止非授权的对模式对象的存取;控制磁盘使用;控制系统资源使用;审计用户动作。

数据库安全可分为二类:系统安全性和数据安全性。

系统安全性是指在系统级控制数据库的存取和使用的机制,包含:有效的用户名/口令的组合;一个用户是否授权可连接数据库;用户对象可用的磁盘空间的数量;用户的资源限制;数据库审计是否是有效的;用户可执行哪些系统操作。

数据安全性是指在对象级控制数据库的存取和使用的机制,包含:哪些用户可存取一指定的模式对象及在对象上允许作哪些操作类型。

在ORACLE服务器上提供了一种任意存取控制,是一种基于特权限制信息存取的方法。

用户要存取一对象必须有相应的特权授给该用户。

已授权的用户可任意地可将它授权给其它用户,由于这个原因,这种安全性类型叫做任意型。

ORACLE利用下列机制管理数据库安全性:数据库用户和模式;特权;角色;存储设置和空间份额;资源限制;审计。

1.数据库的存取控制ORACLE保护信息的方法采用任意存取控制来控制全部用户对命名对象的存取。

用户对对象的存取受特权控制。

一种特权是存取一命名对象的许可,为一种规定格式。

ORACLE使用多种不同的机制管理数据库安全性,其中有两种机制:模式和用户。

计算机系统安全原理与技术课件第6章(下)

计算机系统安全原理与技术课件第6章(下)
• 第二阶段的工作是对需要更新的字段进行真正地修改,这种修 改是永久性的。
• 上述第一阶段和第二阶段在数据库中合称为一个“事务”( Transaction),所谓事务是指一组逻辑操作单元,使数据从 一种状态变换到另一种状态。
6
计算机系统安全原理与技术(第4版)
6.2.3 数据库的完整性控制
❖ 3. 元素完整性控制
计算机系统安全原理与技术(第4版)
6.2.3 数据库的完整性控制
❖ 1. 物理完整性控制 ▪ 在物理完整性方面,要求从硬件或环境方面保护 数据库的安全,防止数据被破坏或不可读。 ▪ 数据库的物理完整性和数据库留驻的计算机系统 硬件可靠性与安全性有关,也与环境的安全保障 措施有关。
2
计算机系统安全原理与技术(第4版)
18
计算机系统安全原理与技术(第4版)
6.2.6 数据库的隐私性保护
❖ 1. 隐私的概念及面临的问题
▪ (1)隐私的概念 信息隐私权保护的客体可分为以下4个方面。
• 1)个人属性的隐私权。 • 2)个人资料的隐私权。 • 3)通信内容的隐私权。 • 4)匿名的隐私权。
19
计算机系统安全原理与技术(第4版)
13
计算机系统安全原理与技术(第4版)
6.2.4 数据库的可用性保护
❖ 2. 入侵容忍 ▪ (2)入侵容忍技术
• 1)冗余组件技术。 • 2)复制技术。 • 3)多样性。 • 4)门限密码技术。 • 5)代理。 • 6)中间件技术。 • 7)群组通信系统。
14
计算机系统安全原理与技术(第4版)
6.2.4 数据库的可用性保护
22
计算机系统安全原理与技术(第4版)
6.2.6 数据库的隐私性保护
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Col_constr列约束:只能应用在单一列上,其后面的约束如UNIQUE, PRIMARY及search_cond只能是单一列唯一、单一列为主键、和单一列相关
邓胜春 博士讲师 战德臣 博士教授博士生导师
6
《数据库系统基础》
6.3 数据库的完整性与安全性控制
---- SQL-DDL中关于完整性的命令(续)
《数据库系统基础》
6.3 数据库的完整性与安全性控制
---- 数据库完整性的概念(续)
为什么会引发数据库完整性的问题呢? 不正当的数据库操作,如输入错误、操作失误、程序处理失误等 数据库完整性管理的作用 防止和避免数据库中不合理数据的出现 DBMS应尽可能地自动防止DB中语义不合理现象 如DBMS不能自动防止,则需要应用程序员和用户在进行数据库操作 时处处加以小心,每写一条SQL语句都要考虑是否符合语义完整性,这 种工作负担是非常沉重的,因此应尽可能多地让DBMS来承担。
第2章介绍的关系模型中有完整性要求 实体完整性 参照完整性 用户自定义完整性 第5章介绍的数据库设计中,在E-R图/IDEF1X图中有很多的完整性约束条 件,如何施加到数据库的定义中,如何起作用呢?
邓胜春
博士讲师
战德臣
博士教授博士生导师
2
《数据库系统基础》
6.3 数据库的完整性与安全性控制
---- 数据库完整性的概念(续)
邓胜春
博士讲师
战德臣
博士教授博士生导师
5
《数据库系统基础》
6.3 数据库的完整性与安全性控制
---- SQL-DDL中关于完整性的命令
SQL-DDL提供了诸多完整性约束的定义,首先完整性约束定义体现在 Create Table语句中 CREATE TABLE tablename ( ( colname datatype [ DEFAULT { default_constant | NULL} ] [ col_constr {col_constr. . .} ] | , table_constr {, { colname datatype [DEFAULT { default_constant | NULL} ] [col_constr {col_constr. . .} ] | , table_constr } . . . } );
//假定每门课学分最多5分,最少0分
邓胜春
博士讲师
战德臣
博士教授博士生导师
《数据库系统基础》
6.3 数据库的完整性与安全性控制
---- SQL-DDL中关于完整性的命令(续)
table_constr表约束:一种关系约束类型,对多列或元组的值进行约束 [ CONSTRAINT constraintname ] { UNIQUE (colname {, colname. . .}) | CHECK (search_condition)
邓胜春
博士讲师
战德臣
博士教授博士生导师
《数据库系统基础》
6.3 数据库的完整性与安全性控制
---- 数据库完整性的概念(续)
完整性约束条件的进一步分类 约束状态分类 静态约束:要求DB在任一时候均应满足的约束;例如Sage在任何 时候都应满足大于0而小于150(假定人活最大年龄是150)。 动态约束:要求DB从一状态变为另一状态时应满足的约束;例如 工资只能升,不能降:工资可以是800元,也可以是1000元;可以从 800元更改为1000元,但不能从1000元更改为800元。
check中的条件可以是Select-From-Where内任何Where后的语句,包含 子查询。比如SC定义中不使用外键,则可如下约束:
Create Table SC ( S# char(8) check( S# in (select S# from student)) , C# char(3) check( C# in (select C# from course)) , Score float(1) constraint ctscore check (Score>=0.0 and Score<=100.0), 邓胜春 博士讲师 战德臣 博士教授博士生导师
//引用另一表tablename的若干列的值作为外键
table_constr表约束:是应用在关系上,即对关系的多列或元组进行约束, 列约束是其特例
邓胜春 博士讲师 战德臣 博士教授博士生导师
7
《数据库系统基础》
6.3 数据库的完整性与安全性控制
---- SQL-DDL中关于完整性的命令(续)
table_constr表约束示例
//假定Ssex只能取{男,女}, 1=<Sage<=150
Create Table Course ( C# char(3) , Cname char(12), Chours integer, Credit float(1) constraint ctcredit check (Credit >=0.0 and Credit<=5.0 ), T# char(3) references Teacher(T#) on delete cascade );
邓胜春
博士讲师
战德臣
博士教授博士生导师
4
《数据库系统基础》
6.3 数据库的完整性与安全性控制
---- 数据库完整性的概念(续)
完整性约束条件的进一步分类 约束来源分类 结构约束:来自于模型的约束,例如函数依赖约束、主键约束(实 体完整性)、外键约束(参照完整性),只关心数值相等与否、是否允 许空值等; 内容约束:来自于用户的约束,如用户自定义完整性,关心元组 或属性的取值范围。例如Student表的Sage属性值在15岁至40岁之 间等。
//为约束命名,便于以后撤消 //几列值组合在一起是唯一 //几列联合为主键
| PRIMARY KEY (colname {, colname. . .})
//元组多列值共同满足条件 //条件中只能使用同一元组的不同列当前值
| FOREIGN KEY (colname {, colname. . .}) REFERENCES tablename [(colname {, colname. . .})] [ON DELETE CASCADE] }
《数据库系统基础》
数据库系统基础
哈尔滨工业大学
2003.~2004.
邓胜春
博士讲师
战德臣
博士教授博士生导师
《数据库系统基础》
第6章
数据库管理与维护
邓胜春
博士讲师
战德臣
博士教授博士生导师
1
《数据库系统基础》
第6章
数据库管理与维护
6.1 数据库管理员的基本职责 6.2 数据库存储与性能管理 6.3 数据库完整性与安全性控制
邓胜春 博士讲师 战德臣 博士教授博士生导师
《数据库系统基础》
6.3 数据库的完整性与安全性控制
---- 数据库完整性的概念(续)
完整性约束条件的类别 域完整性约束条件 施加于某一列上,对给定列上所要更新的某一候选值是否可以接 受进行约束条件判断,这是孤立进行的。 关系完整性约束条件 施加于关系/table上,对给定table上所要更新的某一候选元组是 否可以接受进行约束条件判断,或是对一个关系中的若干元组和另 一个关系中的若干元组间的联系是否可以接受进行约束条件判断。
//假定严格约束20学时一个学分
邓胜春
博士讲师
战德臣
博士教授博士生导师
《数据库系统基础》
6.3 数据库的完整性与安全性控制
---- SQL-DDL中关于完整性的命令(续)
table_constr表约束示例
Create Table SC ( S# char(8), C# char(3), Score float(1) constraint ctscore check (Score>=0.0 and Score<=100.0), forergn key (S#) references student(S#) on delete cascade, forergn key (C#) references course(C#) on delete cascade );
邓胜春
博士讲师
战德臣
博士教授博士生导师
3
《数据库系统基础》
6.3 数据库的完整性与安全性控制
---- 数据库完整性的概念(续)
DBMS怎样自动保证完整性呢? DBMS允许用户定义一些完整性约束规则(用SQL-DDL来定义) 当有DB更新操作时,DBMS自动按照完整性约束条件进行检查,以确 保更新操作符合语义完整性 完整性约束条件(或称完整性约束规则)的一般形式 Integrity Constraint ::= ( O,P,A,R) O―数据集合:约束的对象? 列、多列(元组)、元组集合 P―谓词条件:什么样的约束? A―触发条件:什么时候检查? R―违约响应:不满足时怎么办?
数据库完整性 DB Integrity是指DBMS应保证DB在任何情况下的正确性、有效性和 一致性 广义完整性:语义完整性、并发控制、安全控制、DB故障恢复等 狭义完整性:专指语义完整性,DBMS通常有专门的完整性管理机 制与程序来处理语义完整性问题。(本讲义指语义完整性)
邓胜春
博士讲师
战德臣
博士教授博士生导师
Col_constr列约束示例
Create Table Student ( S# char(8) not null unique, Sname char(10), Ssex char(2) constraint ctssex check (Ssex=‘男’ or Ssex=‘女’), Sage integer check (Sage>=1 and Sage<150), D# char(2) references Dept(D#) on delete cascade, Sclass char(6) );
相关文档
最新文档