版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五讲 数据库的安全性与完整性1安全性与完整性一、数据库的安全性2数据库安全性数据库安全面临的问题:编写合法程序绕过DBMS及其授权机制;直接或编写应用程序执行非授权操作;通过多次合法查询数据库从中推导出一些保密数据(统计数据库)。3数据库安全性(续)计算机系统的安全模型数据库安全性控制的常用方法用户标识和鉴定、访问控制;视图;审计、密码存储等。4数据库安全性(续)用户标识与鉴别用户标识:每个合法用户均被赋予一个身份标识。口令:系统通过核对口令以鉴别用户身份 。访问控制机制组成定义用户权限合法权限检查常用访问控制方法自主访问控制 DAC强制访问控制 MAC5数据库安全性(续)自主访问控制方法6
2、数据库安全性(续)用户权限设置通过 SQL 的 GRANT 语句和 REVOKE 语句实现。用户权限组成:数据对象、操作类型定义用户访问权限:定义用户可以在哪些数据库对象上进行哪些类型的操作。授权GRANT语句: GRANT , . ON TO , WITH GRANT OPTION ;7数据库安全性(续)关系数据库系统中访问控制对象 关系数据库系统中的存取权限 数据库安全性(续)谁可以发出GRANT:DBA、对象创建者(Owner)、拥有该权限的用户。可接受权限的用户 :一个或多个具体用户、PUBLIC(全体用户)。WITH GRANT OPTION子句不允许循环授权:9数据库安全性(续)创
3、建用户 create user identified ;授予用户系统权限 grant create table, create view, create synonym, create sequence, create trigger, create index, create procedure to with admin option;授予用户对象权限 grant select,delete,update,insert on to 用户|角色|public with grant option;10数据库安全性(续)安全性设置实例: 1. 创建新用户u1,u2,u3,u4,u5 2. 授予用
4、户u1,u2,u3,u4,u5权限connect 3. 授予用户特定的对象权限11数据库安全性(续)例1 将查询Students表的select权限授给用户U1。 GRANT SELECT ON table Students TO U1;例2 将对Students表和Course表的全部权限授予用户U2和U3。 GRANT ALL PRIVILEGES ON TABLE Students, Course TO U2, U3;例3 将对表SC的查询权限授予所有用户。 GRANT SELECT ON TABLE SC TO PUBLIC;例4 将查询Students表和修改学生学号的权限授给用户U
5、4。 GRANT UPDATE(Sno), SELECT ON TABLE Students TO U4;例5 将SC的INSERT权限授予U5,并允许他将此权限授予其他用户。 GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;12数据库安全性(续) 撤销(收回)权限 REVOKE , . ON FROM , . ;例6 把用户U4修改学生学号的权限收回。 REVOKE UPDATE(Sno) ON TABLE Students FROM U4;例7 收回所有用户对表SC的查询权限。 REVOKE SELECT ON TABLE SC FROM
6、PUBLIC;例8 把用户U5对SC表的INSERT权限收回。 REVOKE INSERT ON TABLE SC FROM U5 CASCADE ;13数据库安全性(续)创建数据库模式的权限 - DBA在创建用户时实现! CREATE USER WITHDBA | RESOURCE | CONNECT拥有的权限可否执行的操作CREATE USERCREATE SCHEMACREATE TABLE登录数据库 执行数据查询和操纵DBA可以可以可以可以RESOURCE不可以不可以可以可以CONNECT不可以不可以不可以可以,但必须拥有相应权限数据库安全性(续)基于角色的访问控制RBAC数据库角色:
7、被命名的一组与数据库操作相关的权限。角色是权限的集合。可以为一组具有相同权限的用户创建一个角色。简化授权的过程。角色的创建: CREATE ROLE ; 给角色授权: GRANT , ON 对象名 TO ,;15数据库安全性(续)将一个角色授予其他的角色或用户:GRANT , TO , WITH ADMIN OPTION; 角色权限的收回 :REVOKE , ON FROM ,;16数据库安全性(续) 强制访问控制MAC保证更高程度的安全性。用户不能直接感知或进行控制。适用于对数据有严格而固定密级分类的部门。主体是系统中的活动实体。 DBMS所管理的实际用户 代表用户的各个进程客体是系统中的被
8、动实体,是受主体操纵的。 文件、基本表、索引、视图。17数据库安全性(续)敏感度标记(Label)主体的敏感度标记称为许可证级别;客体的敏感度标记称为密级;强制存取控制规则 (1) 仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体; (2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体;修正规则:当主体的许可证级别 = 客体的密级时, 主体能写客体。18数据库安全性(续)19数据库安全性练习1. 创建角色r_oper,并授予其connect权限。2. 将下列对象权限授予r_oper: dept表的select, insert,delete,update; ma
9、jors表的全部权限;(all privileges) students,sc,course表的select权限。3. 新建用户u10,将角色权限r_oper授予用户u10。4. 撤销(收回)用户u10的所有权限。5. 删除用户u10。20安全性与完整性二、数据库的完整性21数据库完整性(续)实体完整性的定义与处理定义:通过基本表中定义主码实现。检查与处理: 插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。包括:1. 检查主码值是否唯一,如果不唯一则拒绝插入或修改。2. 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。22数据库完整性(续)参照完整性的定义与
10、处理定义:通过基本表中定义外码实现。检查与处理: 被参照表(例如Student)参照表(例如SC)违约处理可能破坏参照完整性插入元组拒绝可能破坏参照完整性修改外码值拒绝删除元组可能破坏参照完整性拒绝/级连删除/设置为空值修改主码值可能破坏参照完整性拒绝/级连修改/设置为空值23数据库完整性(续)【例】 显式说明参照完整性的违约处理示例。 CREATE TABLE SC (Sno CHAR(9) NOT NULL,Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY(Sno,Cno), FOREIGN KEY (Sno) REFERENCES Stu
11、dent(Sno) ON DELETE CASCADE /*级联删除SC表中相应的元组*/ ON UPDATE CASCADE, /*级联更新SC表中相应的元组*/ FOREIGN KEY (Cno) REFERENCES Course(Cno) ON DELETE NO ACTION /*删除course 元组造成不一致时拒绝删除*/ ON UPDATE CASCADE /*级联更新SC表中相应的元组*/ );24数据库完整性(续)用户定义完整性的定义与处理定义:在创建基本表时定义。列值非空(NOT NULL)列值唯一(UNIQUE)检查列值是否满足一个布尔表达式(CHECK)检查与处理:
12、更新数据时,RDBMS检查相关的约束条件是否被满足,如果不满足则操作被拒绝执行。 25数据库完整性(续)【例1】实体完整性约束定义。 create table test (id number primary key, name varchar2(20);【例2】参照完整性约束定义。 create table test2 (d_id char(10) primary key, f_id number, foreign key (f_id) references test(id) on delete set null); / Oracle不支持 on update cascade【例3】用户定义的
13、完整性。 create table test3 (p_id char(10) primary key, name varchar2(20) unique not null, sex char(2) check(sex in(男,女);26数据库完整性(续)jsj完整性约束命名子句CONSTRAINT PRIMARY KEY短语 | FOREIGN KEY短语 | CHECK短语;例 CREATE TABLE Student (Sno NUMERIC(6) CONSTRAINT C1 CHECK (Sno BETWEEN 90000 AND 99999), Sname CHAR(20) CONS
14、TRAINT C2 NOT NULL, Sage NUMERIC(3) CONSTRAINT C3 CHECK (Sage 30), Ssex CHAR(2) CONSTRAINT C4 CHECK (Ssex IN ( 男,女), CONSTRAINT StudentKey PRIMARY KEY(Sno) );27数据库完整性(续)通过命名子句修改完整性定义例 修改表Student中的约束条件。ALTER TABLE Student DROP CONSTRAINT C1; ALTER TABLE Student ADD CONSTRAINT C1 CHECK (Sno BETWEEN 90
15、0000 AND 999999); ALTER TABLE Student DROP CONSTRAINT C3; ALTER TABLE Student ADD CONSTRAINT C3 CHECK (Sage 40);28数据库完整性(续)触发器(Trigger) 所谓触发器就是一系列SQL语句,当对数据库做修改(包括插入、删除和更新)时,它自动被系统执行。 设置触发器机制必须满足的两个条件:指明什么条件下触发器被执行,即触发条件;指明触发器执行的动作是什么,即触发什么。29数据库完整性(续) 触发器的利弊:可以进行更为复杂的检查和操作,具有更精细和更强大的数据控制能力,能够保证数据库的
16、一致性;检测和维护触发器需要很大的开销,降低了数据库增、删、改的效率!30数据库完整性(续)定义触发器 CREATE TRIGGER BEFORE | AFTER ON FOR EACH ROW | STATEMENT WHEN ;31数据库完整性(续) 说明:1. 创建者:表的拥有者2. 触发器名3. 表名:触发器的目标表4. 触发事件:INSERT、DELETE、UPDATE5. 触发器类型行级触发器(FOR EACH ROW)语句级触发器(FOR EACH STATEMENT)32数据库完整性(续)例 定义一个BEFORE行级触发器,为教师表Teacher定义完整性规则“讲师的工资不得低
17、于3000元,如果低于3000元,自动改为3000元”。 CREATE TRIGGER Insert_Or_Update_Sal BEFORE INSERT OR UPDATE ON Teacher /*触发事件是插入或更新操作*/ FOR EACH ROW /*行级触发器*/ AS BEGIN /*定义触发动作体,是PL/SQL过程块*/ IF (new.Job=讲师) AND (new.Sal 3000) THEN new.Sal :=3000; END IF; END; 33数据库完整性(续)激活触发器触发器的执行,是由触发事件激活的,并由数据库服务器自动执行。一个数据表上可能定义了多个
18、触发器。同一个表上的多个触发器激活时遵循如下的执行顺序:(1) 执行该表上的BEFORE触发器;(2) 激活触发器的SQL语句;(3) 执行该表上的AFTER触发器。34数据库完整性(续)删除触发器 DROP TRIGGER ON ;触发器必须是一个已经创建的触发器,并且只能由具有相应权限的用户删除。例 删除教师表Teacher上的触发器Insert_Sal。 DROP TRIGGER Insert_Sal ON Teacher;35数据库完整性(续)完整性约束总结: 约束实际上就是对数据库的一种限制。可以把很多内容都看作是数据库的约束。如,定义在一个关系上的约束可以有:域约束DEFAULT(缺
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 萨克斯皮克特协议书
- 2025年工业制造行业工业互联网与智能工厂研究报告及未来发展趋势预测
- 2025年服装鞋帽行业消费者购买力分析报告
- 河北省保定市徐水区2023-2024学年四年级上学期期末道德与法治试题(图片版无答案)
- 四川省气象部门2026年度事业单位公开招聘应届毕业生笔试考试参考题库及答案解析
- 2025年大连市教育局所属学校自主招聘教师67人笔试考试参考试题及答案解析
- 2025年上饶市公安局广信分局公开招聘警务辅助人员【125人】笔试考试备考题库及答案解析
- 招5人!西宁市湟中区中医院公开招聘工作人员笔试考试备考题库及答案解析
- 2025广西北海市华侨中学秋季学期教师招聘1人考试笔试模拟试题及答案解析
- 2025中国疾病预防控制中心结控中心招聘工作人员2人笔试考试参考试题及答案解析
- 医院辐射防护和安全保卫制度
- 第五版-FMEA-新版FMEA【第五版】
- XXXX年中国星级饭店评定报告书
- 经典模板《湛蓝情深》
- 辽宁交通高等专科学校-单招《职测》考前特训复习题库(含答案)
- 战伤救护理论考核题库
- 中文工具书检索
- GB/T 24202-2021光缆增强用碳素钢丝
- 阻尼复合材料课件
- 微生物农药细菌
- 新版GMP验证总计划
评论
0/150
提交评论