数据库安全性和完整性.ppt

上传人:牧羊曲112 文档编号:6296438 上传时间:2023-10-14 格式:PPT 页数:35 大小:331.32KB
返回 下载 相关 举报
数据库安全性和完整性.ppt_第1页
第1页 / 共35页
数据库安全性和完整性.ppt_第2页
第2页 / 共35页
数据库安全性和完整性.ppt_第3页
第3页 / 共35页
数据库安全性和完整性.ppt_第4页
第4页 / 共35页
数据库安全性和完整性.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《数据库安全性和完整性.ppt》由会员分享,可在线阅读,更多相关《数据库安全性和完整性.ppt(35页珍藏版)》请在三一办公上搜索。

1、第六章 数据库安全性和完整性,数据库的安全性:就是防止非法用户使用数据库造成数据泄露、更改或破坏,以达到保护数据库的目的。,计算机系统安全性 为计算机系统建立和采取的各种安全保护措施,保护计算机系统(硬件、软件及数据)不会遭到破坏。,保护数据库以防止不合法使用,一般计算机系统中,安全措施是一级一级层层设置的,第一节 安全性,用户标识与鉴别存取控制 视图机制审计数据加密,第二节 数据库安全性控制,Oracle 安全措施主要有:1 用户标识和鉴定 2 存取控制 3 审计,1.用户标识与鉴别,用户标识:Identification用户名:User Name,或者用户标识号:UID用户鉴别:Authe

2、ntication用户名+口令:Password,2.存取控制,数据库安全的主要思路:存取控制给合适的人以合适的权限存取控制机制定义用户及其权限,在数据字典中登记用户权限;权限合法性检查,2.存取控制,两类实现存取控制的方法自主存取控制:Discretionary Access Controla)用户对不同的数据对象有不同的权限;b)不同用户对同一对象具有不同的权限;c)允许用户之间的传递授予权限强制存取控制:Mandatory Access Controla)以一定的密级标注数据对象b)授予每个用户以某一级别的许可证,多数DBMS均支持DAC,2.1 自主存取控制DAC,用户权限谁+在哪个对

3、象上+可以干什么事情授权:将用户权限授予特定用户的过程,用户,数据库对象,操作类型,2.1 自主存取控制DAC,2.1 自主存取控制DAC,SQL标准对DAC的支持授权:Grant语句回收:Revoke语句SQL创建用户时赋予用户的权限DBA、RESOURCE、CONNECT,Create User With DBA|RESOURCE|CONNECT,2.1 自主存取控制DAC,默认用户权限:CONNECT,Create User With DBA|RESOURCE|CONNECT,CONNECT用户的初始权限:只能登录数据库,RESOURCE用户的初始权限:创建基本表和视图,并成为所创建对象

4、的属主 不能创建模式和新用户 可授权,DBA用户的初始权限:创建新用户、模式、基本表、视图等 拥有对所有数据库对象的存取权限 可授权,2.1 自主存取控制DAC,授权权限:Grant语句把“在某个对象上”“干某种事情”的权限授予“某个用户”,GRANT ON TO WITH GRANT OPTION,2.1 自主存取控制DAC,:=|:=PUBLIC|PUBLIC是所有数据库用户的总称若有WITH GRANT OPTION,则用户可将此特权转授给其它。不允许循环授权,GRANT ON TO WITH GRANT OPTION,例如:GRANT SELECT ON TABLE 表1 TO PUB

5、LIC;/将对表1的SELECT特权授予所有的用户。,GRANT SELECT(列1,列5)ON 表1 TO sam;/将对表1中1和5列的INSERT特权授予sam。,GRANT ALL PRIVILEGES ON TABLE 表1 TO bob,sam;/将对表1的所有操作特权授予bob和sam。,GRANT UPDATE(列2,列4)ON 表1 TO wang WITH GRANT OPTION;/将对表1中2和4列的UPDATE特权授予wang,并允许他将此特权转授给其它用户。,2.1 自主存取控制DAC,回收权限:Revoke语句把“在某个对象上”“干某种事情”的权限从“某个用户”那

6、里要回来,REVOKE ON FROM CASCADE|RESTRICT,REVOKE UPDATE(Sno)ON TABLE Student From user4;,以单个权限为单位授权太过麻烦角色:权限的集合为具有相同权限的用户群创建一个角色基于角色来管理权限简化授权过程创建角色给角色授权或授予角色给用户授予角色,2.1 自主存取控制DAC,2.1 自主存取控制DAC,角色的创建CREATE ROLE 给角色授权GRANT ON TO GRANT TO WITH ADMIN OPTION给用户授予角色GRANT TO WITH ADMIN OPTION,角色权限的回收REVOKE ON F

7、ROM 举例:创建角色R1使R1具有Student表的Select/Update/Insert权限将R1角色授予用户王平和李明修改R1,使其具有Student表的Delete权限,2.1 自主存取控制DAC,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 李明,4.审计Audit和数据加密,审计:C2级DB

8、MS的必要指标,是把用户对数据库的所有操作自动记录下来放入审计日志用户级审计系统级审计数据加密,数据库完整性:数据的正确性和相容性。,第三节 数据库完整性,完整性和安全性的区别完整性防止错误信息的输入与输出。安全性是保护数据库防止恶意的破坏和非法的存取。,DBMS对数据库完整性的支持提供定义完整性约束的机制实体完整性、参照完整性、自定义完整性提供完整性检查的方法违约处理:拒绝执行、级联执行,第三节 数据库完整性,3.1 完整性约束的概念,完整性约束:加在数据之上的语义约束完整性约束的作用对象 关系:若干元组间、关系集合上以及关系之间的联系的约束 元组:元组的约束是元组中各个字段间的联系的约束

9、属性列:主要是列的数据类型、取值范围、精度、排序等约束条件,3.1 完整性约束的概念,完整性约束的类型静态约束:数据库在确定状态时数据对象应满足的约束条件;动态约束:数据库从一种状态转变为另一种状态时,新、旧值之间应满足的约束条件,1)静态列约束:是对一个列的取值域等的限制。对数据类型的约束;对数据格式的约束;对取值范围或取值集合的约束;对空值的约束;,2)静态元组约束:规定组成一个元组的各个列之间的约束关系。例如:库存关系中出库数量不能大于库存数量。,3)静态关系约束:反映了一个关系中各个元组之间或者若干关系之间存在的联系或约束。,实体完整性约束;参照完整性约束;,静态约束,1)动态列约束:

10、规定修改列定义或列值时应满足的约束条件。如:将允许为空的列修改为不允许为空;学生的年龄只能增长。,2)动态元组约束:规定修改元组的值时其各个属性列之间需要满足的约束条件例如:职工工资调整时新工资不得低于原工资工龄*1.5。,3)动态关系约束:加在关系变化前后状态上的限制条件。,事务的ACID特性:原子性/一致性/隔离性/持久性,动态约束,3.2 实体/参照完整性约束,实体完整性:PRIMARY KEY列级定义关系级定义参照完整性:FOREIGN KEY/REFERENCES违约处理:拒绝、级联删除、设置为空,3.2 实体/参照完整性约束,CREATE TABLE SC(Sno CHAR(8)N

11、OT 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 DELETE NO ACTION ON UPDATE CASCADE);,3.3 用户自定义完整性约束,定义属性列的约束条件列值非空:NOT NULL列值唯一:UNIQUE语义检查:CHECK短语举例:性别只允许取值“男”或“女”CREAT

12、E TABLE Student(Ssex CHAR(2)CHECK(Ssex IN(“男”,“女”),);,成绩只能在0-100之间:CREATE TABLE SC(.Grade SMALLINT CHECK(Grade=0 and Grade=100),);,违约处理和保护: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 冲突。,3.3 用户自定

13、义完整性约束,定义元组的约束条件:CHECK 男性的名字一定不能以Ms.打头CREATE TABLE Student(Sname CHAR(8)NOT NULL,Ssex CHAR(2)CHECK(Ssex IN(男,女)and(Ssex=女)OR Sname NOT LIKE Ms.%),);,3.3 用户自定义完整性约束,完整性约束命名子句CONSTRAINT PRIMARY KEY短语|FOREIGN KEY短语|CHECK短语CREATE TABLE Student(Sno NUMERIC(6)CONSTRAINT c1 CHECK(Sno BETWEEN 90000 AND 9999

14、9),Sname CHAR(8)CONSTRAINT c2 NOT NULL,Ssex CHAR(2)CONSTRAINT c3 CHECK(Ssex IN(男,女),);,3.3 用户自定义完整性约束,域约束:DOMAIN建立性别域:CREATE DOMAIN GenderDom CHAR(2)CHECK(VALUE IN(男,女);CREATE TABLE Student(Ssex GenderDom,);,3.3 用户自定义完整性约束,触发器:TRIGGER定义在关系表上的由事件驱动的特殊过程一旦定义,任何用户对表的增删改操作均会由DBMS自动激活相应的触发器,进行完整性检查非SQL核心

15、规范的内容,但一般DBMS均提供支持,创建一个触发器sc_trig,当插入或者更新“学习”表时,该触发器检查“成绩”是否在指定的范围内,CREATE TRIGGER sc_trig ON dbo.学习 FOR INSERT,UPDATEASdeclare score smallintselect score=scorefrom 学习if(score100)begin raiserror(学成成绩必须在0到100之间,16,1)rollback transactionend,安全性和完整性小结,安全性用户标识和鉴别、存取访问控制、视图、审计、数据加密DAC与其SQL支持:GRANT、REVOKE、角色完整性完整性约束的概念实体/参照完整性用户自定义完整性:主键、外键、CHECK、CONTRAINT、DOMAIN、TRIGGER,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号