第5章 数据库保护(1)
《数据库技术与应用》第5章 习题答案

第5章数据库完整性与安全性1. 什么是数据库的完整性?什么是数据库的安全性?两者之间有什么区别和联系?解:数据库的完整性是指数据库中数据的正确性、有效性和相容性,其目的是防止不符合语义、不正确的数据进入数据库,从而来保证数据库系统能够真实的反映客观现实世界。
数据库安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。
数据的完整性和安全性是两个不同的概念,但是有一定的联系:前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。
后者是保护数据库防止恶意的破坏和非法的存取。
也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据.2。
什么是数据库的完整性约束条件?完整性约束条件可以分为哪几类?解:完整性约束条件是指数据库中的数据应该满足的语义约束条件。
一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束.静态列级约束是对一个列的取值域的说明,包括以下几个方面:①数据类型的约束,包括数据的类型、长度、单位、精度等;②对数据格式的约束;③对取值范围或取值集合的约束;④对空值的约束;⑤其他约束.静态元组约束就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。
静态关系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。
常见的静态关系约束有:①实体完整性约束;②参照完整性约束;③函数依赖约束.动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面:①修改列定义时的约束;②修改列值时的约束。
动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件.动态关系约束是加在关系变化前后状态上的限制条件,例如事务一致性、原子性等约束条件。
3. 试述DBMS如何实现完整性控制.解:为了维护数据库的完整性,DBMS提供了以下三种机制:①完整性约束条件定义完整性约束条件也称为完整性规则,是数据库中的数据必须满足的语义约束条件.SQL标准使用了一系列概念来描述完整性,包括关系模型的实体完整性、参照完整性和用户定义完整性。
(完整版)第五章_数据库完整性(习题)

(完整版)第五章_数据库完整性(习题)一、选择题1.完整性检查和控制的防范对象是( ),防止它们进入数据库。
安全性控制的防范对象是(),防止他们对数据库数据的存取。
A.不合语义的数据 B。
非法用户 C.不正确的数据 D.非法操作2.找出下面SQL命令中的数据控制命令().A。
GRANT MIT C.UPDATE D.SELECT3.下述SQL命令中,允许用户定义新关系时,引用其他关系的主码作为外码的是()。
A。
INSERT B。
DELETE C.REFERENCES D. SELECT4.下述SQL命令的短语中,不用于定义属性上约束条件的是()。
A.NOT NULL短语 B。
UNIQUE短语 C.CHECK短语 D。
HAVING短语二、填空题1.数据库的完整性是指数据的正确性和相容性.2.关系模型的实体完整性在CREATE TABLE中用 primary key 关键字来实现。
3.检查主码值出现不唯一和有一个为空违约情况时,则DBMS拒绝插入或修改。
4.关系模型的参照完整性在CREATE TABLE中用 foreign key关键字来实现。
5.当参照完整性检查出现违约情况时,则DBMS可以采用拒绝、级联和设置为空策略处理。
6.参照完整性的级连操作的关键字是cascade .7.在CREATE TABLE中定义属性上的约束条件,包括not null 、unique 和 check。
8.在CREATE TABLE中定义属性上的约束条件,检查列值唯一用unique 关键字。
9.关系模型的元组上的约束条件的定义,在CREATE TABLE中用check关键字来实现。
10.在Sno(学号)列上创建约束,要求Sno的值在18至22岁之间,约束名Sno_CK。
请写出对应的完整性命名子句constraintSno_CK primary key check(sno between 18 and 22)。
1.A C ;BD 2. A 3。
【《数据库与信息系统》复习题及答案】第5章数据库管理与保护

A.该操作不存在问题
B.该操作丢失修改
C.该操作不能重复读
D.该操作读“脏”数据
时刻序列
T1
T2
①
读 A=10,B=5
②
读 A=10,A=A*2 写回
③
读 A=20,B=5 求和 25 验证错
答案:C
图 5.2 事务 T1、T2 的并发操作序列
解析:本题中事务 T1 首先读取变量 A 和 B,随后事务 T2 修改变量 A,然后事务 T1 又第二
12.若事务 T 对数据 R 已加独占锁,则其他事务对数据 R ________。
A.可以加共享锁不能加独占锁 B.不能加共享锁可以加独占锁 C.可以加共享锁也可以加独占锁 D.不能加任何锁 答案:D 解析:MySQL 的 InnoDB 使用不同的锁定类型来锁定资源,其锁分别是:共享锁(S)、排他 锁(X)、意向共享锁(IS)、意向排他锁、大容量更新锁。有些锁之间是兼容的,有些锁之间 是不兼容的,如某一事务对一个数据上了 X 锁,其他事务对该数据不能上任何类型的锁。
答案:B
解析:事务是用户定义的一个数据操作序列,这些操作要么全做要么全不做,是一个不可分 割的工作单位。事务具有原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)和 持久性(Durabiliy)四个特性,简称 ACID 特性。
第5章 数据库完整性

第5章数据库安全性(2课时)数据库的数据保护主要包括数据的安全性和数据的完整性。
数据的安全性是为了保护数据库防止恶意的破坏和非法访问,防范对象是非法用户和非法操作。
数据库的完整性是指数据的正确性和相容性,是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据,防范对象是不合语义的、不正确的数据。
举例说明数据的完整性(三种完整性各一例)。
为维护数据库的完整性,DBMS必须具备三个功能:1 提供定义完整性约束条件的机制完整性约束条件也称为完整性约束规则,是数据库必须满足的语义约束条件。
SQL标准使用了一系列概念来描述完整性,包括关系模型的实体完整性、参照完整性和用户定义完整性。
这些完整性一般由SQL的DDL语句来实现。
它们作为数据库模式的一部分存入数据字典中。
2 提供完整性检查的方法DBMS中检查数据是否满足完整性约束条件的机制称为完整性检查。
一般在INSERT、UPDA TE、DELETE语句执行后开始检查,也可以在事务提交时检查。
检查这些操作执行后数据库中的数据库是否违背了完整性约束条件。
3 违约处理DBMS若发现用户的操作违背了完整性约束条件,就采取一定的动作,如拒绝(NOACTION)执行该操作,或级联(CASCADE)执行其他操作,进行违约处理以保证数据的完整性。
目前商用的DBMS产品都支持完整性控制,即完整性定义、检查控制和违约处理都是由DBMS来实现,不必由应用程序来完成,从而减轻了应用程序员的负担。
5.1 实体完整性是关系的两个不变性之一,关系的主属性的取值不能相同,主属性不能取空值,保证在一个关系中不存在两个完全相同的元组。
5.1.1 实体完整性定义关系模型的实体完整性在CREATE TABLE中用PRIMARY KEY定义。
对单属性构成的码有两种说明方法:一种是定义为列级约束条件;一种是定义为表级约束条件。
对多个属性构成的码只有一种说明方法:定义为表级约束条件。
第五章 数据库的维护和应用

第五章数据库的维护和应用一、例题解析【例题1】设数据表已经打开,为了在表尾增加一条空记录,应使用的命令是()。
A.APPEND B.APPEND BLANK C.INSERT D.INSERT BLANK【解析】答案A,APPEND命令打开一个输入记录的浏览窗口;答案D,INSERT BLANK是插入一条空记录,但必须将记录指针移动到文件尾;答案B是在文件尾追加一条空记录,这个命令常常配合REPLACE命令用于程序中添加记录。
答案:B【例题2】在打开的职工表在有字符型字段“职称”和数值型字段“工资”等,若要求先按职称的升序,职称相同再按工资降序建立排序好的zcgz.dbf文件,应使用的命令是()。
A.SORT ON职称,工资/D Tozcgz.dbfB.SORT ON工资/D,职称/A Tozcgz.dbfC.SORT ON职称+工资Tozcgz.dbfD.SORT ON职称+工资/D Tozcgz.dbf【解析】在SORT命令中,排序的依据只能是关键字段名,而不能使用关键字表达式,因此,答案C和D都是错误的。
答案B是先按工资排序,工资相同再按职称排序,与题意不符,所以正确的答案是A。
答案:A【例题3】在打开的学生档案表中有字符字段“性别”和日期型字段“出生日期”等若要先按性别排序,性别相同时再按出生日期排序创建单索引文件,应使用的命令是()。
A.INDEX ON性别,出生日期TO Xbrq.idxB.INDEX ON性别+出生日期TO xbrq.idxC.INDEX ON性别+STR(出生日期)TO xbrq.idxD.INDEX ON性别+DTOC(出生日期)TO xbrq.idx【解析】对于多重索引,索引表达式中的各字段数据类型必须是一致的。
本题中,“性别”和“出生日期”的数据类型不一致,为构成一个索引表达式,通常是使用转换函数把非字符型的数据转换成字符型的数据。
这里要用DTOC()函数将日期型转换成字符型的,因而答案B、C是错误的;答案A中,索引表达式不能是用逗号隔开的式子。
《数据库系统原理》PPT电子课件教案-第五章 数据库保护

四、用户定义的安全性措施 除了系统级的安全性措施外,Oracle还允许用户用数 据库触发器定义特殊的更复杂的用户级安全性措施。例 如,规定只能在工作时间内更新Student表,可以定义如 下触发器,其中sysdate为系统当前时间: CREATE OR REPLACE TRIGGER secure student BEFORE INSERT OR UPDATE OR DELETE ON Student BEGIN IF(TO_CHAR(sysdate,’DY’) IN(‘SAT’,’SUN’)) OR(TO_NUMBER(sysdate HH24') NOT BETWEEN 8 AND l7) THEN
常用的方法:
1)用一个用户名或者用户标识号来标明用户身份, 系统鉴别此用户是否是合法用户。 2)口令(Password)。为进一步核实用户,系统要求 用户输入口令 3)系统提供一个随机数,用户根据预先约定好的某 一过程或函数进行计算,系统根据计算结果是否正 确进一步鉴定用户身份。
2. 存取控制
(2)行级安全性 Oracle行级安全性由视图实现。用视图定义表的水 平子集,限定用户在视图上的操作,就为表的行级提供 了保护。视图上的授权与回收与表级完全相同。 例如,只允许用户U2查看Student表中信息系学生的 数据,则首先创建信息系学生视图S_ IS,然后将该视图 的SELECT权限授予U2用户。 (3)列级安全性 Oracle列级安全性可以由视图实现,也可以直接在基 本表上定义。 用视图定义表的垂直子集就可以实现列级安全性,方 法与上面类似。
Oracle对数据库对象的权限采用分散控制方式, 允许具有WITH GRANTOPTION的用户把相应权限或 其子集传递授予其他用户,但不允许循环授权,即被 授权者不能把权限再授回给授权者或其祖先, U1 U2 U3 U4 × 循环授权 Oracle把所有权限信息记录在数据字典中。当用 户进行数据库操作时,Oracle首先根据数据字典中的 权限信息,检查操作的合法性。在Oracle中,安全性 检查是任何数据库操作的第一步。
第五章 数据库设计

运动会方面,实体集包括:运动员(编号,姓名,性别,队 伍号),比赛项目(项目名,比赛场地)。其中,一个比赛项 目可供多名运动员参加,一名运动员可参加多个项目。
根据上述条件,分别设计运动队和运动会两个局部E-R图。
第三节 概念结构设计 参赛项目 性别 队伍号 队伍名 教练名 运动员 性别 队伍号 运动员 m 参加 n n 属于
第三节 概念结构设计 分解变换。如果实体集的属性较多,可以进行分解。例如, 对于员工实体集,其属性为员工号、姓名、性别、生日、(所 属)支行名、岗位、工资、奖金。 性别 生日 支行名 岗位 工资 奖金
姓名 员工号 员工
第三节 概念结构设计 可以把员工信息分解为两部分,一部分属于固定信息,一部 分属于变动信息。为了区别这两部分信息,产生一个新的实体 和一个新的联系。
在视图合并阶段,设计者把所有视图有机地合并成统一的概 念模型,这个最终的概念模型支持所有的应用。
第三节 概念结构设计 概念结构设计的策略主要分为自顶向下、自底向上、自内向 外和混合策略四种。 这些方法中最常用的是自底向上方法:首先设计局部概念模 式,然后综合局部概念模式成全局概念模式,最后对全局概念 模式进行评估和优化。
P2 P1 D2明细 D3账目 E2会 E1客 D1付款 打印账目 账务处理 单 户 计
第二节 需求分析 元数据是描述数据的数据,通常由数据结构的描述组成,主 要描述数据及其使用环境,例如数据精度、来源、产生时间、 使用范围、注解等。 数据字典是一种用户可以访问的、记录数据库和应用程序元 数据的集合,通常是用来解释数据表、数据字段等数据结构的 意义,数据字段的取值范围、数据值代表的意义等。 简而言之,数据字典是描述数据的信息集合,是系统中所有 数据的定义集合。
数据字典通常由数据项、数据结构、数据流、数据存储和处 理过程组成。
第5章 数据库安全保护

更改登录账号的属性
使用存储过程sp_password可改变登录账号的密码
EXEC sp_password '旧密码', '新密码', '登录账号名称' [例5-3]将Mike账号的密码由原来的m1934改为mike1934. EXEC sp_password ‘m1934’,’mike1934’,’Mike’
第5章 数据库安全保护
5.1 5.2 5.3 5.4
数据库的安全性 完整性控制 并发控制与封锁 数据库的恢复
2
5.1 数据库的安全性
5.1.1 数据库安全性的含义
数据库的安全性是指保护数据库以防止非法使 用所造成的数据泄露、更改或破坏。
安全性问题有许多方面 :
(1)法律、社会和伦理方面时问题。 (2)物理控制方面的问题。 (3)政策方面的问题。 (4)运行方面的问题。 (5)硬件控制方面的问题。 (6)操作系统安全性方面的问题。 (7)数据库系统本身的安全性方面的问题。
18
其中: BUILTIN\Administrators: 表示所有 Windows Adiminstrators组中的用户都可以 登录到SQL Server。此组中的成员同时也具 有SQL Server的系统管理员权限。 sa:SQL Server身份验证模式的系统管理 员账户。 方法2:使用存储过程查看登录账号。 EXEC sp_helplogins
14
5.1.4 SQL Server2000的身份验证模式
1.Windows身份验证模式 : 允许Windows操作系统用户连接到SQL Server。 当使用Windows身份验证模式时,用户必 须首先登录到Windows操作系统中,然后 再登录到SQL Server。 一般推荐使用Windows验证模式,因为这 种安全模式能够与Windows操作系统的安 全系统集成在一起,以提供更多的安全功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
视图上面再进一步定义存取权限
间接实现了支持存取谓词的用户权限定 义
An Introduction to Database System
视图机制(续)
例:王平只能检索计算机系学生的信息
先建立计算机系学生的视图CS_Student
CREATE VIEW CS_Student AS SELECT FROM Student WHERE Sdept='CS';
3. 视图机制
视图机制把要保密的数据对无权存取这些数据
的用户隐藏起来, 视图机制更主要的功能在于提供数据独立性, 其安全保护功能太不精细,往往远不能达到应 用系统的要求。
An Introduction to Database System
视图机制(续)
视图机制与授权机制配合使用:
首先用视图机制屏蔽掉一部分保密数据
DBA可以利用审计日志中的追踪信息 找出非法存取数据的人
C2以上安全级别的DBMS必须具有审计功能
An Introduction to Database System
审计(续)
审计功能的可选性
审计很费时间和空间
பைடு நூலகம்
DBA可以根据应用对安全性的要求,
灵活地打开或关闭审计功能。
An Introduction to Database System
Authentication)
系统提供的最外层安全保护措施
An Introduction to Database System
1. 用户标识与鉴别 基本方法
系统提供一定的方式让用户标识自己的名字或身份; 系统内部记录着所有合法用户的标识; 每次用户要求进入系统时,由系统核对用户提供的身 份标识;
数据值粒度:存取谓词
授权粒度越细,授权子系统就越灵活,能够提供的安 全性就越完善。但另一方面,因数据字典变大变复杂, 系统定义与检查权限的开销也会相应地增大。
An Introduction to Database System
存取控制方法(续)
自主存取控制小结(续)
优点
能够通过授权机制有效地控制其他用户对
An Introduction to Database System
2. 存取控制
存取控制机制的功能
存取控制机制的组成
定义存取权限
检查存取权限
用户权限定义和合法权检查机制一起组成 了DBMS的安全子系统
An Introduction to Database System
存取控制(续)
数据库 表 属性列 行
能否提供与数据值有关的授权反映了授权子 系统精巧程度
An Introduction to Database System
存取控制方法(续) 实现与数据值有关的授权
利用存取谓词
存取谓词可以很复杂
可以引用系统变量,如终端设备号,系统 时钟等,实现与时间地点有关的存取权限, 这样用户只能在某段时间内,某台终端上 存取有关数据
例:规定“教师只能在每年1月份和7月份星期一至 星期五上午8点到下午5点处理学生成绩数据”。
An Introduction to Database System
存取控制方法(续) 例:扩充后的授权表
用户名 王平 张明霞 张明霞 数据对象名 允许的操作类型 存取谓词 关系Student SELECT Sdept=CS 关系Student UPDATE Sname=张明霞 关系 Course ALL 空
存取控制方法(续)
关系系统中的存取权限
类型
数据对象 模 式 外模式 内模式 表 属性列 操作类型 建立、修改、删除、检索 建立、修改、删除、检索 建立、删除、检索 查找、插入、修改、删除 查找、插入、修改、删除
An Introduction to Database System
模 式
数 据
存取控制方法(续)
存取控制方法(续)
授权粒度
授权粒度是指可以定义的数据对象的范围
它是衡量授权机制是否灵活的一个重要指 标。 授权定义中数据对象的粒度越细,即可以 定义的数据对象的范围越小,授权子系统 就越灵活。
An Introduction to Database System
存取控制方法(续)
关系数据库中授权的数据对象粒度
An Introduction to Database System
存取控制方法(续)
存取控制小结
定义存取权限
用户
检查存取权限
DBMS
An Introduction to Database System
存取控制方法(续)
存取控制小结(续)
授权粒度
数据对象粒度:数据库、表、属性列、行
数据库系统原理
Principles of Database System
第五章 数据库保护
首都师范大学信息工程学院
An Introduction to Database System
第5章 数据库保护
5.1 5.2 5.3 5.4 5.5 数据库安全性 完整性 并发控制 恢复 数据库复制与镜象
An Introduction to Database System
An Introduction to Database System
视图机制(续)
在视图上进一步定义存取权限
GRANT SELECT
ON CS_Student
TO 王平 ;
An Introduction to Database System
4. 审计
什么是审计
启用一个专用的审计日志(Audit Log) 将用户对数据库的所有操作记录在上面
5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.1.8 数据库安全性控制概述 用户标识与鉴别 存取控制 自主存取控制方法 强制存取控制方法 视图机制 审计 数据加密
An Introduction to Database System
5.1.1 数据库安全性控制概述
数据库安全性(续)
数据库中数据的共享是在DBMS统一的严格
的控制之下的共享,即只允许有合法使用权 限的用户访问允许他存取的数据
数据库系统的安全保护措施是否有效是数据 库系统主要的性能指标之一
An Introduction to Database System
数据库安全性(续)
什么是数据库的安全性
An Introduction to Database System
存取控制方法(续)
检查存取权限
对于获得上机权后又进一步发出存取数据库 操作的用户
DBMS查找数据字典,根据其存取权限对 操作的合法性进行检查 若用户的操作请求超出了定义的权限,系 统将拒绝执行此操作
An Introduction to Database System
5.1
数据库安全性
问题的提出
数据库的一大特点是数据可以共享
但数据共享必然带来数据库的安全性问题
数据库系统中的数据共享不能是无条件的共享
例:军事秘密、 国家机密、 新产品实验数据、 市场需求分析、市场营销策略、销售计划、 客户档案、 医疗档案、 银行储蓄数据
An Introduction to Database System
通过鉴定后才提供机器使用权。
用户标识和鉴定可以重复多次
An Introduction to Database System
用户标识自己的名字或身份
用户名/口令 简单易行,容易被人窃取
每个用户预先约定好一个计算过程或者函数 系统提供一个随机数 用户根据自己预先约定的计算过程或者函数 进行计算 系统根据用户计算结果是否正确鉴定用户身 份
审计(续)
强制性机制:
用户识别和鉴定、存取控制、视图
预防监测手段:
审计技术
An Introduction to Database System
5. 数据加密
数据加密
防止数据库中数据在存储和传输中失密的有 效手段
加密的基本思想
根据一定的算法将原始数据(术语为明文, Plain text)变换为不可直接识别的格式(术 语为密文,Cipher text) 不知道解密算法的人无法获知数据的内容
关系系统中的存取权限(续)
定义方法
GRANT/REVOKE
An Introduction to Database System
存取控制方法(续)
关系系统中的存取权限(续)
例: 一张授权表
用户名 王 平 张明霞 张明霞 张明霞 张明霞 张明霞 数据对象名 允许的操作类型 关系Student SELECT 关系Student UPDATE 关系Course ALL SC. Grade UPDATE SC. Sno SELECT SC. Cno SELECT
定义存取权限 在数据库系统中,为了保证用户只能访问 他有权存取的数据,必须预先对每个用户 定义存取权限。
检查存取权限 对于通过鉴定获得上机权的用户(即合法 用户),系统根据他的存取权限定义对他 的各种操作请求进行控制,确保他只执行 合法操作。