《数据库保护机制》PPT课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《《数据库保护机制》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据库保护机制》PPT课件.ppt(86页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第九章 数据库保护机制数据库数据库原理与应用原理与应用 讲讲 授授:陈秀琼陈秀琼 电电 话话:8602686:8602686 第九章 数据库保护机制第一章第一章数据库系统概述数据库系统概述 第二章第二章 关系数据库关系数据库 第三章第三章数据库标准语言数据库标准语言 第四章使用第四章使用ADO访问访问数据库数据库第五章第五章T-SQLSQL编程编程 第六章数据库设计第六章数据库设计第七章第七章规范化理论规范化理论 第八章第八章数据库保护机制数据库保护机制 第九章第九章数据库技术新进展数据库技术新进展第九章 数据库保护机制第第8章数据库保护机制章数据库保护机制 数据库中存放着大量的有价值的信息,
2、数据库中存放着大量的有价值的信息,因此采用怎样行之有效的措施保护数据库因此采用怎样行之有效的措施保护数据库是非常重要的。是非常重要的。比如比如,保护数据库数据的,保护数据库数据的正确正确性、有性、有效性,保护数据库效性,保护数据库安全安全性,保护数据库既性,保护数据库既使是出现各种使是出现各种故障故障,也能对其进行有效地,也能对其进行有效地恢复恢复等。等。第九章 数据库保护机制第第8章数据库保护机制章数据库保护机制8.1 完整性控制完整性控制8.2 安全性控制安全性控制8.3 并发控制并发控制8.4 数据库备份与恢复数据库备份与恢复主要内容主要内容第九章 数据库保护机制8.1 数据库的完整性数
3、据库的完整性数据库的完整性指数据的正确性和有效性。指数据的正确性和有效性。数据库的完整性是为了防止数据库中存在数据库的完整性是为了防止数据库中存在不符合实际语义的数据,防止错误信息的不符合实际语义的数据,防止错误信息的输入和输出。输入和输出。数据库是否具备完整性关系到数据库系统数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据能否真实地反映现实世界,因此维护数据库完整性是非常重要的。库完整性是非常重要的。第九章 数据库保护机制8.1.1 完整性规则完整性规则完整性规则完整性规则是指附加在数据库数据上的语义约束条是指附加在数据库数据上的语义约束条件。件。DBMS的完整性控制
4、机制应具有三个方面的功能的完整性控制机制应具有三个方面的功能:1.完整性定义功能完整性定义功能。提供定义完整性规则的机制。提供定义完整性规则的机制;如:性别如:性别IN 男男,女女2.完整性检查功能完整性检查功能。检查用户发出的操作请求是否。检查用户发出的操作请求是否违背了完整性约束条件违背了完整性约束条件;3.如果发现用户操作违背了完整性规则,如果发现用户操作违背了完整性规则,触发的过触发的过程程(如撤销用户操作如撤销用户操作)。第九章 数据库保护机制8.1.1 完整性规则完整性规则完整性规则作用的对象可以是关系、元组完整性规则作用的对象可以是关系、元组和列。因此和列。因此完整性规则可分为完
5、整性规则可分为:1.列上的约束列上的约束:列的类型、取值范围、精度、:列的类型、取值范围、精度、排序等约束。排序等约束。2.元组的约束元组的约束:元组中各个字段间的联系的:元组中各个字段间的联系的约束。约束。3.关系的约束关系的约束:若干元组之间、关系集合上:若干元组之间、关系集合上以及关系之间的联系的约束。以及关系之间的联系的约束。第九章 数据库保护机制8.1.1 完整性规则完整性规则完整性约束又可分为完整性约束又可分为:静态约束、动态约:静态约束、动态约束。束。1.静态约束静态约束:是指数据库在每一确切状态时,:是指数据库在每一确切状态时,数据对象所满足的约束条件,它反映数据数据对象所满足
6、的约束条件,它反映数据库状态合理性的约束。这是最重要的一类库状态合理性的约束。这是最重要的一类约束。约束。2.动态约束动态约束:是指数据库从一种状态转变到:是指数据库从一种状态转变到另一状态时,新、旧值之间所满足的约束另一状态时,新、旧值之间所满足的约束条件,它是反映数据库状态变迁的约束。条件,它是反映数据库状态变迁的约束。第九章 数据库保护机制8.1.1 完整性规则完整性规则上述两种分类结合起来,形成了上述两种分类结合起来,形成了6种完整种完整性约束。性约束。静态列级约束静态列级约束静态元组约束静态元组约束静态关系约束静态关系约束动态列级约束动态列级约束动态元组约束动态元组约束动态关系约束动
7、态关系约束第九章 数据库保护机制8.1.2 SQL Server的完整性的完整性本节介绍本节介绍SQL Server的完整性控制策略。的完整性控制策略。SQL Server数据完整性有四种类型数据完整性有四种类型:实体完整性、域完整性、实体完整性、域完整性、参照完整性、用户定义完整性参照完整性、用户定义完整性第九章 数据库保护机制8.1.2 SQL Seerver的完整性的完整性1.实体完整性实体完整性构成主键的主属性不能取空值构成主键的主属性不能取空值。体现为:。体现为:UNIQUE唯一性约束(不允许为唯一性约束(不允许为null)PRIMARY KEY 约束(不允许为约束(不允许为null
8、)例:例:CREATE TABLE 选课选课(学号学号CHAR(8)NOT NULL,,PRIMARY KEY(学号学号,课号课号),)第九章 数据库保护机制8.1.2 SQL Server的完整性的完整性2.域完整性域完整性属性列属性列(字段字段)满足的约束条件满足的约束条件。体现为:。体现为:(1)数据类型的约束数据类型的约束:包括数据的类型、长度、包括数据的类型、长度、单位、精度等。单位、精度等。(2)数据格式的约束数据格式的约束例例:规定学号的前两位表示入学年份,中:规定学号的前两位表示入学年份,中间两位表示系的编号,后四位为班级号和序间两位表示系的编号,后四位为班级号和序号,号,xx
9、xxxxxx。出生日期:出生日期:YY-MM-DD第九章 数据库保护机制8.1.2 SQL Server的完整性的完整性(3)取值范围或取值集合的约束取值范围或取值集合的约束.例如例如:规定成绩的取值范围为:规定成绩的取值范围为0100域级域级check子句子句(4)对空值的约束对空值的约束:有的列允许取空值,有的有的列允许取空值,有的列不允许取空值。列不允许取空值。(5)设置默认值设置默认值default约束。约束。第九章 数据库保护机制 建立关系模式建立关系模式teacher(tno,tname,sex,age,sfID,join_date),要求主键为工号要求主键为工号tno,不能为空且
10、必须,不能为空且必须是数字字符;姓名非空;年龄必须介于是数字字符;姓名非空;年龄必须介于18-65之间;身份证号,必须唯一;性别只能之间;身份证号,必须唯一;性别只能是是男男或或女女;进入单位日期默认状;进入单位日期默认状态取系统时间。态取系统时间。第九章 数据库保护机制CREATE TABLE teacher(Tno VARCHAR(6)NOT NULL CHECK(isnumeric(tno)=1),Tname VARCHAR(10)NOT NULL,Sfid CHAR(18)UNIQUE,Sex CHAR(2)CHECK(sex IN(男男,女女),Age INT CHECK(age B
11、ETWEEN 18 AND 65),Join_date DATETIME DEFAULT GETDATE(),PRIMARY KEY(tno)第九章 数据库保护机制8.1.2 SQL Server的完整性的完整性3.参照完整性参照完整性两个表之间满足的引用关系的约束两个表之间满足的引用关系的约束。即:外键表。即:外键表中外键的取值参照主键表中主键的值。体现为:中外键的取值参照主键表中主键的值。体现为:CREATE TABLE 选课选课(.,FOREIGN KEY(学号学号)REFERENCES 学生学生(学号学号)ON UPDATE CASCADE|NO ACTIONON DELETE CAS
12、CADE|NO ACTION,)默认受限删除或更新,但可设置为默认受限删除或更新,但可设置为CASCADE|NO ACTION(将参照表中所有外键值与基本表中主键将参照表中所有外键值与基本表中主键值相对应的元组一同删除值相对应的元组一同删除/对参照表没有任何影响对参照表没有任何影响)第九章 数据库保护机制8.1.2 SQL Server的完整性的完整性4.用户定义完整性用户定义完整性用户定义完整性是用户定义完整性是针对应用业务需要针对应用业务需要而定而定义的完整性约束条件。体现为:义的完整性约束条件。体现为:CHECK子句子句3.3.规则(下节介绍)规则(下节介绍)第九章 数据库保护机制8.1
13、.3 使用规则和触发器实现完整性使用规则和触发器实现完整性一般一般不是很复杂的完整性约束都是在不是很复杂的完整性约束都是在create table语句语句中定义。中定义。复杂的复杂的完整性完整性实现要用实现要用触发器触发器和和规则规则。1.使用规则实现完整性使用规则实现完整性 规则规则是独立于表的单独定义、存储的数据是独立于表的单独定义、存储的数据库对象。库对象。第九章 数据库保护机制创建规则创建规则 CREATE RULE 规则名规则名AS 约束表达式约束表达式规则中规则中可以是能用于可以是能用于WHERE子句中的任何表达式。子句中的任何表达式。如如:Birthday=1980-01-01
14、ANDBirthday=GETDATE()grade IN(a,A,B,b,C,c,D,d)code LIKE a-z%0-9 8.1.3 使用规则和触发器实现完整性使用规则和触发器实现完整性第九章 数据库保护机制例例8.2 创建创建sno_rule规则,使得学号首字母为规则,使得学号首字母为SS、后接、后接5 5位数字字符。位数字字符。CREATE RULE sno_rule ASsno LIKE S0-90-90-90-90-98.1.3 使用规则和触发器实现完整性使用规则和触发器实现完整性第九章 数据库保护机制规则的绑定规则的绑定创建好规则后,规则只是存储在数据库中创建好规则后,规则只是
15、存储在数据库中的对象并没有发生作用,只有将规则绑定的对象并没有发生作用,只有将规则绑定到相应表的属性列,才能实现完整性约束。到相应表的属性列,才能实现完整性约束。用存储过程用存储过程sp_bindrule绑定规则。绑定规则。语法格式:语法格式:sp_bindrule 规则名规则名,对象名对象名例例8.3 将规则将规则sno_rule绑定到学生表的学号属绑定到学生表的学号属性列上。性列上。sp_bindrule sno_rule,student.sno8.1.3 使用规则和触发器实现完整性使用规则和触发器实现完整性第九章 数据库保护机制规则的松绑规则的松绑规则绑定后,可以解除,即松绑。规则绑定后
16、,可以解除,即松绑。用存储过程用存储过程sp_unbindrule为规则松绑。为规则松绑。语法格式:语法格式:sp_unbindrule 对象名对象名例例8.4 解除规则解除规则sno_rule在学生表的学号属性在学生表的学号属性列上的绑定。列上的绑定。sp_unbindrule student.sno8.1.3 使用规则和触发器实现完整性使用规则和触发器实现完整性第九章 数据库保护机制删除规则删除规则DROP RULE 规则名规则名1,规则规则2,注意注意:在删除规则前,必须先将其从约束对:在删除规则前,必须先将其从约束对象上解除。象上解除。8.1.3 使用规则和触发器实现完整性使用规则和触
17、发器实现完整性第九章 数据库保护机制前面介绍的一些约束机制,属于前面介绍的一些约束机制,属于被动被动的约束的约束机制。在检查出对数据库的操作违反约束后,机制。在检查出对数据库的操作违反约束后,只能做些比较简单的动作,比如拒绝操作。只能做些比较简单的动作,比如拒绝操作。如果需要处理复杂的完整性限制,且希望在如果需要处理复杂的完整性限制,且希望在某个操作后,系统能某个操作后,系统能自动根据自动根据条件转去执行条件转去执行各种操作,那么可以用触发器机制来实现各种操作,那么可以用触发器机制来实现。第第5章已经介绍过触发器建立和使用。这里章已经介绍过触发器建立和使用。这里我们就举一个复杂点的例子。我们就
18、举一个复杂点的例子。8.1.3 使用规则和触发器实现完整性使用规则和触发器实现完整性第九章 数据库保护机制例例8.5 在在“选课选课”表上建立触发器,实现教务表上建立触发器,实现教务规定的每门课程的选修人数必须在规定的每门课程的选修人数必须在180人以人以内的约束。内的约束。CREATE TRIGGER SC_count ON 选课选课FOR INSERT ASDECLARE cno CHAR(6)SELECT cno=inserted.课号课号FROM insertedIF 180(SELECT COUNT(*)FROM 选课选课WHERE 课号课号=cno)8.1.3 使用规则和触发器实现
19、完整性使用规则和触发器实现完整性第九章 数据库保护机制 BEGIN PRINT 对不起,该课已经选满!对不起,该课已经选满!ROLLBACK ENDELSE BEGIN PRINT 祝贺你,选课成功!祝贺你,选课成功!COMMITEND8.1.3 使用规则和触发器实现完整性使用规则和触发器实现完整性第九章 数据库保护机制8.2 安全性控制安全性控制数据库安全性的定义数据库安全性的定义数据库安全性数据库安全性是指保护数据库以防止不合法是指保护数据库以防止不合法的使用造成的数据泄露、更改或破坏。的使用造成的数据泄露、更改或破坏。数据库系统的安全性依赖于其所在的计算数据库系统的安全性依赖于其所在的计
20、算机和网络环境的安全性。见下图。机和网络环境的安全性。见下图。第九章 数据库保护机制SQL Server2000的安全机制数据库对象用户浏览器防火墙Web 服务器数据库服务器数据库B/S模式下的安全体系第九章 数据库保护机制SQL Server2000的安全机制硬件环境的安全性硬件环境的安全性操作系统的安全性操作系统的安全性SQL Server的安全性的安全性数据库的安全性数据库的安全性数据库对象的安全性数据库对象的安全性第九章 数据库保护机制 各用户在各级安全机制中操作各用户在各级安全机制中操作windows SQL Server服务器服务器 jxgl 数据库数据库student表表 zs
21、zs public角色修改字段角色修改字段 wang fj(zhang 保管员角色保管员角色 增删改增删改、liu)fj/liu(sno,sname)(sysadmin角色)第九章 数据库保护机制一、SQL Server2000服务器安全性SQL Server2000SQL Server2000使用以下两种方法来识别用户:使用以下两种方法来识别用户:WindowsWindows用户、用户、SQL Server2000SQL Server2000用户用户在安装在安装SQL Server2000SQL Server2000可选择的模式:可选择的模式:WindowsWindows验证模式:验证模式:
22、登陆登陆SQL Server2000SQL Server2000时,时,只进行只进行WindowsWindows用户验证;用户验证;混合模式混合模式:登陆:登陆SQL Server2000SQL Server2000时既可以使用时既可以使用WindowsWindows验证也可以使用验证也可以使用SQL Server2000SQL Server2000验证。验证。使用企业管理器修改验证模式:使用企业管理器修改验证模式:选中要管理的服选中要管理的服务器右击务器右击“属性属性”“”“安全性安全性”,确定,确定。重。重新启动新启动SQL Server2000SQL Server2000。第九章 数据库
23、保护机制一、SQL Server2000服务器安全管理(一)管理(一)管理Windows用户用户展开要管理的服务器展开要管理的服务器展开展开“安全性安全性”节点,节点,右击右击“登录登录”“”“新建登录新建登录”-”-添加添加WindowsWindows用用户为户为SQL ServerSQL Server的登录用户,并设置其要访问的登录用户,并设置其要访问的数据库的数据库(二)管理(二)管理SQL Server用户用户展开要管理的服务器展开要管理的服务器展开展开“安全性安全性”节点,节点,右击右击“登录登录”“”“新建登录新建登录”-”-选择选择SQL ServerSQL Server身份验证
24、输入密码,设置其数据库角色和要访身份验证输入密码,设置其数据库角色和要访问的数据库问的数据库第九章 数据库保护机制一、SQL Server2000服务器安全管理特殊帐户特殊帐户Sa在完成在完成SQL Server安装后,安装后,SQL Server就自就自动建立了一个特殊的帐户动建立了一个特殊的帐户Sa,它拥有服务器、所它拥有服务器、所有系统数据库和用户数据库的所权限,拥有最有系统数据库和用户数据库的所权限,拥有最高的管理权限,拥有高的管理权限,拥有System admin角色,可角色,可以执行服务器范围内的所有操作。以执行服务器范围内的所有操作。在刚完成在刚完成SQL Server安装后,安
25、装后,Sa帐户没有密帐户没有密码或弱密码码或弱密码,这是相当危险的。这是相当危险的。方法一:使用强口令方法一:使用强口令方法二:禁用方法二:禁用Sa,新建一个用户,赋予新建一个用户,赋予System admin角色角色第九章 数据库保护机制一、SQL Server2000服务器安全管理一旦用户获得一旦用户获得SQL Server2000SQL Server2000服务器的权限后,服务器的权限后,就可以设置用户访问单个数据库的权限。就可以设置用户访问单个数据库的权限。使用企业管理器添加数据库用户使用企业管理器添加数据库用户方法一:给服务器用户创建登录时,指定使用方法一:给服务器用户创建登录时,指
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库保护机制 数据库 保护 机制 PPT 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内