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