数据库原理第四章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

38
1)主键子句
PRIMARY KEY (S#)
CREATE TABLE S
( SNO CHAR(4) NOT NULL, SN CHAR(8) NOT NULL, AGE SMALLINT, SEX CHAR(1),
PRIMARY KEY(SNO));
2)主键短语 SNO CHAR(4) PRIMARY KEY
14
例1:
grant select , update on s to wang with grant OPTION ; 例2:
grant insert(s#,c#) on sc to wang,zhang with grant OPTION ;
15
回收语句
语法: revoke {<权限表> | All privileges} on <数据库元素> from <用户名表>
35
2.静态约束和动态约束
所谓静态约束是指对数据库每一确定状 态的数据所应满足的约束条件。以上我们 所讲的约束都属静态约束。 动态约束是指数据库从一种状态转变为 另一种状态时新、旧值之间所应满足的约 束条件。例如,当更新职工工资时要求新 工资值不低于旧工资值。
36
3.立即执行约束和延迟执行约束
立即执行约束是指在执行用户 事务时,对事务中某一更新语句执 行完后马上此数据所应满足的约束 条件进行完整性检查。
– Windows NT认证模式。 – 混合认证模式。
• 既可以使用NT认证,也可以使用SQL Server认证 • 默认的系统管理员登录帐号为sa,密码为空
24
(2)访问许可确认
• 通过认证阶段只表示用户建立了到SQL Server服务器的连接,并不代表用户能够访 问SQL Server中的数据 • 必须再通过许可确认,才能访问数据库。 用户获得了访问数据库的许可之后,才能 够对服务器上的数据库进行权限许可下的 各种操作 • 这种用户访问数据库权限的设置是通过用 户帐号来实现的(默认数据库用户为dbo )。
16
例1:revoke select , update on s from wang cascade ;
例2: revoke insert(s#,c#) on sc
from wang,zhang ;
17
角色
角色是一组数据库权限的集合,可以为一组具 有相同权限的用户创建一个角色, 使用角色 可以把很多用户统一成一个整体以方便管理, 简化授权的过程
12
(二)授权子系统
授权机制可以保证用户只能进行其 权限范围内的操作。
在数据库系统中,为了保证数据的 安全性,用户对数据的操作必须首先从 DBA处获得权限,才能进行对数据的操 作。同时数据库系统也允许用户将获得 的权限转授给其他用户,也允许把已授 给其他用户的权限再回收上来。
13
授权语句
GRANT {<权限表> | All privileges} on <数据库元素> To {<用户名表> | public} [with grant OPTION]
34
一个关系中某属性的值集是同 一关系或另一关系中某属性值集的 子集。 如在课程关系C中,前修课PC#必 须是课程号C#的子集。学生选课关 系SC中,课程号C#必须是课程关系C 中C#的子集。这二个例子是关系模 型的参照完整性。即一个关系的外 码的值集一定是相应的另一个关系 上主码属性值集的子集。
二、SQL中的两个安全机制
(一)视图机制 视图是从一个或几个基本表导出的表,是虚 表,视图定义后可以像基本表一样用于查询和删 除,但其更新操作(增、删、改)会受到限制。
视图机制把用户可以使用的数据定义在视图 中,这样用户就不能使用视图定义外的其他数据, 从而保证了数据库的安全性。视图机制使系统具 有三个优点: 数据安全性,数据独立性,操作简便性
32
(2)关于数据之间联系的约束
数据库中同一关系的不同属性 之间可以有一定的联系,从而应满 足一定的约束条件,同时,由于数 据库中数据是结构化的,不同的关 系之间也可以有联系,因而不同关 系的属性之间也可满足一定的约束 条件。
33
例如,任何一个码值唯一地确 定关系的一个元组。 因此候选码的值在关系中必须 是唯一的。主码值必须非空(关系 模型的实体完整性)。
8
存取控制
获得上机权的用户还要根据预先 定义好的用户权限进行存取控制,保 证用户只能存取他有权存取的数据。 所谓用户权限是指不同的用户对于不 同的数据对象允许执行的操作权限, 它由两部分组成, (1) 数据对象, (2) 操作类型。
9

数据对象 模式、外模式、 内模式 表或者记录、 字段
如:
操作类型 建立、修改、 使用(检索) 查找、插入、 修改、删除
22
(四)SQL Server中的安全性管理
访问许可确认
安全帐户认证
SQL Server 用户 登录 login 服务器 用户 user 数据库
23
(1)安全帐户认证
• 安全帐户认证用来验证用户是否具有连接 SQL Server的权限。 • SQL Server 提供了两种确认用户的认证模 式:
用法: create role r1(标准) grant select,update on table s to r1 grant r1 to user1 revoke r1 from user1
18
常用存取控制方法
1. 自主存取控制 – 通过 SQL 的 GRANT 语句和 REVOKE 语句实现 权限管理,灵活,安全程度低 – 用户定义存取权限, DBMS检查存取权限 – 优点:能够通过授权机制有效地控制其他用户 对敏感数据的存取 – 缺点:可能存在数据的“无意泄露”,低级别用 户访问到保密数据 原因:这种机制仅仅通过对数据的存取权限来进 行安全控制,而数据本身并无安全性标记
延迟执行约束是指在整个事务 执行结束后方对此约束条件进行完 整性检查,结果正确方能提交。
37
三、SQL中的完整性约束
SQL中的完整性约束规则有主键约束、外键 约束、属性值约束等多种形式。 (1)主键约束。它是数据中最重要的一种约 束。在关系中主键值不允许空也不允许 出现重复,主键可用主键子句或主键短 语进行定义。
26
完整性和安全性的区别?
完整性是为了防止数据库中存在不符合语 义的数据,防止错误信息的输入和输出,即 所谓垃圾进垃圾出(Garbage In Garbage Out)所造成的无效操作和错误结果。 安全性是保护数据库防止恶意的破坏和 非法的存取,当然,完整性和安全性是密切 相关的,特别从系统实现的方法来看,某一 种机制常常既可用于安全性保护亦可用于完 整性保证。
6
一、安全措施的设臵模型
在一般计算机系统中,安全措施 是一级一级层层设臵的。 例如可以有如下的模型:
7
用户标识和鉴定
首先,系统提供一定的方式让用户 标识自己的名字或身份。系统进行核实, 通过鉴定后才提供机器使用权。
常用的方法:
用一个用户名和口令来标明用户身 份,系统鉴别此用户是否是合法用户。 若是,则允许使用计算机。
25
第二节
数据库的完整性
数据库的完整性是指数据的正确性和相 容性,DBMS必须提供一种功能来保证数据库 中数据的完整性。 这种功能亦称为完整性检查,即系统用 一定的机制来检查数据库中的数据是否满足 规定的条件,这种条件在数据库中称为完整 性约束条件,数据的约束条件是语义的体现, 这些完整性约束条件将作为模式的一部分存 入数据库中。
30
又如,规定年份是四位整数,月 份是一至十二的整数。规定零件颜 色是红、绿、黄、黑、白五种。 规定某属性值的类型和格式。如 规定职工号第一个字符必须是字母, 后面是四位数字。
31
规定某属性的值的集合必须满 足某种统计条件。 如任何职工的工资不得超过此 部门平均工资的三倍,任何职工 的奖金不得超过此部门平均工资 的30%。
第四章
数据库安全性和完整性
1
教学内容:
数据库的完整性;数据库的安全 性。
要求学生 掌握: 教学重点 及难点:
wenku.baidu.com
1、SQL的完整性实现方法; 2、数据库存取控制;
SQL中的完整性约束
2
第四章 数据库安全性和完整性
第一节 数据库的安全性 第二节 数据库的完整性
3
第一节 数据库的安全性
数据库的安全性是指保护数据库以防止不 合法的使用所造成的数据泄露、更改或破坏。 对数据库不合法的使用称为数据库的滥用。数 据库的滥用可分为无意的和恶意的两类。 在事务处理时,无意的滥用容易发生系统 故障,并发访问数据库时引起异常现象以及违 反数据完整性约束等逻辑错误。 恶意的滥用主要指未经授权的读取数据 (即窃取信息)和未经授权的修改数据(即破 4 坏数据)。
19
2.强制存取控制 – 解决:对系统控制下的所有主客体实施强制存取控 制策略 – 主体是用户,客体是文件、表、索引、视图等 – 主体的敏感度标记称为许可证级别,客体的敏感度 标记称为密级 – 当主体的许可证级别大于或等于客体的密级时,该 主体才能读取相应的客体 – 当主体的许可证级别等于客体的密级时,该主体才 能写相应的客体 – 对数据本身进行密级标记,无论数据如何复制,标 记与数据是一个不可分的整体,提供了更高级别的 安全性 – 适用于对数据有严格而固定密级分类的部门军事部 门、政府部门
10
权 限
用户使用数据库的方式称为权限。 用户访问数据库的权限有:
(1)读权限,允许用户读数据,但不能修改数据; (2)插入权限,允许用户插入新的数据,但不能修改数据; (3)修改权限,允许用户修改数据,但不能删除数据; (4)删除权限,允许用户删除数据;
用户修改数据库模式的权限有:
(1)索引权限,允许用户创建和删除索引; (2)资源权限,允许用户创建新关系; (3)修改权限,允许用户在关系结构中加入或删除属性; (4)撤销权限,允许用户撤销关系; 11
2.静态约束和动态约束
3.立即执行约束和延迟执行约束
29
1.值的约束和结构的约束
前者指对数据的值的限制,后者指对数据 之间联系的限制。
(1)关于对数据值的约束 这类约束条件是指对数据取值类型、 范围、精度等的规定;
例如:对某个属性和属性组合规定某个值集, 如职工年龄必须是大于或等于16,小于或等于 65的整数或实数,若为实数,可规定精度为小 数点后一位数字。
安全性级别包括: (1)环境级,如机房重地 (2)职员级,不同权限 (3)OS级,设口令、密码 (4)网络级,防火墙 (5)数据库系统级,不同权限
5
数据安全的级别
• 1985年,美国颁布(可信计算机系统安全评测标 准)TCSEC(Trusted Computer System Evaluation Criteria),把数据安全级别划分为四类七级:
无保护级 自主保护级
强制保护级
验证保护级
• D级,最低安全性(OS); • C1级,主客体分离、身份鉴别、数据完整性、自主存 取控制(用户可定义和传播存取权限,灵活) • C2级,审计; • B1级,强制存取控制(MAC)(严格,用户不能直接 控制)--可信系统(安全系统) • B2级,良好的结构化设计、形式化安全模型; • B3级,全面的访问控制、可信恢复; • A1级,形式化认证。
27
一、完整性子系统
数据库中数据发生错误,往往是由非法 更新引起的。
数据库完整性是通过DBMS的完整性子系 统实现的,它有两个功能:
(1)监督事务的执行,并测试是否违反完整 性规则。 (2)如有违反,则采取恰当的操作,如拒绝、 报告违反情况,改正错误等方法进行处 理。
28
二、完整性约束条件
完整性约束条件是加在数据之上的 语义约束条件,完整性约束条件可以进 行以下分类: 1.值的约束和结构的约束
20
(三)审计
• 将用户对数据库的所有操作记录在审计日 志(Audit Log)中 • DBA利用审计日志找出非法存取数据的人、 时间和内容 • 审计通常是很费时间和空间的,DBMS将 其作为可选特征,允许DBA根据应用对安全 性的要求,灵活地打开或关闭审计功能。
21
• 提供AUDIT和NOAUDIT语句,AUDIT语句 用来设臵审计功能, NOAUDIT语句取消审 计功能 例1. 对修改SC表结构或数据的操作进行审计 AUDIT ALTER,UPDATE ON SC; 例2. 取消对SC表的审计 NOAUDIT ALTER,UPDATE ON SC;
相关文档
最新文档