数据库课件-07章-数据库安全性.ppt

上传人:资****亨 文档编号:125530423 上传时间:2020-03-18 格式:PPT 页数:83 大小:163KB
返回 下载 相关 举报
数据库课件-07章-数据库安全性.ppt_第1页
第1页 / 共83页
数据库课件-07章-数据库安全性.ppt_第2页
第2页 / 共83页
数据库课件-07章-数据库安全性.ppt_第3页
第3页 / 共83页
数据库课件-07章-数据库安全性.ppt_第4页
第4页 / 共83页
数据库课件-07章-数据库安全性.ppt_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《数据库课件-07章-数据库安全性.ppt》由会员分享,可在线阅读,更多相关《数据库课件-07章-数据库安全性.ppt(83页珍藏版)》请在金锄头文库上搜索。

1、单击此处编辑母版标题样 式 单击此处编辑母版副标题样式 1 第7章 数据库完整性 和安全性 单击此处编辑母版标题样 式 单击此处编辑母版副标题样式 2 7 1 数据库完整性 n数据库的完整性是指 数据的正确性 有效性和相容性 n例 n学生的学号必须唯一 n性别只能是男或女 n学生所在的专业必须是学校已开设的专业 为维护数据库的完整性 DBMS必须 1 提供定义完整性约束条件的机制 2 提供完整性检查的方法 3 违约处理 单击此处编辑母版标题样 式 单击此处编辑母版副标题样式 5 7 1 1 实体完整性 1 实体完整性定义 n关系模型的实体完整性 nCREATE TABLE中用PRIMARY K

2、EY定义 n单属性构成的码有两种说明方法 n定义为列级约束条件 n定义为表级约束条件 n对多个属性构成的码只有一种说明方法 n定义为表级约束条件 例7 1 将Product表中的pdID属性定义为主码 CREATE TABLE Product pdID INT PRIMARY KEY 定义为列级约束条件 pdName VARCHAR 40 NOT NULL pdSupplier VARCHAR 20 pdPrice MONEY 定义为列级约束条件 或者 CREATE TABLE Product pdID INT pdName VARCHAR 40 NOT NULL pdSupplier VAR

3、CHAR 20 pdPrice MONEY PRIMARY KEY pdID 定义为表级约束条件 例7 2 将OrderDetails表中的orderID pdID属性 组定义为主码 CREATE TABLE OrderDetails orderID BIGINT pdID INT quantity INT PRIMARY KEY orderID pdID 只能定义为表级约束条件 在表级定义主码 2 实体完整性检查和违约处理 n插入或对主码列进行更新操作时 RDBMS 按照实体完整性规则自动进行检查 包括 n 检查主码值是否唯一 如果不唯一则拒绝插入 或修改 n 检查主码的各个属性是否为空 只

4、要有一个为 空就拒绝插入或修改 单击此处编辑母版标题样 式 单击此处编辑母版副标题样式 11 7 1 2 参照完整性 1 参照完整性定义 n关系模型的参照完整性定义 n在CREATE TABLE中用FOREIGN KEY短语 定义哪些列为外码 n用REFERENCES短语指明这些外码参照哪些表 的主码 例7 3 定义OrderDetails表中的参照完整性 CREATE TABLE OrderDetails orderID BIGINT pdID INT quantity INT PRIMARY KEY orderID pdID FOREIGN KEY orderID REFERENCES O

5、rders orderID 定义参照完整性 FOREIGN KEY pdID REFERENCES Product pdID 定义参照完整性 2 参照完整性检查和违约处理 可能破坏参照完整性的情况及违约处理 被参照表 例如Orders 参照表 例如 OrderDetails 违约处理 可能破坏参照完整性 插入元组拒绝 可能破坏参照完整性 修改外码值拒绝 删除元组 可能破坏参照完整性 拒绝 级连删除 设置为空值 修改主码值 可能破坏参照完整性 拒绝 级连修改 设置为空值 CREATE TABLE OrderDetails orderID BIGINT pdID INT quantity INT

6、PRIMARY KEY orderID pdID FOREIGN KEY orderID REFERENCES Orders orderID ON DELETE CASCADE 当删除Orders表中的元组时 级联删除OrderDetails 表中相应的元组 ON UPDATE CASCADE 当更新Orders表中的元组时 级联更新OrderDetails 表中相应的元组 FOREIGN KEY pdID REFERENCES Product pdID ON DELETE NO ACTION 当删除Product表中的元组造成OrderDetails表不一致是拒绝执行 例7 4 在定义Ord

7、erDetail表时指定违约处理策略 单击此处编辑母版标题样 式 单击此处编辑母版副标题样式 16 7 1 3 用户定义的完整性 n用户定义的完整性就是针对某一具体应用的 数据必须满足的语义要求 nRDBMS提供 而不必由应用程序承担 1 属性上的约束条件的定义 nCREATE TABLE时定义 n列值非空 NOT NULL n列值唯一 UNIQUE n检查列值是否满足一个布尔表达式 CHECK 例7 5 建立Customer表 指定custName和custCity列不允 许取空值 CREATE TABLE Customer custID INT PRIMARY KEY custName V

8、ARCHAR 40 NOT NULL custName列不允许取空值 custCity CHAR 16 NOT NULL custCity列不允许取空值 custPhone VARCHAR 12 1 不允许取空值 例7 6 建立Suppliers表 指定suppName列取值唯一 suppCity列不允许取空值 CREATE TABLE Suppliers suppID INT PRIMARY KEY suppName VARCHAR 40 UNIQUE suppName列取值唯一 suppCity CHAR 16 NOT NULL suppCity列不允许取空值 suppPhone VARC

9、HAR 12 2 列值唯一 例7 7 定义OrderDetails表 指定quantity的值必须大于1 CREATE TABLE OrderDetails orderID BIGINT pdID INT quantity INT CHECK quantity 1 PRIMARY KEY orderID pdID FOREIGN KEY orderID REFERENCES Orders orderID FOREIGN KEY pdID REFERENCES Product pdID 3 用CHECK短语指定列值应该满足的条件 例7 8 建立Suppliers表 当suppPhone以 010

10、 开头时 suppCity列的取值 必须为 北京 CREATE TABLE Suppliers suppID INT PRIMARY KEY suppName VARCHAR 40 UNIQUE suppName列取值唯一 suppCity CHAR 16 NOT NULL suppCity列不允许取空值 suppPhone VARCHAR 12 CHECK suppCity 北京 AND suppPhone LIKE 010 OR suppPhone NOT LIKE 010 2 元组上的约束条件的定义 3 用户定义的完整性检查和违约处理 n插入元组或修改属性的值时 RDBMS检查 属性上的

11、约束条件是否被满足 n如果不满足则操作被拒绝执行 单击此处编辑母版标题样 式 单击此处编辑母版副标题样式 24 7 1 4 完整性约束命名子句 1 完整性约束命名子句 nCONSTRAINT 约束 CONSTRAINT PRIMARY KEY短语 FOREIGN KEY短语 CHECK短语 例7 9 建立Suppliers表 指定suppID列为主码 suppName列 取值唯一 suppCity列的取值必须为 北京 上海 或 天津 CREATE TABLE Suppliers suppID INT CONSTRAINT C1 PRIMARY KEY suppName VARCHAR 40 C

12、ONSTRAINT C2 UNIQUE suppCity CHAR 16 CONSTRAINT C3 CHECK suppCity IN 北京 上海 天津 suppPhone VARCHAR 12 删除表中的完整性限制 例7 10 删除Suppliers表中对suppCity列的限制 ALTER TABLE Suppliers DROP CONSTRAINT C3 n使用ALTER TABLE语句修改表中的完整性 限制 修改表中的完整性限制 例7 11 修改Suppliers表中对suppCity列的限制 改 为suppCity列的取值必须为 北京 或 上海 n可以先删除原来的约束条件 再增加

13、新的约束条件 ALTER TABLE Suppliers DROP CONSTRAINT C3 ALTER TABLE Suppliers ADD CONSTRAINT C3 CHECK suppCity IN 北京 上海 单击此处编辑母版标题样 式 单击此处编辑母版副标题样式 30 7 1 5 触发器 触发器 n触发器 Trigger 是用户定义在关系表上 的一类由事件驱动的特殊过程 n由服务器自动激活 n可以进行更为复杂的检查和操作 具有更精细 和更强大的数据控制能力 1 定义触发器 nCREATE TRIGGER语法格式 CREATE TRIGGER ON FOR AS 定义触发器的语法

14、说明 n触发器名和表名 视图名必须在同一模式下 触 发器名必须符合标识符规则 并且在同一模式下 必须唯一 n触发动作体可以是一个PL SQL过程块 也可以是 对已创建存储过程的调用 n创建者 表的拥有者 n触发事件 INSERT DELETE UPDATE 例7 12 在订单表 Orders 上建立一个UPDATE触发器 规定订购日期列 orderDate 的值不允许修改 CREATE TRIGGER Orderdateupdate ON Orders FOR UPDATE AS BEGIN IF UPDATE orderDate RAISERROR 操作错误 订购日期不允许修改 10 1 R

15、OLLBACK END 2 删除触发器 n删除触发器的SQL语法 DROP TRIGGER n触发器必须是一个已经创建的触发器 并且 只能由具有相应权限的用户删除 n 例7 13 删除在订单表上的 Orderdateupdate触发器 DROP TRIGGER Orderdateupdate 单击此处编辑母版标题样 式 单击此处编辑母版副标题样式 37 7 2 数据库安全性 7 2 1 数据库安全性概述 7 2 2 用户标识和鉴别 n系统提供一定的方式让用户标识自己的名字 和身份 系统进行核实 通过鉴定后才提供 系统使用权 n常用方法 n 通行字认证 n 数字证书认证 n 智能卡认证 n 个人

16、特征识别 7 2 3 存取控制 n对于获得上机权的用户还要根据系统预先定 义好的外模式或用户权限进行存取控制 保 证用户只能存取他有权存取的数据 n存取控制机制主要包括两部分 n定义用户权限 n合法权限检查 DBMSDBMS的安全子系统的安全子系统 存取机制的类别 n 自主存取控制 DAC n用户对于不同的对象有不同的存取权限 不同 的用户对同一对象的存取权限也各不相同 用 户可将自己拥有的存取权限转授给其他用户 n 强制存取控制 MAC n每一个数据对象被标以一定的密级 每一个用 户也被授予某一个级别的许可证 对于任意一 个对象 只有具有合法许可证的用户才可以存 取 1 自主存取控制 DAC 方法 n用户权限是由两个要素组成的 数据对象和操作 类型 n定义一个用户的存取权限就是要定义这个用户可 以在哪些数据对象上进行哪些类型的操作 n在数据库系统中 定义存取权限称为授权 nDBMS把授权的结果存入数据字典 当用户提出 操作请求时 DBMS根据授权定义进行检查 以 决定是否执行操作请求 授权与回收 n功能 n把授权的决定告诉系统 由GRANT和 REVOKE语句完成 n把授权的结果存入

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号