第7章_数据库安全保护.ppt
《第7章_数据库安全保护.ppt》由会员分享,可在线阅读,更多相关《第7章_数据库安全保护.ppt(180页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第第7章章 数据库安全保护数据库安全保护第第7 7章章 数据库安全保护数据库安全保护 第第7章章 数据库安全保护数据库安全保护 第第7 7章章 数据库安全保护数据库安全保护第第7章章 数据库的安全保护数据库的安全保护 第第7章章 数据库安全保护数据库安全保护 第第7 7章章 数据库安全保护数据库安全保护7.1数据库的数据库的安全性控制安全性控制7.2数据库的数据库的完整性控制完整性控制7.3并发控制并发控制与封锁与封锁7.4数据库的数据库的恢复恢复 第第7章章 数据库安全保护数据库安全保护 第第7 7章章 数据库安全保护数据库安全保护7.17.1.1数据库安全性的含义数据库安全性的含义&7.
2、1.2安全性控制的一般方法安全性控制的一般方法&7.1.1数据库安全性的含义数据库安全性的含义 第第7章章 数据库安全保护数据库安全保护 第第7章章 数据库安全保护数据库安全保护7.1.2 安全性控制的一般方法安全性控制的一般方法7.1.2 安全性控制的一般方法安全性控制的一般方法 第第7章章 数据库安全保护数据库安全保护 第第7章章 数据库安全保护数据库安全保护7.1.2 安全性控制的一般方法安全性控制的一般方法 第第7章章 数据库安全保护数据库安全保护 第第7章章 数据库安全保护数据库安全保护 第第7 7章章 数据库安全保护数据库安全保护系统提供系统提供的的最外层最外层安全保护措施安全保护
3、措施 系统系统提供提供一定的方式一定的方式让用户让用户标识标识自己的名字或身份自己的名字或身份;系统内部系统内部记录记录着所有合法用户的标识;着所有合法用户的标识;每次每次用户用户要求要求进入系统时进入系统时,由,由系统系统核对核对用户提供的身份标识;用户提供的身份标识;通过通过鉴定后鉴定后才提供才提供机器使用权机器使用权。用户标识和鉴定可以重复多次用户标识和鉴定可以重复多次基本方法基本方法:用户标识自己的名字或身份的方法用户标识自己的名字或身份的方法:用一个用一个用户名用户名或或用户标识符用户标识符来标明用户的身份来标明用户的身份 用户名用户名与与口令口令 通过通过回答回答对对随机数的随机数
4、的运算结果运算结果表明用户身份表明用户身份 第第7章章 数据库安全保护数据库安全保护 DBMS规定规定用户想要操作用户想要操作DB中的数据,中的数据,必须拥有必须拥有相应的存取权限相应的存取权限。存存 取权限取权限由由数据对象和操作类型两个要素数据对象和操作类型两个要素组成组成。定义一个用户的存取权限定义一个用户的存取权限 就是就是要定义这个用户可以在哪些数据对象上进行哪些类型的操作。要定义这个用户可以在哪些数据对象上进行哪些类型的操作。在数在数 据库系统中,定义用户存取权限据库系统中,定义用户存取权限称为称为授权授权。&DBMS将将授权结果授权结果以一以一张授权张授权表表(授权表主要有三个属
5、性,授权表主要有三个属性,用户标识用户标识、数数 据对象据对象和和操作类型操作类型)的形式的形式存放在数据字典存放在数据字典中中。当用户当用户提出操作请求时提出操作请求时,DBMS会根据会根据数据字典数据字典中保存的授权信息,判中保存的授权信息,判 断用户是否有权对相应对象进行操作,若无权则断用户是否有权对相应对象进行操作,若无权则拒绝执行拒绝执行操作。操作。是数据库是数据库系统最主要的系统最主要的安全保护措施安全保护措施 第第7章章 数据库安全保护数据库安全保护n授权授权(Authorization)类型类型nDB对象权限:对象权限:由由DBA或对象创建者授予。或对象创建者授予。n角色权限:
6、角色权限:由由DBA授予授予n数据库数据库对象对象授授/撤权撤权n授权授权:GRANT,.ON对象名对象名TO,.WITHGRANTOPTIONn撤权撤权:REVOKE,.ON对象名对象名FROM,.;对对象象对象类型对象类型操作权限操作权限列列TABLESelect,Insert,Update,DeleteAllPRIVILEGES(四种权限的总和)(四种权限的总和)视图视图TABLESelect,Insert,Update,DeleteAllPRIVILEGES(四种权限的总和)(四种权限的总和)基本表基本表TABLESelect,Insert,Update,Delete,Alter,In
7、dex,AllPRIVILEGES(六种权限的总和)(六种权限的总和)数据库数据库DATABASECREATETAB建立表的权限,可由建立表的权限,可由DBA授予普通用户授予普通用户不同的操作对象不同的操作对象有有不同的操作权限不同的操作权限例:例:把对把对SC表和表和Course表的全部权限授予用户表的全部权限授予用户U2和和U3GRANTALLPRIVILIGESONTABLESC,CourseTOU2,U3;例:例:把对表把对表SC的查询权限授予所有用户的查询权限授予所有用户GRANTSELECTONTABLESCTOPUBLIC;例:例:把查询把查询Student表和修改学生学号的权限
8、授给用户表和修改学生学号的权限授给用户U4GRANTUPDATE(Sno),SELECTONTABLEStudentTOU4;例:例:DBA把数据库把数据库SPJ中建立表的权限赋给用户中建立表的权限赋给用户User1GRANTCREATETABONDATABASESPJTOUser1;例:例:把用户把用户U6修改学生学号的权限收回修改学生学号的权限收回REVOKEUPDATE(Sno)ONTABLEStudentFROMU6;第第7章章 数据库安全保护数据库安全保护n角色角色创建创建:CREATEROLE角色名角色名角色角色是是权限的集合权限的集合,可以为一组具有相同权限的用户创建一个,可以为
9、一组具有相同权限的用户创建一个角色,用角色来管理数据库权限可以简化授权的过程角色,用角色来管理数据库权限可以简化授权的过程n将将一角色一角色授予授予其它其它用户用户或或角色角色:GRANT,.TO,.WITHADMINOPTIONn角色角色授授/撤撤权权n授权授权:GRANT,.ONTO,.n撤权撤权:REVOKE,.ON对象名对象名FROM,.;例:例:将表将表S的查询、修改、插入、删除的权限授予用户张平、李梅、的查询、修改、插入、删除的权限授予用户张平、李梅、王灵、黄海王灵、黄海CREATEROLER1;GRANTSelect,Insert,Update,DeleteONTABLESTOR
10、1;GRANTR1TO张平、李梅、王灵、黄海张平、李梅、王灵、黄海;例:例:将上例将上例R1角色修改为只有查询的权力角色修改为只有查询的权力REVOKEInsert,Update,DeleteONTABLESFROMR1;第第7章章 数据库安全保护数据库安全保护用户名用户名数据对象名数据对象名允许的操作类型允许的操作类型刘勇刘勇关系关系BookSelect张伟张伟关系关系BookAll张伟张伟关系关系ReaderAll张伟张伟关系关系BorrowUpdate丁钰丁钰关系关系BorrowSelect丁钰丁钰关系关系BorrowInsert表表7-1 一个授权表的实例一个授权表的实例 第第7章章
11、数据库安全保护数据库安全保护 第第7章章 数据库安全保护数据库安全保护 第第7章章 数据库安全保护数据库安全保护 第第7章章 数据库安全保护数据库安全保护 第第7章章 数据库安全保护数据库安全保护 第第7章章 数据库安全保护数据库安全保护 第第7章章 数据库安全保护数据库安全保护 第第7章章 数据库安全保护数据库安全保护 第第7章章 数据库安全保护数据库安全保护 第第7章章 数据库安全保护数据库安全保护 第第7章章 数据库安全保护数据库安全保护 第第7章章 数据库安全保护数据库安全保护 第第7章章 数据库安全保护数据库安全保护 第第7章章 数据库安全保护数据库安全保护 第第7 7章章 数据库安
12、全保护数据库安全保护7.2 完整性控制完整性控制7.2.1数据完整性含义数据完整性含义&7.2.2数据库完整性的实现数据库完整性的实现&7.2.触发器触发器&第第7章章 数据库安全保护数据库安全保护7.2.1 数据完整性含义数据完整性含义 第第7章章 数据库安全保护数据库安全保护 第第7章章 数据库安全保护数据库安全保护7.2.2 完整性规则完整性规则为了为了维护维护数据库数据库数据数据的完整性的完整性,DBMSDBMS必须能够必须能够:提供提供定义定义完整性约束条件完整性约束条件的机制的机制提供提供完整性检查完整性检查的方法的方法违约处理违约处理 第第7章章 数据库安全保护数据库安全保护7.
13、2.2 完整性规则完整性规则7.2.2数据的完整性的实现:数据的完整性的实现:提供定义完整性约束条件提供定义完整性约束条件提供完整性检查的方法提供完整性检查的方法违约处理违约处理 完整性约束条件完整性约束条件也称也称完整性规则,完整性规则,它是它是数据库数据库中数据必须满足的语意约束条件中数据必须满足的语意约束条件 SQL中中主要用定义主要用定义实体实体完整性完整性、参照参照完整性完整性、用户用户定义完整性定义完整性、触发器触发器来来维护数据库中维护数据库中的的数据数据完整性完整性的。的。实体实体完整性完整性:PRIMARYKEY 参照参照完整性完整性:FOREIGNKEYREFERENCES
14、 用户定义用户定义完整性完整性:NOTNULLUNIQUEDEFAULTCHECK 触发器触发器:用户定义用户定义的的SQLSQL事务事务命令命令的的集合集合,当对当对一个表一个表进行插入、更改、删除时这组命进行插入、更改、删除时这组命令就自动执行的程序令就自动执行的程序 第第7章章 数据库安全保护数据库安全保护7.2.2 完整性规则完整性规则提供定义完整性约束条件提供定义完整性约束条件提供完整性检查的方法提供完整性检查的方法违约处理违约处理 完整性检擦的完整性检擦的方法是方法是:在:在对表对表进行进行如下操作时如下操作时开始检查开始检查INSERTUPDATEDELETE也可以也可以在在事务
15、结束后事务结束后检查检查,检,检查这些查这些操作执行后操作执行后数据数据是否是否违违背了背了完整性约束条件,结果真完整性约束条件,结果真确才提交确才提交7.2.2数据的完整性的实现:数据的完整性的实现:第第7章章 数据库安全保护数据库安全保护7.2.2 完整性规则完整性规则提供定义完整性约束条件提供定义完整性约束条件提供完整性检查的方法提供完整性检查的方法违约处理违约处理 违约处理违约处理:指指若发现操作违背了完整性若发现操作违背了完整性约束,所进行的处理约束,所进行的处理 违约处理的违约处理的方法:方法:违背约束,违背约束,拒绝执行(拒绝执行(其是系统默认的其是系统默认的违约处理方法违约处理
16、方法)若若破坏破坏参照完整性参照完整性,可采用可采用处理方法处理方法:拒绝拒绝级联删除级联删除级联修改级联修改设置为空设置为空 因此定义参照完整性时除了定义外码外还要因此定义参照完整性时除了定义外码外还要 定义外码是否为空定义外码是否为空7.2.2数据的完整性的实现:数据的完整性的实现:第第7章章 数据库安全保护数据库安全保护7.2.2 完整性规则完整性规则 为为完整性约束完整性约束命名命名语句语句格式格式:CONSTRAINT约束名约束名 约束类型约束类型 增加增加约束约束语句格式语句格式:ALTER TABLE 表名表名ADD CONSTRAINT约束名约束类型约束名约束类型 删除删除约束
17、语句格式约束语句格式:ALTER TABLE 表名表名DROP CONSTRAINT约束名约束名例例:ALTER TABLE S ADD CONSTRAINTs_p(check(sex in(男男,女女)例例:DROP CONSTRAINT s_p 第第7章章 数据库安全保护数据库安全保护7.2.2 完整性规则完整性规则 实体实体完整性完整性定义定义格式格式:第一种方法:第一种方法:在在列定义列定义后跟后跟:CONSTRAINT约束名约束名PRIMARYKEY;第二种方法:第二种方法:在在表表级级定义定义:CONSTRAINT约束名约束名PRIMARYKEY(属性列表属性列表)其中其中:候选码
18、候选码有有多个时多个时只能在表上定义只能在表上定义 第第7章章 数据库安全保护数据库安全保护7.2.2 完整性规则完整性规则 参照完整性参照完整性定义格式:定义格式:CONSTRAINT 约束名约束名 FOREIGNKEY(属性列表属性列表)REFERENCES表名表名(列名列名)ONDELETEONUPDATE第一种方法:在第一种方法:在列定义列定义后跟后跟CONSTRAINT约束名约束名FOREIGNKEYREFERENCES表名表名(列名列名)第二种方法:在第二种方法:在表级定义表级定义:其中:其中:ONDELETE:说明当被参照关系某元组被删除说明当被参照关系某元组被删除时,参照关系中
19、相应元组应级联删除或限制删除时,参照关系中相应元组应级联删除或限制删除ONUPDATE:说明当被参照关系某元组被更新说明当被参照关系某元组被更新时,参照关系中相应元组应级联时,参照关系中相应元组应级联更新更新或限制删除或限制删除 第第7章章 数据库安全保护数据库安全保护7.2.2 完整性规则完整性规则 用户定义完整性用户定义完整性定义格式:定义格式:第一种方法:第一种方法:在在列定义列定义后跟:后跟:CONSTRAINT 约束名约束名 约束类型;约束类型;第二种方法:第二种方法:在在表级定义表级定义:CONSTRAINT约束名约束名 约束类型及相应的约束约束类型及相应的约束 第第7章章 数据库
20、安全保护数据库安全保护7.2.2 完整性规则完整性规则例:实体完整性检查举例:例:实体完整性检查举例:CREATETABLEStudent(SnoCHAR(9)PRIMARYKEY,SnameCHAR(20),SsexCHAR(2),SageSMALLINT,SdeptCHAR(20);定义定义:实体完整性实体完整性检查检查的的违约处理违约处理:当对当对表表插入插入或或更新更新时,时,RDBMS将将按照实体完整规则按照实体完整规则自动检查自动检查 检查检查主码主码是否为空是否为空,只要有一个为空就拒绝插入或修改,只要有一个为空就拒绝插入或修改 检查主码检查主码是否唯一是否唯一,如果不唯一则,如
21、果不唯一则拒绝修改拒绝修改:CONSTRAINTS_PPRIMARY KEY(SNO)第第7章章 数据库安全保护数据库安全保护7.2.2 完整性规则完整性规则例:参照完整性检查举例:例:参照完整性检查举例:定义:定义:参照完整性检查的违约处理:参照完整性检查的违约处理:CREATETABLESC(SnoCHAR(9)FOREIGNKEYREFERENCESS(Sno),CnoCHAR(4),GradeINT,PRIMARYKEY(Sno,Cno),FOREIGNKEY(Cno)REFERENCESC(Cno);被参照表(例如:被参照表(例如:student)参照表(例如:参照表(例如:SC)违
22、约处违约处理理可能可能破坏破坏参照完整性参照完整性插入插入元元组组拒拒绝绝可能破坏可能破坏参照完整性参照完整性修改修改外外码值码值拒拒绝绝删删除除元元组组可能可能破坏参照完整性破坏参照完整性拒拒绝绝级联删级联删除除设设置置为为空空修改修改主主码值码值可能破坏参照完整性可能破坏参照完整性拒拒绝绝级联级联修改修改设设置置为为空空 第第7章章 数据库安全保护数据库安全保护7.2.2 完整性规则完整性规则CREATETABLESC(SnoCHAR(9),CnoCHAR(4),GradeINT,PRIMARYKEY(Sno,Cno),FOREIGNKEY(SNO)REFERENCESS(Sno)ONDE
23、LETECASECADE/*当删除当删除student表中元组时,级联删除表中元组时,级联删除SC中的元组中的元组*/ONUPDATECASECADE/*当更新当更新student表中元组时,级联更新表中元组时,级联更新SC中的元组中的元组*/FOREIGNKEY(CNO)REFERENCESC(Cno),ONDELETENOACTION/*当删除当删除Course中元组造成与中元组造成与SC不一致时拒绝删除不一致时拒绝删除*/ONUPDATECASECADE/*当更新当更新Course中元组时级联更新中元组时级联更新SC中的元组中的元组*/);第第7章章 数据库安全保护数据库安全保护7.2.
24、2 完整性规则完整性规则例:用户例:用户(在属性)(在属性)定义的完整性检查举例:定义的完整性检查举例:定义:定义:用户定义完整性检查的违约处理:用户定义完整性检查的违约处理:当对当对表表插入插入或或更新更新时,时,RDBMS将将按照按照用户定义用户定义完整规则完整规则自动检查自动检查 检查如果不满足则拒绝执行检查如果不满足则拒绝执行:CREATETABLESC(SnoCHAR(9)NOTNULL,CnoCHAR(4)NOTNULL,GradeINTCHECK(GRADEBETWEEN0AND100),PRIMARYKEY(Sno,Cno),FOREIGNKEY(sno)REFERENCESS
25、(Sno),FOREIGNKEY(Cno)REFERENCESC(Cno);第第7章章 数据库安全保护数据库安全保护7.2.2 完整性规则完整性规则例:当性别为男时,其名字不能以例:当性别为男时,其名字不能以MS.打头:打头:CREATETABLEStudent(SnoCHAR(9)PRIMARYKEYSnameCHAR(20)NOTNULLUNIQUE,SsexCHAR(2)CHECK(Ssexin(女女OR男男),SageSMALLINTCHECK(Sage0ANDSage40),SdeptCHAR(20),);CHECK(Ssex=女女ORSnameNOTLIKEMS.%)/*定义了元组
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 安全 保护
限制150内