




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 数据库的安全性和完整性生物医学软件工程本章概要安全性完整性 语义完整性 事务完整性(并发控制和系统恢复)3.1 安全性为了保护数据库,必须在几个层次上采取安全性措施:数据库系统层次操作系统层次网络层次物理层次人员层次数据库的安全性旨在保证数据库的任何部分都不受到恶意侵害和未经授权的存取和修改用户编写一段合法的程序绕过DBMS及其授权机制,通过操作系统直接存取,修改和备份数据库中的数据;通过应用程序执行非授权操作;通过多次合法查询数据库从中推导出保密数据;无意,故意,恶意不可能杜绝对数据库的恶意滥用!使得企图在无授权情况下,访问数据库的代价足够高,从而阻止大多数的恶意访问。DBMS和DB
2、A需要考虑以下问题:用户权限的分配:用户只能在指定范围内执行允许的操作;系统保护机制:检查用户进入数据库的权限并记录其操作序列;统计数据库的管理:防止用统计(综合)数据推导微数据。数据加密一、数据库安全性与数据库管理员(DBA)DBA是数据库和数据库管理系统具最高权威的管理员,拥有的系统帐号具有最高的权限:建立和撤消帐号,初始口令的形成,权限的分配和调整。二、系统保护机制为了制止非授权用户对数据库的访问,也为了约束授权用户对数据库访问的范围和方式,DBMS必须具备如下的保护机制:用户帐号口令机制用户只有向DBA申请到帐号及其初始口令,才取得进入数据库的合法身份。用户身份的识别 DBMS依靠帐号
3、和口令的对应来识别用户身份的合法性。全体用户的帐号口令储存在某个系统文件中,DBMS采用安全技术保护该文件,免受人为或非人为的破坏。用户的操作信息存档用户在工作过程中,其使用的终端编号及其操作要求的时间序列均被保存一段时候作为安全档案备查。DBA根据用户的实际需要授予适当的数据库使用权。三、授权机制授权机制的功能是为用户授予和撤消数据库操作权限。定义存取权限称为授权,同时用户权限登记到数据字典中。当用户提出操作请求后,会检查权限是否合法,若超出了定义的权限,系统将拒绝执行该操作。在SQL语言中,向用户授予权限使用grant语句,收回授予的权限用revoke语句。发出grant语句:DBA数据库
4、对象创建者拥有其创建的表和视图的全部权限拥有该权限的用户例:Grant select on table employee to use1;Grant all privileges on table employee, department to use2 , use3;Grant select on table employee to public;Grant insert on table employee to use4 with grant option;use1use2use3谁可以创建新用户?系统的超级用户可以创建新数据库用户!Create user withDBA|resource
5、|connect拥有的权限可否执行的操作Create userCreate table登陆数据库执行数据查询和操纵DBA可以可以可以resource不可以可以可以connect不可以不可以可以,但必须用相应权限数据库角色数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。Create role r1;Grant select, insert , delete on test.* to r1;Grant r1 to use1, use2, use3;DBMS提供的两级权限:用户级权限:DBA授予每个用户特定权限,是对用户访问整个数据库权限的限制,包括创建关系create,创建视图c
6、reate view增删属性alter,删除关系或视图drop更新元组modify/update 查询数据库select关系级权限:DBA授予每个用户与具体关系视图有关的权限,是对用户访问关系视图权限的限制。一个用户的关系级权限和必须和他的用户级权限一致四、统计数据库的安全性统计数据库包含两类数据,第一类是微数据,即描述应用领域的实体、概念或事件的数据;第二类是统计数据,即对部分微数据进行综合处理的计算结果。一般的统计数据库允许用户查询统计数据,但是不允许查询微数据。考虑统计数据库的安全性,目的是防止用户访问或推导出微数据。例:某数据库应用系统禁止查询单个人的工资,但允许查任意一组人的平均工资
7、。某用户想了解张三的工资:查询包括张三在内的一组人的平均工资查询用自己替换张三后的这组人的平均工资推导出张三的工资禁止用户存取关系个别元组的详细信息,只允许他们执行次数控制的统计查询操作防止由统计数据推导出微数据,例如设置下列障碍:对统计查询结果大小加以限制在某一范围内;禁止在相同的元组集合上重复执行一系列统计查询;在统计查询结果中加进噪声,为微数据的恢复造成困难。五、数据库加密数据加密是防止数据库中数据在存储和传输中失密的有效手段。加密的基本思想:利用一定的算法将原始数据变换为不可识别的格式,从而使得不知道解密算法的人无法获知数据的内容。设计一个良好的加密数据库系统,需要合理地处理下面 4
8、个基本问题:加密粒度的选择密钥的动态管理加密数据的合理选择数据加密的透明性3.2 完整性数据库完整性包括:语义完整性,指数据库必须始终满足确定的语义约束;事务完整性,包括并发控制和系统恢复。为达到保证数据库语义正确的目的,DBMS提供了约束定义机制和约束验证机制完整性约束的定义完整性约束的验证违约处理一、完整性约束的类型数据模型确定的约束 隐含约束:由数据模型确定,由数据库模式隐含的定义,由DDL定义存放在数据字典中。显式约束:显式定义数据库模式上的约束。显式定义的方法有两种:过程定义和断言定义。固有约束:数据模型本身固有的约束,无须用DDL或显式定义。根据数据对象的状态状态约束(静态约束),
9、这是所有数据库状态必须满足的约束;变迁约束(动态约束),这是指数据库在状态转化过程中必须满足的约束,通常用显示表示。3. 根据数据库的实体对象 实体完整性关联完整性用户定义的完整性二、完整性约束的定义Not null (非空)约束:只用于定义列约束语法: not null例:Create table employee(ssn varchar(20) not null, name varchar(10) not null, address varchar(40) );验证与违约处理:当向表中插入元组或者修改元组时,DBMS会检查属性上的not null约束条件是否被满足;违约处理:如果不满足,则
10、该操作被拒绝执行。Unique(唯一)约束:用于指明创建该约束的列上的取值必须唯一。(也称为替代键)语法: unique例:Create table employee( ssn varchar(20) not null,Name varchar(10) not null,Phone char(11) unique,Address varchar(40) );Unique 可以作为列约束,也可以作为表约束添加验证与违约处理:当向表中插入元组或者修改元组时,DBMS会检查属性上的unique约束条件是否被满足;违约处理:如果不满足,则该操作被拒绝执行。Primary key(主键)约束:用于定义基
11、本表的主键,起唯一标识作用,其值不能为空,也不能重复。语法: primary key语法:create table(, , primary key();primary key约束可以作为列级约束,也可以作为表级约束;例:Create table employee( ssn varchar(20) primary key, name varchar(10) not null, phone char(11) unique, address varchar(40);例:Create table SC(Sno int, Cno int, Grade int not null, primary key
12、(Sno, Cno);可以在创建表时,创建主键约束,也可创建表完成后,再添加主键。Alter table Add constraint primary key (ssn);Primary key 和unique的区别:一个表只可以定义一个primary key,但可以定义多个unique约束;对于primary key的一个列或多个列,其中任何一个列都不能出现空值,而对于unique所约束的列,允许为空,只是null值最多有一个实体完整性验证和违约处理:当进行插入和更新操作时,DBMS将自动检查:主键值是否唯一,如果不唯一,则拒绝该操作;检查主键的各个属性是否为空,只要有一个为空,则拒绝该操作
13、;Foreign key(关联完整性或外键)约束:定义了一个表中数据与另一个表中的数据的联系。Foreign key约束指定某一个列或一组列作为外部键,其中包含外部键的表称为子表,包含外部键所引用的主键的表称为父表。语法:foreign key reference ( 主属性)例:Create table sc(sno int , cno int, grade int not null,Primary key (sno,cno),Foreign key (sno) references student(sno),Foreign key(con) references course(cno);关
14、联完整性的验证和违约处理:一个关联完整性将两个表(子表和父表)的相应元组联系了起来。对父表和子表进行插入,更新和删除操作时,有可能会破坏关系完整性,DBMS必须进行检查。snosnamessexsageSdeptsnocnograde父表(student)子表(SC)删除元组修改primary key插入新元组修改外部键的值如果增删改操作破坏关联完整性约束时,系统可以采用以下的策略进行处理。No action:不允许该操作执行,是默认策略。Restrict:与no action基本相同,但更为严格。Cascade:当更新或删除父表中primary key时,子表中的相应数据也进行更新或删除。S
15、et null:当父表数据被更新或删除时,子表中相应数据被设置为null值前提是子表中的相应列允许取null值。Set default:当父表数据被更为或删除是,子表中相应数据被设置为默认值前提示子表中的相应列设置有默认值。例:Create table sc (sno int , cno int, grade int,Primary key (sno, cno),Foreign key (sno) references student(sno) on delete cascade on update cascade Foreign key(cno) references course(cno)
16、 on delete no action on update cascade);Check(校验)约束:用来检查字段值所允许的范围语法: check(搜索条件)语法:在表末端的约束处定义check(搜索条件)Check约束的验证和违约处理:DBMS每当执行delete,insert和update语句时,都对这个约束进行过滤。如果为真,则执行相应操作;否则,取消执行并提示错误。完整性约束命名语法:constraint primary key短语|foreign key短语| check语句修改表的完整性约束语法:Alter table add.Alter table dropAlter tabl
17、e modifyAssertion(断言)约束:不必与特定的列绑定,在表定义之外独立创建assertion断言可以作为多个表的check约束语法:create assertion check (搜索条件);例:每位学生至少选修5门课程Create assertion ass1 Check(5=all (select count(*) from SC group by sno);Mysql 目前不支持断言约束;如果违约,则拒绝执行;Domain(域)约束:创建新的域;语法:create domain as default constraint check (value 搜索条件);例:Creat
18、e domain color as char(6) default - check (value in(red, yellow, blue, green, -);触发器(tigger):是用户定义在关系表上的一类由事件驱动的特殊过程。语法:Create triggerbefore|after onFor each|row|statementwhen 例:选课关系SC定义触发器,规定:在修改关系SC的成绩值时,要求修改后的成绩一定不能比原来的低,否则就拒绝修改。Create trigger t1 after update of grade on scOld as odtupleNew as newtupleFor each row When(oldtuple.gradenewtuple.grade);二、显示约束的定义显式定义是指采用显式方式定义数据库模式上的约束。显式定义的方法:过程定义方法:把显式约束作为一个过程,由程序员编码到数据库的更新
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 政府采购车辆居间合同范本(2篇)
- 2024-2025日常安全培训考试试题及参考答案(综合卷)
- 2025员工三级安全培训考试试题及答案解析
- 专题 J-13【简语法-单选题专练】定语从句 2025年中考英语讲解+练习题汇编(全国)
- 2025石油化工代理合同
- 2025企业借款合同范本模板
- 可行性研究报告 意见
- 2025网站开发合同协议书模板
- 2025《股权转让合同》
- 2025年舒血宁注射液合作协议书
- 营业执照地址变更申请书
- 生物制药无菌技术进展-深度研究
- 大米生产与食品安全
- 2025年中国氢气传感器行业市场深度分析及投资策略研究报告
- 专题18-地质地貌形成过程(原卷版)
- 综合管理部门车辆安全生产职责模版(2篇)
- 《西游记》讲解学习
- DB33 766-2015 工业气体空分产品单位综合电耗限额及计算方法
- 办公楼拆除施工方案
- 江苏省苏州市(2024年-2025年小学六年级语文)部编版小升初真题(下学期)试卷及答案
- 职业技能鉴定培训方案
评论
0/150
提交评论