




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五讲数据库的安全性与完整性 安全性与完整性 一 数据库的安全性数据库安全面临的问题计算机系统的安全模型数据库安全性控制的常用方法自主访问控制方法基于角色的访问控制RBAC强制访问控制MAC 数据库安全性 1 数据库安全面临的问题编写合法程序绕过DBMS及其授权机制 直接或编写应用程序执行非授权操作 通过多次合法查询数据库从中推导出一些保密数据 统计数据库 数据库安全性 续 2 计算机系统的安全模型3 数据库安全性控制的常用方法用户标识和鉴定 访问控制 视图 审计 密码存储等 数据库安全性 续 用户标识与鉴别用户标识 每个合法用户均被赋予一个身份标识 口令 系统通过核对口令以鉴别用户身份 访问控制机制组成定义用户权限合法权限检查常用访问控制方法自主访问控制DAC强制访问控制MAC 数据库安全性 续 4 自主访问控制方法 数据库安全性 续 用户权限设置通过SQL的GRANT语句和REVOKE语句实现 用户权限组成 数据对象 操作类型定义用户访问权限 定义用户可以在哪些数据库对象上进行哪些类型的操作 授权GRANT语句GRANT ON TO WITHGRANTOPTION 数据库安全性 续 关系数据库系统中访问控制对象 关系数据库系统中的存取权限 数据库安全性 续 谁可以发出GRANT DBA 对象创建者 Owner 拥有该权限的用户 可接受权限的用户 一个或多个具体用户 PUBLIC 全体用户 WITHGRANTOPTION子句不允许循环授权 数据库安全性 续 创建用户createuseridentified 授予用户系统权限grantcreatetable createview createsynonym createsequence createtrigger createindex createprocedureto withadminoption 授予用户对象权限grantselect delete update insertonto用户 角色 public withgrantoption 数据库安全性 续 安全性设置实例1 创建新用户u1 u2 u3 u4 u52 授予用户u1 u2 u3 u4 u5权限connect3 授予用户特定的对象权限 数据库安全性 续 例1 将查询Students表的select权限授给用户U1 GRANTSELECTONtableStudentsTOU1 例2 将对Students表和Course表的全部权限授予用户U2和U3 GRANTALLPRIVILEGESONTABLEStudents CourseTOU2 U3 例3 将对表SC的查询权限授予所有用户 GRANTSELECTONTABLESCTOPUBLIC 例4 将查询Students表和修改学生学号的权限授给用户U4 GRANTUPDATE Sno SELECTONTABLEStudentsTOU4 例5 将SC的INSERT权限授予U5 并允许他将此权限授予其他用户 GRANTINSERTONTABLESCTOU5WITHGRANTOPTION 数据库安全性 续 11 撤销 收回 权限REVOKE ON FROM 例6 把用户U4修改学生学号的权限收回 REVOKEUPDATE Sno ONTABLEStudentsFROMU4 例7 收回所有用户对表SC的查询权限 REVOKESELECTONTABLESCFROMPUBLIC 例8 把用户U5对SC表的INSERT权限收回 REVOKEINSERTONTABLESCFROMU5CASCADE 数据库安全性 续 创建用户时初始角色授权CREATEUSER WITH DBA RESOURCE CONNECT 数据库安全性 续 5 基于角色的访问控制RBAC数据库角色 被命名的一组与数据库操作相关的权限 角色是权限的集合 可以为一组具有相同权限的用户创建一个角色 简化授权的过程 角色的创建 CREATEROLE 给角色授权 GRANT ON对象名TO 数据库安全性 续 将一个角色授予其他的角色或用户 GRANT TO WITHADMINOPTION 角色权限的收回 REVOKE ONFROM 数据库安全性 续 6 强制访问控制MAC保证更高程度的安全性 用户不能直接感知或进行控制 适用于对数据有严格而固定密级分类的部门 主体是系统中的活动实体 DBMS所管理的实际用户代表用户的各个进程客体是系统中的被动实体 是受主体操纵的 文件 基本表 索引 视图 数据库安全性 续 敏感度标记 Label 主体的敏感度标记称为许可证级别 客体的敏感度标记称为密级 强制存取控制规则 1 仅当主体的许可证级别大于或等于客体的密级时 该主体才能读取相应的客体 2 仅当主体的许可证级别等于客体的密级时 该主体才能写相应的客体 修正规则 当主体的许可证级别 客体的密级时 主体能写客体 数据库安全性 续 数据库安全性 续 7 其他安全机制视图机制安全审计数据加密统计数据库安全性 数据库安全性练习 1 创建角色r oper 并授予其connect权限 2 将下列对象权限授予r oper dept表的select insert delete update majors表的全部权限 allprivileges students sc course表的select权限 3 新建用户u10 将角色权限r oper授予用户u10 4 撤销 收回 用户u10的所有权限 5 删除用户u10 安全性与完整性 二 数据库的完整性完整性概述实体完整性的定义与处理参照完整性的定义与处理用户定义完整性的定义与处理完整性约束命名子句触发器 Trigger 数据库完整性 续 1 完整性概述数据库的完整性 数据的正确 有效和相容 完整性控制 采取有效手段 控制数据的取值 防止出现不符合应用语义的数据 DBMS对完整性控制的支持 完整性约束规则的定义 完整性检查 数据更新时 违约处理 视不同情况 数据库完整性 续 2 实体完整性的定义与处理定义 通过基本表中定义主码实现 检查与处理 插入或对主码列进行更新操作时 RDBMS按照实体完整性规则自动进行检查 包括 1 检查主码值是否唯一 如果不唯一则拒绝插入或修改 2 检查主码的各个属性是否为空 只要有一个为空就拒绝插入或修改 数据库完整性 续 3 参照完整性的定义与处理定义 通过基本表中定义外码实现 检查与处理 数据库完整性 续 10 例 显式说明参照完整性的违约处理示例 CREATETABLESC SnoCHAR 9 NOTNULL CnoCHAR 4 NOTNULL GradeSMALLINT PRIMARYKEY Sno Cno FOREIGNKEY Sno REFERENCESStudent Sno ONDELETECASCADE 级联删除SC表中相应的元组 ONUPDATECASCADE 级联更新SC表中相应的元组 FOREIGNKEY Cno REFERENCESCourse Cno ONDELETENOACTION 删除course元组造成不一致时拒绝删除 ONUPDATECASCADE 级联更新SC表中相应的元组 数据库完整性 续 4 用户定义完整性的定义与处理定义 在创建基本表时定义 列值非空 NOTNULL 列值唯一 UNIQUE 检查列值是否满足一个布尔表达式 CHECK 检查与处理 更新数据时 RDBMS检查相关的约束条件是否被满足 如果不满足则操作被拒绝执行 数据库完整性 续 例1 实体完整性约束定义 createtabletest idnumberprimarykey namevarchar2 20 例2 参照完整性约束定义 createtabletest2 d idchar 10 primarykey f idnumber foreignkey f id referencestest id ondeletesetnull Oracle不支持onupdatecascade 例3 用户定义的完整性 createtabletest3 p idchar 10 primarykey namevarchar2 20 uniquenotnull sexchar 2 check sexin 男 女 数据库完整性 续 5 完整性约束命名子句CONSTRAINT PRIMARYKEY短语 FOREIGNKEY短语 CHECK短语 例 CREATETABLEStudent SnoNUMERIC 6 CONSTRAINTC1CHECK SnoBETWEEN90000AND99999 SnameCHAR 20 CONSTRAINTC2NOTNULL SageNUMBER 3 CONSTRAINTC3CHECK Sage 30 SsexCHAR 2 CONSTRAINTC4CHECK SsexIN 男 女 CONSTRAINTStudentKeyPRIMARYKEY Sno 数据库完整性 续 通过命名子句修改完整性定义 例 修改表Student中的约束条件 ALTERTABLEStudentDROPCONSTRAINTC1 ALTERTABLEStudentADDCONSTRAINTC1CHECK SnoBETWEEN900000AND999999 ALTERTABLEStudentDROPCONSTRAINTC3 ALTERTABLEStudentADDCONSTRAINTC3CHECK Sage 40 数据库完整性 续 6 触发器 Trigger 触发器是由一系列SQL语句组成的动作体 当对数据库做修改 包括插入 删除和更新 时 它自动被系统执行 设置触发器机制必须满足的两个条件 指明什么条件下触发器被执行 即触发条件 指明触发器执行的动作是什么 即触发什么 数据库完整性 续 触发器的利弊可以进行更为复杂的检查和操作 具有更精细和更强大的数据控制能力 能够保证数据库的一致性 检测和维护触发器需要很大的开销 降低了数据库增 删 改的效率 数据库完整性 续 定义触发器CREATETRIGGER BEFORE AFTER ONFOREACH ROW STATEMENT WHEN 了解 T SQL与PL SQL的差异 数据库完整性 续 说明 1 创建者 表的拥有者2 触发器名3 表名 触发器的目标表4 触发事件 INSERT DELETE UPDATE5 触发器类型行级触发器 FOREACHROW 语句级触发器 FOREACHSTATEMENT 数据库完整性 续 例 定义一个BEFORE行级触发器 为教师表Teachers定义完整性规则 讲师的工资不得低于3000元 如果低于3000元 自动改为3000元 CREATETRIGGERInsert Or Update SalBEFOREINSERTORUPDATEONTeachers 触发事件是插入或更新操作FOREACHROW 行级触发器BEGIN 定义触发动作体 是PL SQL过程块IF new Job 讲师 AND new Sal 3000 THEN new Sal 3000 oldENDIF END 数据库完整性 续 激活触发器触发器的执行 是由触发事件激活的 并由数据库服务器自动执行 一个数据表上可能定义了多个触发器 同一个表上的多个触发器激活时遵循如下的执行顺序 1 执行该表上的BEFORE触发器 2 激活触发器的SQL语句 3 执行该表上的AFTER触发器 数据库完整性 续 删除触发器DROPTRIGGERON 触发器必须是一个已经创建的触发器 并且只能由具有相应权限的用户删除 例 删除教师表Teacher上的触发器Insert Sal DROPTRIGGERInsert SalONTeacher 数据库完整性 续 7 完整性约束的种类与检查顺序约束实际上就是对数据库的一种限制 可以把很多内容都看作是数据库的约束 如 定义在一个关系上的约束可以有 域约束 DEFAULT 缺省值约束 NOTNULL 非空值约束 PRIMARYKEY 主码约束 FOREIGNKEY 外码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海南省乐东黎族自治县2025年上半年公开招聘村务工作者试题含答案分析
- 2025年生态园林树木种植与养护服务合同
- 2025范文企业数字化转型咨询服务合同范本
- 2025版电商品牌独家销售授权合作协议
- 贵州省正安县2025年上半年事业单位公开遴选试题含答案分析
- 2025年度数字文化遗产数字化加工保密合同
- 贵州省金沙县2025年上半年公开招聘城市协管员试题含答案分析
- 贵州省务川仡佬族苗族自治县2025年上半年事业单位公开遴选试题含答案分析
- 2025年互联网金融质押担保合同范本
- 2025不锈钢管材批量采购及加工服务合同
- 环保与物业公司合作协议
- 燃气轮机离心式压缩机组运行操作手册教学教材
- FZ/T 01057.2-2007纺织纤维鉴别试验方法 第2部分:燃烧法
- 面条制品-课件
- 2023年重庆市社区工作者考试试题
- 四上科学第一单元《多样的动物》知识梳理
- 部编人教版六年级道德与法治上册全册教学课件
- 微观经济学-范里安varian中级
- 《印章移交登记表》
- 电缆护套感应电压计算
- 第5章金属在自然环境中的腐蚀ppt课件
评论
0/150
提交评论