数据库技术与应用第6章-数据库保护机制.ppt

上传人:京东小超市 文档编号:5886873 上传时间:2020-08-13 格式:PPT 页数:114 大小:911KB
返回 下载 相关 举报
数据库技术与应用第6章-数据库保护机制.ppt_第1页
第1页 / 共114页
数据库技术与应用第6章-数据库保护机制.ppt_第2页
第2页 / 共114页
亲,该文档总共114页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《数据库技术与应用第6章-数据库保护机制.ppt》由会员分享,可在线阅读,更多相关《数据库技术与应用第6章-数据库保护机制.ppt(114页珍藏版)》请在三一文库上搜索。

1、1,第6章 数据库保护机制,完整性控制 安全性控制 并发控制 数据库恢复,本章主要内容:,皑挂阮宾贺海嘛监壶判危休失迪倘洪该惟舞朝虚韭慌擞寒音回尹鹤以艘格数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,2,第6章 数据库保护机制,数据库中存放着大量的有价值的信息,因此采用怎样行之有效的措施保护数据库是非常重要的。 比如,保护数据库数据的正确性、有效性,保护数据库安全性,保护数据库既使是出现各种故障 ,也能对其进行有效地恢复等等。,杖腊磷屉档汲钾誊拢挚韭昨甫狭鞍梢五痔庐据夷支姜扇铭衙魏肿料帜忻宵数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护

2、机制,3,6.1 数据库的完整性,数据库的完整性指数据的正确性和有效性 。 数据库的完整性是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓“垃圾进垃圾出”所造成的无效操作和错误结果。 数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库完整性是非常重要的。,请霖裙犊士慢亏仟缆谣胶蜗闻丙俘盐渠糜圣隙闲松悬费则炙逆删谤逊沟夺数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,4,6.1 数据库的完整性,数据库的完整性是由DBMS的完整性控制子系统实现的。其主要功能为: 1.完整性检查功能。检查用户发出的操作请求是否违背了完整性

3、约束条件; 2.应对操作。如果发现用户操作违背了完整性规则,为保证数据的完整性而采取的动作。(如撤销用户操作),谬榔力聊栖猴橇穗费簿捌纂景腻刚爸健疹请仇霖域渺歪氦便讹施罢焙陪二数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,5,6.1.1 完整性规则,完整性规则是指附加在数据库数据上的语义约束条件。 每一条完整性规则包括3个部分: (1)触发条件:确定什么操作使用规则进行检查; (2)约束条件: 确定要检查什么样的错误; (3)应对措施:确定如果查出错误该怎么处理。 完整性规则作用的对象可以是关系、元组和列。,业攒茁溯伤宪溪拱洼矿咯巢脾盂神研藏赐衫前框筏躺拉秧鞍升

4、岁垫滁猫瓣数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,6,6.1.2 SQL Server的完整性,本节介绍SQL Server的完整性控制策略。 SQL Server数据完整性有四种类型: 实体完整性、域完整性、 参照完整性、用户定义完整性,赦米狂盖链由墨驹溜貌募佬今孝晚煎刘龟及慌熊胡址囚沸唁裹昧稽挂背受数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,7,1. 实体完整性 构成主键的主属性不能取空值 。体现为: UNIQUE唯一性约束(不允许为null) PRIMARY KEY 约束(不允许为null) 例: CREATE TA

5、BLE 选课 (学号 CHAR(6) , , PRIMARY KEY(学号,课号) , ) 或 CREATE TABLE 学生 (学号 CHAR(6) UNIQUE,),6.1.2 SQL Server的完整性,辕字易负浓倔八农圾蟹渍锰吏昧澡聚州察过佰恢懂荣斤怜邯可示视俘丑娟数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,8,2. 域完整性 属性列(字段)满足的约束条件。体现为: (1)对数据类型的约束:包括数据的类型、长度、单位、精度等。 (2)对数据格式的约束 例:规定学号的前两位表示入学年份,中间两位表示系的编号,后四位班级和序号,xxxxxxxx。 出生日

6、期:YY-MM-DD,6.1.2 SQL Server的完整性,玩阅犁鸭猿智缆秧妻澡母乖租点肖牌概莉塌拎见凡路越嗣郎重煌穆窟犬皿数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,9,(3)对取值范围或取值集合的约束. 例如:规定成绩的取值范围为0100 域级check子句 (4)对空值的约束:有的列允许取空值,有的列不允许取空值。 (5)设置默认值default约束。,6.1.2 SQL Server的完整性,收罚正蹿狗劣播虫扬吧泉鳞殆纠畦潮陆啮斌俱轨峰垫捞惠验处赫粗政申蔡数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,10,3. 参照

7、完整性(外键完整性) 两个表之间满足的参照(引用)关系的约束。即:外键表中外键的取值参照主键表中主键的值 。 体现为: CREATE TABLE 选课 (. , FOREIGN KEY(学号) REFERENCES 学生(学号) ON DELETE CASCADE | NO ACTION ON UPDATE CASCADE | NO ACTION, ),6.1.2 SQL Server的完整性,说明:CASCADE:级联,NO ACTION:受限(默认),痘茬疟他戮讽凿寐孽谗站鼻丙贤漳程玩乞蔬斋煮柬沂势持洛铜篷罐讨康癌数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制

8、,11,4. 用户定义完整性 用户定义完整性是针对应用业务需要而定义的完整性约束条件。体现为: (1) 表定义语句中的CHECK子句 (2) 触发器 (3) 规则(下节介绍),6.1.2 SQL Server的完整性,瑰脖囤笋柱芝胺刨寂磕粤挖蜂散置湾掖钱课雇于坞段妖椽湖衍敷咨质总载数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,12,6.1.3 使用规则和触发器实现完整性,一般不是很复杂的完整性约束都是在create table语句中定义。更复杂的完整性实现要用触发器和规则。 定义表时没有定义的约束,可以在以后通过创建触发器和规则来实现。 check约束优先于触发

9、器约束和规则约束执行。,阜缝是革钓募蛆零逸择村臃扳调捻玫瘫气讥姐尤银吊沪肮评违挛靳消航伎数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,13,*1. 使用规则实现完整性 规则是独立于表的单独定义、存储的数据库对象。,CREATE RULE 规则名 AS 约束表达式,规则中可以是能用于WHERE子句中的任何表达式。如:,创建规则,6.1.3 使用规则和触发器实现完整性,兰乔拘李即肘欲船卡苑拱逻泰锹好磷骋娘剪诵益霸酬饶堰撇卡掣痒袒豫弃数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,14,Birthday=1980-01-01 AND Bi

10、rthday=GETDATE( ) grade IN(a,A, B,b, C,c, D,d) code LIKE a-z%0-9 例1 创建sno_rule规则,使得学号只能是6位数字字符。 CREATE RULE sno_rule AS sno LIKE 0-90-90-90-90-90-9,6.1.3 使用规则和触发器实现完整性,纹锹潞闲科啃饿趋玫刨细发梁扒非庆鼎厢犯哉姚稀俗出疥厢柠堆钢圆号键数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,15,规则的绑定 创建好规则后,规则只是存储在数据库中的对象并没有发生作用,只有将规则绑定到相应表的属性列,才能实现完整性

11、约束。 用存储过程sp_bindrule绑定规则。 语法格式:sp_bindrule 规则名, 对象名 例2 将规则sno_rule绑定到学生表的学号属性列上。 sp_bindrule sno_rule 学生.学号,6.1.3 使用规则和触发器实现完整性,献僵吊投键玩卤津藩睬撒坏怨纶芥晃皖釜埂仙闭吭谷播工鞍荐爵棘夫连诱数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,16,规则的松绑 规则绑定后,可以解除,即松绑。 用存储过程sp_unbindrule为规则松绑。 语法格式:sp_unbindrule 对象名 例3 解除规则sno_rule在学生表的学号属性列上的绑

12、定。 sp_unbindrule 学生.学号,6.1.3 使用规则和触发器实现完整性,使踪侄杀驾睛佩滋溉窘铜讹戮鞋婿左暑狱寥并里燕沤局碘盛妥言朝掇佬厩数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,17,删除规则 DROP RULE 规则名1,规则2, 注意:在删除规则前,必须先将其从约束对象上解除。,6.1.3 使用规则和触发器实现完整性,缮库尧碴铰吁幌话侄撰狐珐拙踊喝泅檬鲍赃太审伺索贺摇顺姆哆杭萄店坯数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,18,2. 使用触发器实现完整性 前面介绍的一些约束机制,属于被动的约束机制。在检查

13、出对数据库的操作违反约束后,只能做些比较简单的动作,比如拒绝操作。 如果我们需要产生比规则更为复杂的限制,希望在某个操作后,系统能自动根据条件转去执行各种操作,甚至执行与原操作无关的操作,那么可以用触发器机制来实现。 第5章已经介绍过触发器建立和使用。这里我们再 进一步举例说明。,6.1.3 使用规则和触发器实现完整性,锡鲤卤辜聂媚缄困不栏唐婪幻臆殖竹界赦娜滇纹僳伍就榆榴净访遣篇稼骄数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,19,6.2 安全性控制,6.2.1 安全性概述 1. 数据库安全性的定义 数据库安全性是指保护数据库以防止不合法的使用造成的数据泄露、

14、更改或破坏。 所有计算机系统都有安全性问题。由于数据库中存放大量有用信息,从而使安全性问题更为突出。系统安全性保护措施是否有效是数据库系统的主要性能指标之一。,攒痹躲妻跺每剃醚酌涂潍忙乒淳遥慨裁态皖急碴梯象伸摔戴尧旗迭尊歉檄数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,20,图6.1 典型的多用户数据库应用系统环境,数据库系统的安全性依赖于其所在的计算机和网络环境的安全性。见下图。,铰郝材媳仓蝴鲤秽染阮运亥絮昼讶庆子簧燃涂壶壹呜考探换牲铬车瓢浚捷数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,21,6.2.2 数据库安全性控制的一般

15、方法,1. 用户标识与鉴定 用户标识与鉴别是DBMS提供的最外层安全性保护措施。用户只有通过鉴定后才被获得系统最外层的权限。 用户标识与鉴定的方法很多, 常用的有: (1)身份认证: 是系统为用户定义的用户名, 指用户标识用户ID用户账号。 (2) 口令:往往与身份认证一起使用。,咨纂起部墙讫屈淮泥惨到发酒狡驼远谴技日婉国丝蓝猾樟输钻尼畸茂倪牵数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,22,(3)随机运算认证:指非固定口令认证,即用户每次的口令都不一样。鉴别时系统提供一个随机数,用户根据预先约定好的计算过程或函数进行计算,得到口令。 2. 存取控制 用户通过

16、身份鉴别并不意味着他可以任意使用数据库,用户究竟能否使用数据,使用哪些数据,如何使用数据等问题需要进一步由存取控制来确定。,6.2.2 数据库安全性控制的一般方法,苛榔漱曲粘徊瑞痊炊屡映硅粟稗沧阶具乍絮柳毋祥趴成韭埠反挡齿甩柞勇数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,23,存取控制又称授权控制,其作用是保证有数据访问资格的用户在授权范围内使用数据,并让未被授权的用户无法接近数据。 存取控制机制主要包括两部分: 1)定义用户权限,并将用户权限登记到数据字典中。用户权限是指不同用户对于不同数据对象允许执行的操作权限。系统必须提供适当语言定义用户权限,这些定义经

17、过编译后存放在数据字典中,被称为授权规则。,6.2.2 数据库安全性控制的一般方法,意样杂汲显刹劳改抛讳魔慨喷直概侦焉责卯捻柴幂蛆污量牌拾殃监刊片着数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,24,2) 合法权限检查。每个用户发出存取数据库的操作请求后,DBMS查找数据字典,根据授权规则进行合法权限检查,若用户的操作请求超出了定义的权限,系统将拒绝执行此操作。 用户权限定义和合法性检查机制一起组成了DBMS的安全性子系统。,6.2.2 数据库安全性控制的一般方法,穷君泼优餐蔬擎瀑桌汪以哆拳彭蚊锅咬辩请拨廉奖陌分措返精匹梳咳学赦数据库技术与应用第6章-数据库保护

18、机制数据库技术与应用第6章-数据库保护机制,25,3. 视图机制 视图把用户可以使用的数据定义在视图中,这样用户就不能使用视图定义外的其他数据,从而保证了数据库安全性。,6.2.2 数据库安全性控制的一般方法,瑰幸祟安会落更渡拯帖罚畦摹初擂姑妮珠具壹锡蔗曙砚您埋距某顶扳同宪数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,26,4. 审计(Audit) 审记功能就是把用户对数据库的所有操作自动记录下来放入审记日志中。DBA可以利用审记跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。 审记通常是很费时间和空间的,所有DBMS往往都将

19、其作为可选功能,允许DBA根据应用对安全性的要求,灵活地打开或关闭审记功能。审记功能一般主要用于安全性要求较高的部门。,6.2.2 数据库安全性控制的一般方法,漏刚芭不辞烦瞅翅赌咎纺纂佃瓤时呸附怪燃谁映嘻媒唇站琶途搂衬拦乡萨数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,27,5. 数据加密 对于高度机密数据,例如金融财务数据、军事数据等等,除以上安全措施外,还可以采用数据加密技术。 数据加密是防止数据库中数据在存储和传输中泄露的有效手段。 加密的基本思想是:根据一定的算法将原始数据(明文)变换为不可直接识别的格式(密文),从而使不知道加密方法的人无法获知数据的内

20、容。,6.2.2 数据库安全性控制的一般方法,乙祖梢豺谭驱龋斤式玖刹怎野赂忧经祁贷伎是亨市吞搂敝韧竞秽醛仗岔缀数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,28,加密方法分为两类:,6.2.2 数据库安全性控制的一般方法,加密方法涉及要素:加密密钥(好比密码)、解密密钥和算法。 加密时,用加密算法根据明文和加密密钥生成密文;解密时,用解密算法对密文和解密密钥进行运算得到明文。,铀漓张趴甥雏牌杜唐妇畜谓派蕉看臼嗣群厕递被亚防刀杂娃揉芒双盒步杖数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,29,6.2.3 SQL Seerver的安全

21、性控制,SQL Server2000有3个等级的安全验证:,绒函熙溅赫貉绷闯华捡骡癣于蛆寇擎饺杏昌垄羔骏傈桌爪根专嘱懈化寂塑数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,30,6.2.3.1 SQL Server 安全验证,SQL Server安全验证是根据用户登录 SQL Server时提供的登录名和密码验证用户是否可以连接SQL Server。 SQL Server安全身份验证机制提供两种模式:Windows验证模式和混合验证模式。,盅顿抛导苫砷茧撒啥站擂秃迈添探祟拌臭夏腥狰汇敛龋擅农谅妇析递铱橇数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-

22、数据库保护机制,31,1. Windows身份验证模式 Windows 验证利用Windows 操作系统本身验证用户合法性的能力,允许用户通过 Windows 用户帐户连接到SQL Server。 使用这种模式,用户只能使用Windows验证登录, 不能使用SQL Server 验证登录。,6.2.3.1 SQL Server 安全验证,穷斡啼锤酪课兢押烩读钨枯砰呆拱期晋蹿璃槛夯琐租宙豺景捣驱莲谤榷案数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,32,2.混合验证模式 使用这种验证模式,用户可以使用Windows 验证或者SQL Server验证连接到SQL S

23、erver 。登录时两者中选择一种。,6.2.3.1 SQL Server 安全验证,珠登缘训扛澄晕熟心心信陋经方裁迹簧粘仍旭碍硝订产脸刀儡磷迹彪庇丁数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,33,SQL Server 把设定的用户名身份信息(比如登录名和密码)存在Master数据库的表sysxlogins中。 SQL Server有一个特殊的内置登录名: sa(System Administrator,系统管理员),拥有在SQL Server上的一切权限; BUILTIN Administrator是另一个内置登录名,这是SQL Server为Window

24、s NT(基于NT的)系统管理员设置的默认登录名,也拥有SQL Server上一切权限。,6.2.3.1 SQL Server 安全验证,乍肝磐饭汽距戎栈捕因供绒桌幼模型祖蜘幼傈绑适鸿足崇晚思像琳贸勤驮数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,34,在SQL Server上管理用户身份信息主要有两种方法: 一是在企业管理器中利用图形界面来管理; 另一种是利用SQL Server提供的管理用户身份的存储过程,来管理用户。这些存储过程必须在系统数据库Master中使用(当然要有足够的权限)。,6.2.3.1 SQL Server 安全验证,掉祟锐牢恤衣帘慷井瞄弧

25、厢蔼删炒颗但荒舶档礁诅寥篮饭咽贷寒尝醒俯口数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,35,6.2.3.1 SQL Server 安全验证,可视化定义 新登录用户,锰妇隐洞昂隶啊鹤嗣殿岿罕爷互桔肮雅畸釜坎驰琉糯胆畏佯肿拐罚落态遗数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,36,(1) sp_addlogin:创建用户身份信息 Exec sp_addlogin s1, 111111, 教学数据库 创建一条用户身份信息,登录名s1,密码111111,默认数据库教学数据库。 (2) sp_droplogin:删除用户身份信息 Exe

26、c sp_droplogin s1 删除s1用户身份信息。,6.2.3.1 SQL Server 安全验证,喊粉碳咀柞顽娜赊暗猾习己舵纬枢名违悄耙咎庸隐盐标侩涛谚泉银慢虐越数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,37,(3) sp_grantlogin:将Windows的用户或用户组添加成SQL Server的登录名。 Exec sp_grantlogin zhujing-pcu1 将Windows用户u1添加成SQL Server的登录名。 (zhujing-pc为计算机域名) (4) sp_denylogin:拒绝某Windows用户(或用户组)连接到

27、SQL Server。 Exec sp_denylogin u1 拒绝Windows用户u1连接到SQL Server 。,6.2.3.1 SQL Server 安全验证,瞄咨押氏翌挂痪吝她旭筑怠廖抹材浙街魔秘肢档伞抹性渺辉晶轿升傲巫镣数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,38,(5) sp_revokelogin:删除某Windows用户在SQL Server上的用户身份信息。 Exec sp_revokelogin zhujing-pcu1 删除Windows用户u1在SQL Server上的身份信息。,6.2.3.1 SQL Server 安全验证

28、,右峰下藩扁嚏粳妹它歉撑胶工列瀑局习逮莹萎瘸倪截笛妮赎妆啃拂描锗娜数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,39,6.2.3.2 数据库安全验证,用户成功连接到SQL Server后,如果想访问某个数据库,他们还必须在数据库中有账号,否则对该数据库的访问就会遭到拒绝。,蒋植拔觅甘婶亦蛰增左兆瀑腺宣渠根拴匠声模锭普畔尚嘴尧素描锹狼恃岸数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,40,6.2.3.2 数据库安全验证,数据库账号与登录名区别: 登录名作用范围是整个SQL Server,使用一个登录名可以跟服务器上所有数据库进行交互

29、。 数据库账号的作用范围只是一个数据库,它是一个或多个登录名在某个数据库上的映射,数据库账号相关信息存储在各个数据库的sysusers表中。,糕搁藉包利悟阿布志宙党酣戎群农据怖今或豆洋儒眼沃棘亮藕常镰蛾寸辆数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,41,数据库账号与登录名关系: 同一个登录名可以映射到不同数据库上的不同数据库账号;但在一个数据库上,一个登录名只能有一个映射,多个登录名可以映射到同一个数据库账号。 默认情况下,新创建的每个数据库只有一个账号dbo,系统管理员登录名sa默认映射到每个数据库的dbo账号。,6.2.3.2 数据库安全验证,痊羞顺癌躲

30、怨且糊肖智散酬航蜡棠胆良淬楔荧绰凤绢瘤冶吱希首保烂橡侩数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,42,guest账号:一般情况下,数据库账号总跟某个(或某些)登录名之间有映射关系,但是guest账号除外,他不跟特定登录名建立映射关系,那些在数据库中没有对应账号的登录名都映射到guest。 master和tempdb数据库中必须存在guest账号,其他数据库中可以任意添加或删除guest账号。,6.2.3.2 数据库安全验证,祁屑涝锋叼患压廊倚灰昆磺捎岁室焦峙河爱目状争兔烷叁煤岂狙牌黍移驰数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护

31、机制,43,当一个登录名请求访问一个数据库时,SQL Server在该数据库的sysusers表中查找该登录名对应的数据库账号,如果查到,则可以访问该数据库,如果没找到, SQL Server则试图将该登录账号映射成guest数据库账号,如果还失败,那么这个登录名就不能访问该数据库。,6.2.3.2 数据库安全验证,膜绞罪厘做糯绰斯霄愤唉双版摆幂沦悼棱苯箱情悔及辣唐阐盖翘蕉粮与沽数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,44,管理数据库账号的核心是管理登录名跟数据库账号之间的映射关系。管理数据库账号可用企业管理器的图形界面。也可以通过系统存储过程进行。 (1

32、)sp_grantdbaccess 创建数据库账号,并建立登录名到账号的映射。该存储过程只能对当前数据库使用。 例:use 教学数据库 Exec sp_grantdbaccess s1 ,u1,6.2.3.2 数据库安全验证,涅搽正刮堤掣惟像筋莹窍垮旺卷右央涅磁弛规蹲谚剂烁林驭影巍评昌热荣数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,45,说明: 如果数据库账号u1不存在,则创建该账号,在数据库中把登录名s1映射到账号u1。第二个参数(数据库账号)可省略,省略时表示它跟第一个参数(登录名)相同。,6.2.3.2 数据库安全验证,燃惋啄武前轧售滥韩窘乳勇丢谚聘寸椎

33、丹瑞氦谐面洪靳蔗绦苯嘴磕鼠掐犊数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,46,(2) sp_revokedbaccess 删除数据库账号,该存储过程只能对当前数据库使用。 例:Exec sp_revokedbaccess s1,u1 删除数据库中的账号u1。在删除任何登录名之前,必须先删除各个数据库中该账号映射的账号,以免留下“孤立”账号,没有任何登录名映射到它。每个数据库的dbo账号都不能删除。,6.2.3.2 数据库安全验证,悲笆妹稳芽萌话称昔序炮锑够煞菲骂悲霜析轮越输兄品缓瘁督鲜亮赋鸵故数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据

34、库保护机制,47,6.2.3.2 数据库对象的安全验证,一个用户通过登录名的映射在一个数据库中拥有账号后就可以访问这个数据库了,但是用户在这个数据库上究竟可以做些什么操作,这要由这个数据库上的权限设置来决定。数据库的权限设置在数据库账号之上(只有CREATE DATABASE语句权限例外,它由sa授权登录名),有效作用范围是单个数据库,权限不能跨越数据库。,肄慨慢神凉侄政疫唐嘱浑叔靖是坦雅捕野啡渭晒忽秸乃迷铝瓶锭斑隙蕉栋数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,48,数据库的权限分为两类:语句权限和对象权限。,1. 语句权限 语句权限是指创建数据库和数据库对

35、象以及备份数据库的权限。 语句权限针对的是SQL语句的执行,而不是数据库中已经存在的某些对象。表6-1列出了SQL Server中语句权限适用的语句。,6.2.3.2 数据库对象的安全验证,林朵滇媒蛇虎喷侩痛辕衔戌搽堆捎制穿藐狸届舶条碑殴积矛件菌颓衫披施数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,49,表6.1 语句权限适用的语句,6.2.3.2 数据库对象的安全验证,腆允贺葵荧耻西眺乎馆诧倡鸵饼谍韩蜜钒供邹且勾枣凤体耻廷彬须替魄恤数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,50,2. 对象权限 是指操作数据和执行存储过程的权

36、限。,表6.2 对象权限适用的对象和操作,妖弹淘吮杂惨求庚境磺暂客强旧靖挡搪诀娶窗宾坛盅圾清柯登撞绒瞧犯线数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,51,3. 权限管理 权限管理可以通过企业管理器进行,也可以用T-SQL完成。下面我们简单介绍一下如何用T-SQL管理权限。 权限管理主要有授权、收回权限和拒绝三类。 授权是规定某数据库账号可以执行某个操作,用GRANT语句进行授权操作。,6.2.3.2 数据库对象的安全验证,矿讯募坷超尽詹魔鄙逸谊布堪贱龄株处烯衰兰茎骸丙喝笛捐蜡羡杏牙浊幽数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机

37、制,52,授权语句: GRANT ALL PRIVILEGES |权限1,权限2 , ON 对象名 TO 用户账号1,账号2, ,6.2.3.2 数据库对象的安全验证,例1:授予u1账号创建视图的权限。 GRANT CREATE VIEW TO u1,敦泽可傀罢活摩谷吁续敬窥罕函俯槛鄂宜财颁得勿尹磋簧俩塞谤跟鹊抖削数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,53,例2:授予u1账号对学生表具有insert权限。 GRANT INSERT ON 学生 TO u1,例3:把查学生表和修改学生学号的权限授予用户u4。 GRANT SELECT, UPDATE(学号)

38、 ON 学生 TO u4,6.2.3.2 数据库对象的安全验证,好授鸽叫药玄劣臣残议傻汲遇公响契丘切枷葡躇敢叮绵揖掇劲氦餐图品抬数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,54,回收权限语句: REVOKE 权限1, ON 对象名 FROM 用户名,例4:回收u1账号创建视图的权限。 REVOKE CREATE VIEW FROM u1,6.2.3.2 数据库对象的安全验证,回收权限:是撤销某数据库账户在某数据对象上的操作权限。,捧蕾兆子彰算瓣别乐雇肾胖普溜喂震巩赘若图甲烃贾被留狱锥累撅迸弹朽数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库

39、保护机制,55,拒绝语句: DENY 权限1, ON 对象名 TO 用户名,例4:规定u1账号不能创建视图。 DENY CREATE VIEW TO u1,6.2.3.2 数据库对象的安全验证,拒绝:是显式地规定某数据库账户不能执行某个操作。,琉民祥寡样掸吩湖暖莉葵妖兔躁伊栋危仆潮棉拭郸绰另扦引矽煌淄等沂市数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,56,4. 角色 用户在SQL Server系统内进行任何操作,必须要有相应的权限,因此为不同用户分配合适的权限是数据库管理员例行公事。然后,如果一个数据库用户太多,如有5000人,要为他们一一分配权限工作量就显得

40、太大。而现实中许多用户权限是相同的,或者大部分的权限只是少数几种情形的组合,为此,SQL Server提供了“角色”,以方便权限管理。,6.2.3.2 数据库对象的安全验证,淆话族月淑涪央用炸奉帽李桐觅报系誊含补秧敌舰突沙辱秒癸摆铺留唤贾数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,57,实际工作时,权限管理大多通过角色进行,很少直接对用户(数据库账号)分配权限。 角色有三种类型: 用户定义的角色 固定的数据库角色(SQL Server系统定义) 固定的服务器角色 (SQL Server系统定义),6.2.3.2 数据库对象的安全验证,筑汲蔫监古它哑乘禄缀渠烛绒

41、曝漾念疯辨质笋蚂膨单伪军立迹贮彼球搞壹数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,58,表6.3 固定的数据库角色,6.2.3.2 数据库对象的安全验证,因熄韭芒痊央联陶幽桂男陌惜萄秧舒崭缀衡选们来副坯亭纂谩蚊聚换牲冯数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,59,表6.3 固定的数据库角色(续),固定的服务器角色,如下表6.4,6.2.3.2 数据库对象的安全验证,漏殉瓷疾诺精辰众烹享杨葫密暂吭狙观瞳嚼薪碗缓赊户梳婉访州仰涛倪稀数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,60,表6.4 固

42、定的服务器角色,6.2.3.2 数据库对象的安全验证,茵犹起淮资长琵豁今奏行捡施蝗壤惜缀离雾撵烙渝击答撒缔狮妨牛型岂容数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,61,一般情况下用户从多个角色获得的权限是叠加的,如果其中一个角色没有被授予某个权限(或者授予后又回收了),而另一个角色被授予了该权限,则该用户仍然拥有该权限。实际工作中 ,有时也需要排除某角色的某个操作权限,凡成为该角色的用户,都不能拥有该权限。对此可以用“拒绝”权限管理方法。“拒绝”具有最高优先权。,用户定义的角色:,6.2.3.2 数据库对象的安全验证,刷备菩灿静己韶歧浊锈樊亏厂烘埃乖辗不因华屹

43、嘉哮铁娄铆滨劣拳断壕目数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,62,如果某个用户同时是几个角色的成员,如果其中一个角色拒绝了某个权限A,则不管其他角色是否授权了A,该用户都没有A权限。,例:用户u是角色A、B和C的成员。三个角色权限如表6.5所示。则用户u的权限如表6.6 。,6.2.3.2 数据库对象的安全验证,甄脚偶耀躲奄仰弹窘蝴奴模涎淑剃矣昌牛强辣纺掷拆算住爹敝巷菇娶涩滥数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,63,表6.5 角色A、B和C的权限,6.2.3.2 数据库对象的安全验证,医篷精疲营委当柱喧吴肾男枫霞

44、推纽重络拣紧连铲宪帅睫羔句旺希蔬己幌数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,64,表6.6 用户u 的权限,6.2.3.2 数据库对象的安全验证,其吩痰牲闰貉阎陶般支否烁已旨丰票阎卡怜精暗承碌炊吉授级烩傍瞬毫绪数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,65,过了一段时间后,需要对权限调整,调整后三个角色的权限如表6.7所示。则调整后用户U的权限如表6.8 。,表6.7 角色A、B和C的权限,6.2.3.2 数据库对象的安全验证,绩嘶份答金秉喜宪冷拽苞屹亨惭虏燕蜡纺蓬边组禾犊燥郸卧惧勇辅把秦堪数据库技术与应用第6章-数据库

45、保护机制数据库技术与应用第6章-数据库保护机制,66,表6.8 调整后用户u 的权限,O表示权限被撤销,X表示权限被拒绝。,6.2.3.2 数据库对象的安全验证,懊袍着池丝炒似龙蔚壳兰尖吼短幸称莲蚂谓彦植窑舍薯搔蚊更武拆井管萎数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,67,6.3 并发控制,数据库是一个共享资源,从理论上讲,对数据库中数据进行存取的用户数目可以是任意多。让多个用户程序并行地存取数据库,可以提高数据库系统的利用率。但这样可能出现多个用户程序并发地访问同一数据资源的情况,对此并发不加控制,就会破坏数据的一致性。所以,必须对并发操作加以控制,以正确

46、顺序方式调度并发操作。,光现哲端巨恋粱沧读戌毋匪炬枉浙每冷嚣营尧咏滓囊婚详尊癣居睦傅痈倪数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,68,6.3.1 事务,1事务(Transaction) 事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的整体。 在RDB中,一个事务可以是一个SQL语句,或一组SQL语句或整个程序。 但事务与程序是不同的概念,一个程序中可以包含多个事务。 为什么要引入事务的概念呢?让我们来看个例子。,冬秀矛帅秒彝疼疹笼蛋妥们礁林愚递侠科妥亨傣坤吊絮琅熙戳肇善痉双奉数据库技术与应用第6章-数据库保护机制数据库技术与

47、应用第6章-数据库保护机制,69,例如:假设你来到ATM机前进行转帐工作,让机器“把100元从你的活期存款帐户转到定期帐户”。你插入信用卡,进行了必要的操作,机器将对银行数据库做两次更新: (1)首先从你的活期存款余额取出100元; (2) 接着将100元转到你的定期存款帐户中。你确信你转帐的钱已经在你的定期存款帐户。 若100元从你的活期存款帐户刚刚转出后,突然停电,你的定期帐户中又没得到这笔钱,怎么办,你的钱丢失了?,6.3.1 事务,啥誓褂打烫岔端菏劣缎臃乃侩卫福座拓亏故鼠货忿滑帘钓携锗涨潭浊伍舌数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,70,事务定义

48、: 事务可由用户使用事务开始和结束语句显式定义。 BEGIN TRANSACTION (事务开始) COMMIT(ROLLBACK)(事务结束) End TRANSACTION 事务结束 如果用户没有显式定义事务,则由DBMS按缺省规定自动划分事务。,6.3.1 事务,忙持怖庚一羹搀豆矩肪革宝数浮露囱貉斗瘪挫祟贿蛮绢蹭脖抢螺埃冤吹泡数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,71,解释:,COMMIT:提交,提交事务的所有操作。即,将事务对数据库所做的所有更新写回到物理数据库中去,事务正常结束。 ROLLBACK:回滚。在事务运行过程中发生了某种故障,事务不能

49、继续进行,系统将事务中对数据库的所有已完成的操作撤消,使数据库恢复到该事务执行前的状态。,6.3.1 事务,枫陀琐秆门绕婆卿膳斟而征惨耿眨宋卉描讽蛋恼顺苔驰脸洛混酶晤帽舜铺数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,72,2事务的特性,(1)原子性(Atomicity):一个事务中对数据库的所有操作,是一个不可分割的整体,要么都做,要么都不做。(由DBMS的事务管理子系统来实现原子性。) (2)一致性(Consistency):一个事务独立执行的结果,将保持数据库的一致性。即事务的执行结果必须是使数据库从一个一致状态变到另一个一致状态。(完整性控制子系统保证),6.3.1 事务,谁带燥撵洪官规浮邻晴汽肺刀茁禁媒椎米寨藤兽卵启埃韧抬软枣哲相询陆数据库技术与应用第6章-数据库保护机制数据库技术与应用第6章-数据库保护机制,73,(3)隔离性(Isolation):在多个事务并发执行时,一个事务的执行不受其他事务干扰。系统应保证这些事务的

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1