【教学课件】第7章数据库安全与保护.ppt
《【教学课件】第7章数据库安全与保护.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第7章数据库安全与保护.ppt(92页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第第7 7章章 数据库安全与保护数据库安全与保护 7.1 7.1 数据库的安全性数据库的安全性7.1.17.1.1数据数据库安全性的含安全性的含义数数据据库库的的安安全全性性是是指指保保护护数数据据库库,防防止止因因用用户户非非法使用数据库造成数据泄露、更改或破坏。法使用数据库造成数据泄露、更改或破坏。安全性问题有许多方面,其中包括七个方面:安全性问题有许多方面,其中包括七个方面:(1)法法律律、社社会会和和伦伦理理方方面面的的问问题题,例例如如请请求求查查询信息的人是不是有合法的权力。询信息的人是不是有合法的权力。(2)物物理理控控制制方方面面的的问问题题,例例如如计计算算机机机机房房是是
2、否否应该加锁或用其他方法加以保护。应该加锁或用其他方法加以保护。(3)政策方面的问题,如确定存取原则,允许指定政策方面的问题,如确定存取原则,允许指定 用户存取指定数据。用户存取指定数据。(4)运行方面的问题,如使用口令时,如何使口令运行方面的问题,如使用口令时,如何使口令保密。保密。(5)硬件控制方面的问题,如硬件控制方面的问题,如CPU是否提供任何安是否提供任何安全性方面的功能。全性方面的功能。(6)操作系统安全性方面的问题,如在主存储器和操作系统安全性方面的问题,如在主存储器和数据文件用过以后,操作系统是否把它们的内容清数据文件用过以后,操作系统是否把它们的内容清除掉。除掉。(7)数据库
3、系统本身的安全性方面的问题。本章主数据库系统本身的安全性方面的问题。本章主要讨论的就是数据库系统本身的安全性问题,主要要讨论的就是数据库系统本身的安全性问题,主要考虑安全保护的策略,尤其是控制访问的策略。考虑安全保护的策略,尤其是控制访问的策略。7.1.27.1.2数据数据库安全控制的一般方法安全控制的一般方法 安安全全性性控控制制就就是是要要尽尽可可能能地地杜杜绝绝所所有有可可能能的的数数据据库非法访问,不管它们是有意的还是无意的。库非法访问,不管它们是有意的还是无意的。用户用户DBMSOSDB用户标识和鉴别存取控制操作系统安全保护密码存储图图7.1 计算机系统的安全模型计算机系统的安全模型
4、()()用户标识和鉴定用户标识和鉴定用户标识和鉴定(用户标识和鉴定(Identification&Authentication)是系统提供的最外层安全保护措是系统提供的最外层安全保护措施。标识和鉴定一个用户最常用的方法是用一个用施。标识和鉴定一个用户最常用的方法是用一个用户名或用户标识号来标明用户身份,通过用户名和户名或用户标识号来标明用户身份,通过用户名和口令来鉴定用户的方法简单易行,但用户名与口令口令来鉴定用户的方法简单易行,但用户名与口令容易被人窃取,因此还可以用更复杂的方法。例如,容易被人窃取,因此还可以用更复杂的方法。例如,利用用户的个人特征。利用用户的个人特征。()存取控制()存取
5、控制数据库系统中,为了保证用户只能访问他有权数据库系统中,为了保证用户只能访问他有权存取的数据,必须预先对每个用户定义存取权限。存取的数据,必须预先对每个用户定义存取权限。存取权限是由两个要素组成的:存取权限是由两个要素组成的:数据对象和操作类数据对象和操作类型型。在数据库系统中,定义存取权限称为。在数据库系统中,定义存取权限称为授权授权(Authorization)。衡量授权机制是否灵活的一个)。衡量授权机制是否灵活的一个重要指标是授权粒度,即可以定义的数据对象的范重要指标是授权粒度,即可以定义的数据对象的范围。授权粒度越细,授权子系统就越灵活,能够提围。授权粒度越细,授权子系统就越灵活,能
6、够提供的安全性就越完善。供的安全性就越完善。()视图机制()视图机制关系数据库系统中,就是为不同的用户定关系数据库系统中,就是为不同的用户定义不同的视图,通过视图机制把要保密的数据对义不同的视图,通过视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,从而自动地无权存取这些数据的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。对数据提供一定程度的安全保护。()审计()审计审计功能是一种监视措施,它跟踪记录有关数据的访审计功能是一种监视措施,它跟踪记录有关数据的访问活动。审计功能一般主要用于安全性要求较高的部门。问活动。审计功能一般主要用于安全性要求较高的部门。()数据加密()数据加密
7、数据加密是防止数据库中的数据在存储和传输中失密数据加密是防止数据库中的数据在存储和传输中失密的有效手段。加密方法主要有两种:替换方法和置换方法的有效手段。加密方法主要有两种:替换方法和置换方法7.1.3SQLServer7.1.3SQLServer的用的用户与安全性管理与安全性管理 Microsoft SQL Server 的安全性是非常的安全性是非常牢靠的牢靠的,任何用户企图访问数据库中的数据之前任何用户企图访问数据库中的数据之前,必须要通过四道关卡必须要通过四道关卡,图图 7.2表示出了这四个环表示出了这四个环节。节。图7.2SQLServer的四个环节 用户登录请求NT操作系统SQLSe
8、rver数据库服务器数 据库 对象SQLServer数据库1.进入进入Microsoft SQL Server服务器服务器 Microsoft SQL Server有两种鉴别模式有两种鉴别模式:Windows NT/2000鉴别鉴别和和Microsoft SQL Server鉴别。鉴别。2.访问访问Microsoft SQL Server数据库数据库 一般来说一般来说,访问访问Microsoft SQL Server数据库需数据库需经过以下三个步骤经过以下三个步骤:(1)在在Microsoft SQL Server服务器上建立服务器登服务器上建立服务器登录标识。录标识。(2)在数据库中建立用户
9、帐号、角色并设置用户访问在数据库中建立用户帐号、角色并设置用户访问权限权限。(3)(3)角色角色是数据库访问权限的管理单位是数据库访问权限的管理单位,其成员继其成员继承角色的访问权限。承角色的访问权限。(4)(4)角色共分两种角色共分两种:服务器角色服务器角色和和数据库角色数据库角色。服务器角色服务器角色负责整个负责整个Microsoft SQL Microsoft SQL ServerServer服务器的访问权限服务器的访问权限,而而数据库角色数据库角色只负只负责某个数据库的访问权限。数据库角色可再责某个数据库的访问权限。数据库角色可再往下分为三类往下分为三类:固定数据库角色固定数据库角色、
10、公共角色和公共角色和自定义数据库角色自定义数据库角色,而服务器角色只包含固定而服务器角色只包含固定服务器角色。服务器角色。固定服务器角色固定服务器角色 SYSTEM ADMINISTRATORS(sysadmin):该角色权限最大,能执行任何操作,包括否决其他固定服务器角色。DATABASE CREATORS(dbcreator):该角色能创建和修改数据库。DISK ADMINISTRATORS(diskadmin):该角色负责管理磁盘文件。PROCESS ADMINISTRATORS(processadmin):该角色管理运行在Microsoft SQL Server上的不同进程。SECUR
11、ITY ADMINISTRATORS(securityadmin):该角色管理服务器注册。Server ADMINISTRATORS(Serveradmin):该角色设置服务器配置。SETUP ADMINISTRATORS(setupadmin):该角色安装Microsoft SQL Server同步复制和管理扩展过程。固定数据库角色固定数据库角色 DATABASE OWNER(db_owner):该角色拥有某个数据库的所有权限,能执行其他数据库角色的操作。DATABASE ACCESS ADMINISTRATOR(db_accessadmin):该角色管理某个数据库的用户帐号。DATABAS
12、E SECURITY ADMINISTRATOR(db_securityadmin):该角色管理数据库的用户帐号和角色以及语句和对象权限。DATABASE BACKUP OPERATOR(db_dumpoperator):该角色负责备份数据库的工作。公共角色公共角色 每一个数据库都有一个公共角色,每创建一个新的用户帐号时,此帐号自动拥有该角色。不能对该角色添加或修改用户帐号,对其唯一的操作是为它分配权限。自定义数据库角色自定义数据库角色 自定义数据库角色同固定数据库角色一样,管理多个用户的相同权限。应用程序角色应用程序角色 该角色不分配给任何用户,而是分配给某一个运行在Microsoft SQ
13、L Server上的应用程序。设置应用程序角色的原因有两点设置应用程序角色的原因有两点:一是限制访问数据库所使用的应用程序;二是提高Microsoft SQL Server服务器的运 行性能,避免在此服务器上运行其他程序。(3)设置语句和对象权限设置语句和对象权限 用户可获得的权限主要有:对象权限对象权限 元组:SELECT、UPDATE视图:SELECT、UPDATE、DELETE、INSERT存储过程:EXECUTE 语句权限语句权限 创建数据库:CREATE DATABASE创建关系属性的默认值:CREATE DEFAULT创建存储过程:CREATE PROCEDURE创建关系中属取值性
14、规则:CREATE RULE创建视图:CREATE VIEW 备份数据库:BACKUP DATABASE备份事务日志:BACKUP TRANSACTION 3.安全性控制命令安全性控制命令(1)增加SQL Server用户 可以执行系统存储过程可以执行系统存储过程sp_add1ogin,它的格式它的格式 如下:如下:Sp_addloginlogin_id,passwd,defdb,deflanguageSp_addloginlogin_id,passwd,defdb,deflanguage(2)增加数据库用户增加数据库用户 sp_adduser login_id,username,grpnam
15、e(3)创建用户组创建用户组 sp_addgroup grpname(4)用户口令用户口令 sp_password old_passwd,new_passwd,login_id7.27.2完整性控制完整性控制数据库完整性的含义数据库完整性的含义 数数据据库库的的完完整整性性是是指指数数据据的的正正确确性性、有有效效性性和和相相容容性性,防防止止错错误误的的数数据据进进入入数数据据库库造造成成无无效效操作。操作。数据的完整性与安全性是数据库保护的两个数据的完整性与安全性是数据库保护的两个不同方面。安全性是防止用户非法使用数据库,不同方面。安全性是防止用户非法使用数据库,包括恶意破坏数据和越权存取
16、数据。完整性则是包括恶意破坏数据和越权存取数据。完整性则是防止合法用户使用数据库时向数据库中加入不合防止合法用户使用数据库时向数据库中加入不合语义的数据。也就是说,安全性措施的防范对象语义的数据。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。是不合语义的数据。7.2.2 完整性规则的组成完整性规则的组成完整性规则主要由以下三部分构成:完整性规则主要由以下三部分构成:(1)触发条件)触发条件:规定系统什么时候使用规则来检查:规定系统什么时候使用规则来检查数据。数据。(2)约束条件:)约束条件:规定系统检查用户发
17、出的操作请求规定系统检查用户发出的操作请求违背了什么样的完整性约束条件。违背了什么样的完整性约束条件。(3)违约响应:)违约响应:规定系统如果发现用户的操作请求规定系统如果发现用户的操作请求违背了完整性约束条件违背了完整性约束条件,应该采取一定的动作来保证应该采取一定的动作来保证数据的完整性,即违约时要做的事情。数据的完整性,即违约时要做的事情。根据完整性检查的时间不同,可把完整性约束根据完整性检查的时间不同,可把完整性约束分为分为立即执行约束立即执行约束(Immediate Constraints)和和延迟执行约束延迟执行约束(Deferred Constraints)。一条完整性规则可以用
18、一个五元组一条完整性规则可以用一个五元组(D,O,A,C,P)来形式化地表示。其中:来形式化地表示。其中:D(data)代表约束作用的数据对象;代表约束作用的数据对象;O(operation)代表触发完整性检查的数据库操作,代表触发完整性检查的数据库操作,即当用户发出什么操作请求时需要检查该完整性规即当用户发出什么操作请求时需要检查该完整性规则,是立即检查还是延迟检查;则,是立即检查还是延迟检查;A(assertion)代表数据对象必须满足的断言或语代表数据对象必须满足的断言或语义约束,这是规则的主体;义约束,这是规则的主体;C(condition)代表选择代表选择A作用的数据对象值的谓作用的
19、数据对象值的谓词;词;P(procedure)代表违反完整性规则时触发执行的代表违反完整性规则时触发执行的操作过程。操作过程。7.2.3 完整性约束条件的分类完整性约束条件的分类完整性约束从约束条件使用的对象分为完整性约束从约束条件使用的对象分为值的约束和值的约束和结构的约束。结构的约束。值的约束即对值的约束即对数据类型、数据格式、数据类型、数据格式、取值范围和空值取值范围和空值等进行规定。等进行规定。完整性约束从约束对象的状态分为完整性约束从约束对象的状态分为静态约束和动态静态约束和动态约束约束。7.2.4 触发器触发器(Trigger)1.触发器组成触发器组成 (1)事件事件:指对数据库进
20、行的插入、删除、修改等操作。指对数据库进行的插入、删除、修改等操作。触发器可以响应这些事件触发器可以响应这些事件,在适合的条件及恰当的时在适合的条件及恰当的时间内执行指定的动作。间内执行指定的动作。(2)条件条件:触发器测试给定的条件触发器测试给定的条件,若条件成立若条件成立,则执则执行相应的动作行相应的动作,否则什么也不执行。否则什么也不执行。(3)动作动作:动作是一系列的操作动作是一系列的操作,这些操作可以撤消触这些操作可以撤消触发器发生的事件发器发生的事件,可以是与事件相关的操作可以是与事件相关的操作,也可以也可以是与事件无关的其他操作。是与事件无关的其他操作。2.触发器的作用触发器的作
21、用 触发器的主要作用触发器的主要作用是实现由主码和外码所不能保证是实现由主码和外码所不能保证的、复杂的参照完整性和数据的一致性的、复杂的参照完整性和数据的一致性触发器还有其他许多不同的功能触发器还有其他许多不同的功能:(1)强化约束强化约束(Enforce Restriction)。(2)级联操作级联操作(Cascaded Operation)。(3)存储过程的调用存储过程的调用(Stored Procedure Invocation)。3.触发器类型触发器类型 从触发的元组来分有从触发的元组来分有语句级触发器和元组级触语句级触发器和元组级触发器发器。前者可以在语句执行前或执行后被触发。前者可
22、以在语句执行前或执行后被触发,后者后者在每个触发语句影响的元组触发一次。在每个触发语句影响的元组触发一次。从触发的时间来分还有从触发的时间来分还有BeforeBefore和和AfterAfter的两种形的两种形式式,分别在分别在InsertInsert、updateupdate及及deletedelete之前或之后执行。之前或之后执行。Microsoft SQL ServerMicrosoft SQL Server支持两种触发器支持两种触发器:After:After触发器与触发器与Instead ofInstead of触发器。触发器。下面以下面以SQL Server 2000为例,介绍为例,
23、介绍用用 Transact-SQL 定义触发器的方法。定义触发器的方法。定义触发器的基本语法定义触发器的基本语法:CREATE TRIGGER触发器名触发器名ON 表名表名|视图名视图名FOR|AFTER|INSTEAD OF INSERT,UPDATE,DELETEAS SQL 语句语句 例例 7.1 创建一个名为创建一个名为Ins_student的触发器的触发器,要求要求在向在向学生学生表插入元组后引发该触发器表插入元组后引发该触发器,检查所插入检查所插入的元组中系编号是否出现在的元组中系编号是否出现在院系院系表中表中,如果在如果在院系院系表中找不到相应的系编号表中找不到相应的系编号,则提
24、示用户则提示用户系编号输入系编号输入有误有误,并且回滚事务。并且回滚事务。解:解:CREATE TRIGGER Ins_studentON SAFTER INSERT /*触发器在插入元触发器在插入元 组后被引发组后被引发*/ASIF(SELECT COUNT(*)FROM D,InsertedWHERE D.Dnum=inserted.Dnum)=0BEGINPRINT 系编号输入有误系编号输入有误!ROLLBACK TRANSACTIONEND 为了验证我们创建的触发器是否发挥作用,为了验证我们创建的触发器是否发挥作用,我们可以再写一条我们可以再写一条SQL语句来插入一条新的学生语句来插入
25、一条新的学生信息,并故意将该学生的系编号设为院系表中没信息,并故意将该学生的系编号设为院系表中没有的一个,比如有的一个,比如8。插入数据的。插入数据的SQL语句如下:语句如下:INSERT INTO SVALUES(S010,王港王港,男男,34,87609876,8)执行结果:执行结果:系编号输入有误系编号输入有误!可见我们创建的触发器可见我们创建的触发器Ins_student正常地发挥了正常地发挥了作用。作用。例例 7.2建立一个名为建立一个名为 Ins_teacher 的触发器的触发器,在向在向 教师教师 表插入记录时引发该触发器表插入记录时引发该触发器,检查所插入元检查所插入元组中教师
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 数据库 安全 保护
限制150内