版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章 数据库安全性和完整性,数据库的安全性:就是防止非法用户使用数据库造成数据泄露、更改或破坏,以达到保护数据库的目的。,计算机系统安全性 为计算机系统建立和采取的各种安全保护措施,保护计算机系统(硬件、软件及数据)不会遭到破坏。,保护数据库以防止不合法使用,一般计算机系统中,安全措施是一级一级层层设置的,第一节 安全性,1,学习交流PPT,用户标识与鉴别 存取控制 视图机制 审计 数据加密,第二节 数据库安全性控制,Oracle 安全措施主要有: 1 用户标识和鉴定 2 存取控制 3 审计,2,学习交流PPT,3,学习交流PPT,1. 用户标识与鉴别,用户标识:Identification
2、 用户名:User Name,或者 用户标识号:UID 用户鉴别:Authentication 用户名+口令:Password,4,学习交流PPT,2. 存取控制,数据库安全的主要思路:存取控制 给合适的人以合适的权限 存取控制机制 定义用户及其权限,在数据字典中登记用户权限; 权限合法性检查,5,学习交流PPT,2. 存取控制,两类实现存取控制的方法 自主存取控制: Discretionary Access Control a)用户对不同的数据对象有不同的权限; b)不同用户对同一对象具有不同的权限; c)允许用户之间的传递授予权限 强制存取控制: Mandatory Access Cont
3、rol a)以一定的密级标注数据对象 b)授予每个用户以某一级别的许可证,多数DBMS均支持DAC,6,学习交流PPT,2.1 自主存取控制DAC,用户权限 谁 + 在哪个对象上 + 可以干什么事情 授权:将用户权限授予特定用户的过程,用户,数据库对象,操作类型,7,学习交流PPT,2.1 自主存取控制DAC,8,学习交流PPT,2.1 自主存取控制DAC,SQL标准对DAC的支持 授权:Grant语句 回收:Revoke语句 SQL创建用户时赋予用户的权限 DBA、RESOURCE、CONNECT,Create User With DBA | RESOURCE | CONNECT,9,学习交
4、流PPT,2.1 自主存取控制DAC,默认用户权限: CONNECT,Create User With DBA | RESOURCE | CONNECT,CONNECT用户的初始权限:只能登录数据库,RESOURCE用户的初始权限: 创建基本表和视图,并成为所创建对象的属主 不能创建模式和新用户 可授权,DBA用户的初始权限: 创建新用户、模式、基本表、视图等 拥有对所有数据库对象的存取权限 可授权,10,学习交流PPT,2.1 自主存取控制DAC,授权权限:Grant语句 把“在某个对象上” “干某种事情”的权限授予“某个用户”,GRANT ON TO WITH GRANT OPTION,1
5、1,学习交流PPT,2.1 自主存取控制DAC, := | := PUBLIC| PUBLIC是所有数据库用户的总称 若有WITH GRANT OPTION,则用户可将此特权转授给其它。不允许循环授权,GRANT ON TO WITH GRANT OPTION,12,学习交流PPT,例如: GRANT SELECT ON TABLE 表1 TO PUBLIC; /将对表1的SELECT特权授予所有的用户。,GRANT SELECT(列1,列5) ON 表1 TO sam; /将对表1中1和5列的INSERT特权授予sam。,GRANT ALL PRIVILEGES ON TABLE 表1 TO
6、 bob,sam;/将对表1的所有操作特权授予bob和sam。,GRANT UPDATE(列2,列4) ON 表1 TO wang WITH GRANT OPTION; /将对表1中2和4列的UPDATE特权授予wang,并允许他将此特权转授给其它用户。,13,学习交流PPT,2.1 自主存取控制DAC,回收权限:Revoke语句 把“在某个对象上” “干某种事情”的权限从“某个用户”那里要回来,REVOKE ON FROM CASCADE | RESTRICT,REVOKE UPDATE(Sno) ON TABLE Student From user4;,14,学习交流PPT,以单个权限为单
7、位授权太过麻烦 角色:权限的集合 为具有相同权限的用户群创建一个角色 基于角色来管理权限简化授权过程 创建角色 给角色授权或授予角色 给用户授予角色,2.1 自主存取控制DAC,15,学习交流PPT,2.1 自主存取控制DAC,角色的创建 CREATE ROLE 给角色授权 GRANT ON TO GRANT TO WITH ADMIN OPTION 给用户授予角色 GRANT TO WITH ADMIN OPTION,16,学习交流PPT,角色权限的回收 REVOKE ON FROM 举例: 创建角色R1 使R1具有Student表的Select/Update/Insert权限 将R1角色授
8、予用户王平和李明 修改R1,使其具有Student表的Delete权限,2.1 自主存取控制DAC,17,学习交流PPT,3. 视图机制,视图机制 王平老师只能查询计算机系学生的信息 系主任李明具有处置计算机系学生信息的所有权限 CREATE VIEW CS_STU AS Select * From Student Where Sdept = CS; GRANT SELECT ON CS_STU TO 王平; GRANT ALL PRIVILIGES ON CS_STU TO 李明,18,学习交流PPT,4. 审计Audit和数据加密,审计:C2级DBMS的必要指标,是把用户对数据库的所有操作
9、自动记录下来放入审计日志 用户级审计 系统级审计 数据加密,19,学习交流PPT,数据库完整性:数据的正确性和相容性。,第三节 数据库完整性,完整性和安全性的区别 完整性防止错误信息的输入与输出。 安全性是保护数据库防止恶意的破坏和非法的存取。,20,学习交流PPT,DBMS对数据库完整性的支持 提供定义完整性约束的机制 实体完整性、参照完整性、自定义完整性 提供完整性检查的方法 违约处理:拒绝执行、级联执行,第三节 数据库完整性,21,学习交流PPT,3.1 完整性约束的概念,完整性约束:加在数据之上的语义约束 完整性约束的作用对象 关系:若干元组间、关系集合上以及关系之间的联系的约束 元组
10、:元组的约束是元组中各个字段间的联系的约束 属性列:主要是列的数据类型、取值范围、精度、排序等约束条件,22,学习交流PPT,3.1 完整性约束的概念,完整性约束的类型 静态约束:数据库在确定状态时数据对象应满足的约束条件; 动态约束:数据库从一种状态转变为另一种状态时,新、旧值之间应满足的约束条件,23,学习交流PPT,1)静态列约束:是对一个列的取值域等的限制。 对数据类型的约束 ; 对数据格式的约束 ; 对取值范围或取值集合的约束; 对空值的约束 ;,2)静态元组约束:规定组成一个元组的各个列之间的约束关系。 例如:库存关系中出库数量不能大于库存数量。,3)静态关系约束:反映了一个关系中
11、各个元组之间或者若干关系之间存在的联系或约束。,实体完整性约束; 参照完整性约束;,静态约束,24,学习交流PPT,1)动态列约束:规定修改列定义或列值时应满足的约束条件。 如:将允许为空的列修改为不允许为空; 学生的年龄只能增长。,2)动态元组约束:规定修改元组的值时其各个属性列之间需要满足的约束条件 例如:职工工资调整时新工资不得低于原工资工龄*1.5 。,3)动态关系约束:加在关系变化前后状态上的限制条件 。,事务的ACID特性:原子性/一致性/隔离性/持久性,动态约束,25,学习交流PPT,3.2 实体/参照完整性约束,实体完整性:PRIMARY KEY 列级定义 关系级定义 参照完整
12、性: FOREIGN KEY / REFERENCES 违约处理:拒绝、级联删除、设置为空,26,学习交流PPT,3.2 实体/参照完整性约束,CREATE TABLE SC ( Sno CHAR(8) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY (Sno, Cno), FOREIGN KEY (Sno) REFERENCES Student(Sno) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (Cno) REFERENCES Course(Cno) ON DEL
13、ETE NO ACTION ON UPDATE CASCADE );,27,学习交流PPT,3.3 用户自定义完整性约束,定义属性列的约束条件 列值非空:NOT NULL 列值唯一:UNIQUE 语义检查:CHECK短语 举例:性别只允许取值“男”或“女” CREATE TABLE Student ( Ssex CHAR(2) CHECK (Ssex IN (“男”, “女”), );,成绩只能在0-100之间: CREATE TABLE SC ( . . Grade SMALLINT CHECK (Grade=0 and Grade=100), );,28,学习交流PPT,违约处理和保护:
14、create table s( sno char(2) primary key, sgender char(2) check(sgender in(f,m),insert into s values(a,1) INSERT 语句与 COLUMN CHECK 约束 CK_s_sgender_2D27B809 冲突。,29,学习交流PPT,3.3 用户自定义完整性约束,定义元组的约束条件:CHECK 男性的名字一定不能以Ms. 打头 CREATE TABLE Student ( Sname CHAR(8) NOT NULL, Ssex CHAR(2) CHECK (Ssex IN (男,女) an
15、d (Ssex=女) OR Sname NOT LIKE Ms. %), );,30,学习交流PPT,3.3 用户自定义完整性约束,完整性约束命名子句 CONSTRAINT PRIMARY KEY短语 | FOREIGN KEY短语 | CHECK短语 CREATE TABLE Student ( Sno NUMERIC(6) CONSTRAINT c1 CHECK (Sno BETWEEN 90000 AND 99999), Sname CHAR(8) CONSTRAINT c2 NOT NULL, Ssex CHAR(2) CONSTRAINT c3 CHECK (Ssex IN (男,女
16、), );,31,学习交流PPT,3.3 用户自定义完整性约束,域约束:DOMAIN 建立性别域: CREATE DOMAIN GenderDom CHAR(2) CHECK (VALUE IN (男, 女); CREATE TABLE Student ( Ssex GenderDom , );,32,学习交流PPT,3.3 用户自定义完整性约束,触发器:TRIGGER 定义在关系表上的由事件驱动的特殊过程 一旦定义,任何用户对表的增删改操作均会由DBMS自动激活相应的触发器,进行完整性检查 非SQL核心规范的内容,但一般DBMS均提供支持,33,学习交流PPT,创建一个触发器sc_trig,当插入或者更新“学习”表时,该触发器检查“成绩”是否在指定的范围内,CREATE TRIGGER sc_trig ON dbo.学习 FOR INSERT, UPDATE AS declare score smallint se
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机场运行指挥员岗位招聘考试试卷及答案
- 2026年砀山县事业单位人员招聘考试模拟试题及答案解析
- 2026年保靖县事业单位人员招聘考试模拟试题及答案解析
- 2026年闽侯县事业单位人员招聘笔试模拟试题及答案解析
- 2026年泗水县事业单位人员招聘考试备考试题及答案解析
- 2026上林县乔贤镇第一初级中学秋季学期顶岗实习教师招聘6人考试参考题库及答案详解
- 2026年龙山县公务员招聘笔试模拟试题及答案解析
- 2026年陵水黎族自治县公务员招聘笔试参考题库及答案解析
- 2026年镇雄县事业单位人员招聘笔试备考题库及答案解析
- 2026年洱源县公务员招聘考试备考题库及答案解析
- CNAS-CI01-2026 检验机构认可准则转换指南
- 2026年秋季开学安全工作会议讲话范文
- 2026-2027学年秋季第一学期德育主题活动安排表-秋光为序德行成章
- 人教版四年级下册数学思维训练综合练习(含答案 可直接打印)
- 《地铁车辆运营技术规范(试行)》
- 离婚协议标准版(有两小孩)
- 2023年湖北省就业援藏事业单位山南籍高校毕业生招聘考试真题
- 暴聋突发性耳聋的中医辩证及护理方案
- 工程经济学(第6版)全套教学课件
- 建设工程质量检测方案-技术标部分
- 海水分析化学
评论
0/150
提交评论