第7章数据库的安全保护课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第7章数据库的安全保护课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 安全 保护 课件
- 资源描述:
-
1、第第7 7章数据库的安全保护章数据库的安全保护7.1 数据库的安全性及SQL Server的安全保护技术用 户DBMSOSDB 用户标识和鉴别用户标识和鉴别 存取控制存取控制 操作系统安全保护操作系统安全保护 密码存储密码存储 数据库的安全性是指保护数据库,以防止不合法的使数据库的安全性是指保护数据库,以防止不合法的使用造成的数据泄密、更改或破坏。用造成的数据泄密、更改或破坏。7.1.1 数据库安全性控制的一般方法数据库安全性控制的一般方法图图1数据库系统的安全模型数据库系统的安全模型1.用户标识与鉴别(1)用输入用户名(用户标识号)来标明用户身份用输入用户名(用户标识号)来标明用户身份。系统
2、内部记录着所有合法用户的标识。系统对输入的系统内部记录着所有合法用户的标识。系统对输入的用户名与合法用户名对照,鉴别此用户是否为合法用户。用户名与合法用户名对照,鉴别此用户是否为合法用户。(2)通过回答口令标识用户身份。通过回答口令标识用户身份。系统常常要求用户输入口令,只有口令正确才能进入系统常常要求用户输入口令,只有口令正确才能进入系统。为保密起见,口令由用户自己定义并可以随时变更。系统。为保密起见,口令由用户自己定义并可以随时变更。为防止口令被人窃取,用户在终端上输入口令时,不把口为防止口令被人窃取,用户在终端上输入口令时,不把口令的内容显示在屏幕上,而用字符令的内容显示在屏幕上,而用字
3、符“*”替代其内容。替代其内容。(3)通过回答对随机数的运算结果表明用户身份。通过回答对随机数的运算结果表明用户身份。系统提供一个随机数,用户根据预先约定的计算过程系统提供一个随机数,用户根据预先约定的计算过程或计算函数进行计算,并将计算结果输给到计算机。系统或计算函数进行计算,并将计算结果输给到计算机。系统根据用户计算结果判定用户是否合法。根据用户计算结果判定用户是否合法。2.存取控制授权定义授权定义 具有授权资格的用户,如数据库管理员具有授权资格的用户,如数据库管理员DBA或建表户或建表户DBO,通过,通过数据控制语言数据控制语言DCL,将授权决定告知数据库管,将授权决定告知数据库管理系统
4、理系统。(1)数据库系统通过以下)数据库系统通过以下3步来实现数据控制:步来实现数据控制:存权处理存权处理 数据库管理系统数据库管理系统DBMS把授权的结果编译后存入数据字把授权的结果编译后存入数据字典中。典中。查权操作查权操作 当用户提出操作请求时,系统要在数据字典中查找该当用户提出操作请求时,系统要在数据字典中查找该用户的用户的数据操作权限数据操作权限,当用户拥有该操作权时才能执行其操,当用户拥有该操作权时才能执行其操作,否则系统将拒绝其操作。作,否则系统将拒绝其操作。(2)关系中的用户权限)关系中的用户权限用户权限主要包括用户权限主要包括数据对象数据对象和和操作类型操作类型两个要素。通过
5、两个要素。通过授权规定用户可以对哪些数据对象进行哪些类型的操作。授权规定用户可以对哪些数据对象进行哪些类型的操作。数据对象数据对象操作类型操作类型模式、外模式、内模式模式、外模式、内模式建立、修改、检索建立、修改、检索表或者记录、字段表或者记录、字段查找、插入、修改、删除查找、插入、修改、删除(3)SQL的数据控制功能的数据控制功能SQL的数据控制功能为的数据控制功能为GRANT语句(授权)和语句(授权)和REVOKE语句(收权)。语句(收权)。系统特权:系统特权:GRANT CREATE DATABASE,BACKUP DATABASE TO 王平王平对象特权:对象特权:GRANT sele
6、ct,update(s#)on s to 王平王平(4)授权机制授权机制授权粒度:用户权限定义中数据对象范围。授权粒度:用户权限定义中数据对象范围。在关系数据库中,授权粒度包括在关系数据库中,授权粒度包括关系、记录或属性关系、记录或属性。授权粒度越细,授权子系统就越灵活,但系统定义与检授权粒度越细,授权子系统就越灵活,但系统定义与检查权限的开销也会相应地增大。查权限的开销也会相应地增大。DBA不需要进行授权就可进行数据库内的任何操作。不需要进行授权就可进行数据库内的任何操作。数据对象的创建者(数据对象的创建者(dbo)自动获得对于该数据对象)自动获得对于该数据对象的所有操作权限。的所有操作权限
7、。获得数据操作权的用户可以通过获得数据操作权的用户可以通过GRANT语句把权限语句把权限转授给其他用户。转授给其他用户。T-SQL 语句语句权限说明权限说明CREATE DATABASE创建数据库,只能由创建数据库,只能由SA授予授予SQL服务器用户服务器用户CREATE PROCETURE创建存储过程创建存储过程CREATE RULE创建规则创建规则CREATE TABLE创建表创建表CREATE VIEW创建视图创建视图BACKUP DATABASE备份数据库备份数据库BACKUP LOG备份日志文件备份日志文件SQL SERVER中中系统特权系统特权适用的语句和权限说明适用的语句和权限说
8、明对象特权:对象特权:类似于数据库类似于数据库操作语言操作语言DMLDML的语句权限,它指的语句权限,它指用户对数据库中的表、视图、存储过程等对象的用户对数据库中的表、视图、存储过程等对象的操作权限操作权限。对象对象对象特权对象特权语义语义表、视图表、视图SelectSelect,insert,update,deleteinsert,update,delete对表或视图的查询、插对表或视图的查询、插入、修改和删除操作入、修改和删除操作表和视图的字段表和视图的字段S e l e c t(S e l e c t(),update(),update()允许对指定的字段查看允许对指定的字段查看或修改或
9、修改存储过程存储过程executeexecute运行存储过程运行存储过程3.视图视图:视图:为不同的用户定义不同的视图,通过视图把数据为不同的用户定义不同的视图,通过视图把数据对象限制在一定范围内,把要保密的数据对无权存取的对象限制在一定范围内,把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全用户隐藏起来,从而自动地对数据提供一定程度的安全保护。保护。4、审计、审计 审计功能就是把用户对数据库的所有操作自动记录下审计功能就是把用户对数据库的所有操作自动记录下来放入审计日志中。来放入审计日志中。一旦发生数据被非法存取,一旦发生数据被非法存取,DBADBA可以利用审计跟踪
10、的可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出信息,重现导致数据库现有状况的一系列事件,找出非非法存取数据的人、时间和内容法存取数据的人、时间和内容等。等。加密是根据一定的加密是根据一定的算法将原始数据(明文,算法将原始数据(明文,Plain text)变换为不可直接识别的格式)变换为不可直接识别的格式(密文,(密文,Cipher text),从而使得不知道解密算法的人无法获得数据),从而使得不知道解密算法的人无法获得数据的内容。的内容。加密方法主要有两种:加密方法主要有两种:替换方法。使用密钥将明文中的每一个字符转换为密替换方法。使用密钥将明文中的每一个字符转换为密文中的
11、字符。文中的字符。1)置换方法。仅将明文的字符按不同的顺序重新排列。置换方法。仅将明文的字符按不同的顺序重新排列。5、数据加密机制、数据加密机制7.1.2 SQL Server的安全体系结构和安全认证模式的安全体系结构和安全认证模式 1.SQL Server的安全体系结构的安全体系结构(1)(1)操作系统的安全防线操作系统的安全防线:网络管理员负责建立用户组,网络管理员负责建立用户组,设置帐号并注册,决定不同的用户对不同系统资源的访问设置帐号并注册,决定不同的用户对不同系统资源的访问级别。级别。(2)SQL(2)SQL ServerServer的运行安全的运行安全防线防线:通过另一种帐号设置来
12、通过另一种帐号设置来创建附加安全层。创建附加安全层。(3)SQL Server(3)SQL Server数据库的安全防线数据库的安全防线:特定数据库都有自己特定数据库都有自己的用户和角色,该数据库只能由它的用户或角色访问,其的用户和角色,该数据库只能由它的用户或角色访问,其他用户无权访问其数据。他用户无权访问其数据。(4)SQL Server(4)SQL Server数据库对象数据库对象的安全防线的安全防线:对权限进行管理,对权限进行管理,TSQLTSQL的的DCLDCL功能保证合法用户既使进入了数据库也不能有超功能保证合法用户既使进入了数据库也不能有超越权限的数据存取操作。越权限的数据存取操
13、作。2.SQL Server的安全认证模式的安全认证模式(1)(1)WindowsWindows(S S)安全认证模式)安全认证模式 SQLSQL服务器通过使用服务器通过使用WindowsWindows网络用户的安全性网络用户的安全性来控来控制用户对制用户对SQLSQL服务器的登录访问。它允许一个网络用户登服务器的登录访问。它允许一个网络用户登录到一个录到一个SQLSQL服务器服务器上时不必再提供一个单独的登录帐号上时不必再提供一个单独的登录帐号及口令,从而实现及口令,从而实现SQLSQL服务器与服务器与WindowsWindows(S S)登录的安全)登录的安全集成。集成。(2)(2)混合安
14、全认证模式混合安全认证模式 使用使用WindowsWindows(S S)安全认证模式或)安全认证模式或SQL ServerSQL Server安全安全认证模式。认证模式。SQL ServerSQL Server安全认证模式要求安全认证模式要求用户必须输入用户必须输入有效的有效的SQL ServerSQL Server登录帐号及口令。登录帐号及口令。在混合安全模式下,在混合安全模式下,可以使用可以使用WindowsWindows网络服务器网络服务器的用户账号的用户账号或或SQL ServerSQL Server自身验证身份的登录帐号自身验证身份的登录帐号,两,两者均有效。者均有效。2.数据库用
15、户的管理数据库用户的管理(1)dbo用户用户 dbo用户即数据库拥有者或数据库创建者,用户即数据库拥有者或数据库创建者,dbo在其所拥在其所拥有的数据库中拥有所有的操作权限。有的数据库中拥有所有的操作权限。dbo的身份可被重新分的身份可被重新分配给另一个用户,系统管理员配给另一个用户,系统管理员Sa可以作为他所管理系统的任可以作为他所管理系统的任何数据库的何数据库的dbo用户。用户。(2)guest用户用户 如果如果guest用户在数据库存在,则允许任意一个登录用户用户在数据库存在,则允许任意一个登录用户作为作为guest用户访问数据库,其中包括那些不是数据库用户用户访问数据库,其中包括那些不
16、是数据库用户的的SQL服务器用户。服务器用户。除系统数据库除系统数据库master和临时数据库和临时数据库tempdb的的guest用户不用户不能被删除外,其他数据库都可以将能被删除外,其他数据库都可以将自己自己guest用户删除用户删除,以,以防止非数据库用户的登录用户对数据库进行访问。防止非数据库用户的登录用户对数据库进行访问。7.2.1 完整性约束条件及完整性控制完整性约束条件及完整性控制7.2 7.2 数据库完整性及数据库完整性及SQL Server的完整性控制的完整性控制根据约束条件针对的数据库对象不同,可以分为:根据约束条件针对的数据库对象不同,可以分为:表级约束,表级约束,若干元
17、组间、关系中以及关系之间联系的约若干元组间、关系中以及关系之间联系的约束;束;元组级约束元组级约束,元组中各个字段间联系的约束;,元组中各个字段间联系的约束;属性级约束,属性级约束,针对列的类型、取值范围、精度、排序等针对列的类型、取值范围、精度、排序等而制定的约束条件。而制定的约束条件。数据库的完整性:指数据的正确性和相容性。数据库的完整性:指数据的正确性和相容性。完整性检查完整性检查:系统用一定的机制来检查数据库中的数据:系统用一定的机制来检查数据库中的数据是否满足规定的条件(是否满足规定的条件(完整性约束条件)完整性约束条件),这些完整性,这些完整性约束条件将作为约束条件将作为模式模式的
18、一部分存入数据库中。的一部分存入数据库中。1、静态约束、静态约束,数据库每一确定状态时的数据对象所应满足的约,数据库每一确定状态时的数据对象所应满足的约束条件;束条件;(1 1)对数据类型的约束。)对数据类型的约束。包括数据类型、长度、精度等。包括数据类型、长度、精度等。(2 2)对数据格式的约束:)对数据格式的约束:如规定学号的前两位表示入学年份,如规定学号的前两位表示入学年份,第三位表示系的编号,第四位表示专业编号,第五位代表班的第三位表示系的编号,第四位表示专业编号,第五位代表班的编号等等。编号等等。(3 3)对取值范围的约束:)对取值范围的约束:如学生的成绩取使范围为如学生的成绩取使范
19、围为0 0一一100100。大。大学生的年龄为大于学生的年龄为大于1414等。等。(4 4)对空值的约束:)对空值的约束:(5 5)静态元组级约束:)静态元组级约束:是元组中各个字段之间联系的约束是元组中各个字段之间联系的约束 。如:开始日期小于结束日期,发货数量小于等于订货数量等,如:开始日期小于结束日期,发货数量小于等于订货数量等,职工的最低工资不能低于规定的最低值等。职工的最低工资不能低于规定的最低值等。(6 6)静态表级约束:)静态表级约束:指若干元组之间、关系之间联系的约束。指若干元组之间、关系之间联系的约束。约束条件所涉及对象的约束条件所涉及对象的状态状态不同,完整性约束可分为:不
20、同,完整性约束可分为:数据库从数据库从一种状态一种状态转变为转变为另一种状态另一种状态时,新、时,新、旧值之间所应满足的约束条件。旧值之间所应满足的约束条件。如:将允许空值的列改为不允许空值时,如果如:将允许空值的列改为不允许空值时,如果该列目前已存在空值,则拒绝这种修改。该列目前已存在空值,则拒绝这种修改。又:职工的工龄只能增加,职工工资在更改时,又:职工的工龄只能增加,职工工资在更改时,规定新值不得少于旧值。规定新值不得少于旧值。2、动态约束、动态约束:7.2.2 7.2.2 DBMSDBMS的完整性控制功能的完整性控制功能定义功能定义功能,提供定义完整性约束条件的机制。,提供定义完整性约
21、束条件的机制。2)检查功能,检查功能,检查用户发出的操作请求,看其是否违背检查用户发出的操作请求,看其是否违背了完整性约束条件。了完整性约束条件。3)控制功能,控制功能,监视数据操作的整个过程,如果发现有违监视数据操作的整个过程,如果发现有违背了完整性约束条件的情况,则采取一定的动作来保证背了完整性约束条件的情况,则采取一定的动作来保证数据的完整性。数据的完整性。7.2.3 SQL Server数据完整性实现方法数据完整性实现方法1.SQL Server的数据完整性的种类的数据完整性的种类实体完整性。实体完整性。实体完整性为表级完整性,它要求表中所有的元组都应实体完整性为表级完整性,它要求表中
22、所有的元组都应该有一个惟一的标识符(该有一个惟一的标识符(主码主码)。)。(2)参照完整性。参照完整性。参照完整性是表级完整性,它维护参照表中的外码与被参照完整性是表级完整性,它维护参照表中的外码与被参照表中主码的相容关系。参照表中主码的相容关系。如:在如:在SCSC表中,有学号为表中,有学号为9800198001的选课记录,则的选课记录,则S S表表中不允许删除该学生的记录。中不允许删除该学生的记录。(3)域完整性。域完整性。域完整性为列级和元组级完整性。它为列或列组指定域完整性为列级和元组级完整性。它为列或列组指定一个有效的数据集,并确定该列是否允许为空。一个有效的数据集,并确定该列是否允
23、许为空。2.SQL Server实现数据完整性的两种方式完整性类型完整性类型约束类型约束类型完整性功能描述完整性功能描述域完整性域完整性DEFAULT插入数据时,如果没有明确提供列值,则用插入数据时,如果没有明确提供列值,则用缺省值作为该列的值缺省值作为该列的值CHECK指定某个列或列组可以接受值的范围,或指指定某个列或列组可以接受值的范围,或指定数据应满足的条件定数据应满足的条件实 体 完 整实 体 完 整性性P R I M A R Y KEY指定主码,确保主码值不重复,并不允许主指定主码,确保主码值不重复,并不允许主码为空值码为空值UNIQUE指出数据应具有惟一值,防止出现冗余指出数据应具
24、有惟一值,防止出现冗余参 照 完 整参 照 完 整性性F O R E I G N KEY定义外码、被参照表和其主码定义外码、被参照表和其主码(1)声明数据完整性。声明数据完整性。通过在定义表时声明数据完整性。包括各种约束、缺省和通过在定义表时声明数据完整性。包括各种约束、缺省和规则。规则。(2)过程数据完整性。过程数据完整性。编写触发器和存储过程来实现。编写触发器和存储过程来实现。7.3 7.3 数据库的并发控制数据库的并发控制事务是用户定义的一个数据库操作序列,是一个完整的事务是用户定义的一个数据库操作序列,是一个完整的工作单元。工作单元。一个事务可以是一条或一组一个事务可以是一条或一组SQ
25、LSQL语句、或整个应用程序。语句、或整个应用程序。数据库是可供多个用户共享的信息资源,允许多个用数据库是可供多个用户共享的信息资源,允许多个用户同时使用的数据库系统为户同时使用的数据库系统为多用户数据库系统多用户数据库系统。数据库的数据库的并发控制并发控制就是控制数据库,防止多用户就是控制数据库,防止多用户并发并发存取同一数据时存取同一数据时造成的数据错误,保证数据库的造成的数据错误,保证数据库的一致性一致性。7.3.1 事务及并发控制的基本概念事务及并发控制的基本概念1.事务的概念事务的概念事务是一个用户定义的完整的工作单元,一个事务事务是一个用户定义的完整的工作单元,一个事务内的所有语句
展开阅读全文