已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
并发控制,1、并发操作可能出现的问题2、并发控制方法封锁技术(1)锁的类型(2)封锁粒度(3)活锁和死锁3、SQLServer的封锁机制,7.5数据库安全性,教学要求:了解数据库系统安全性所涉及的内容,掌握数据库安全性控制的常用方法以及SQLServer中安全性控制机制和控制策略。教学重点:数据库中维护安全性的机制,7.5.1问题的提出7.5.2数据库安全性控制概述7.5.3SQLServer的安全性机制7.5.4SQLServer访问控制策略7.5.5统计数据库的安全性,7.5.1问题的提出,数据库的一大特点是数据可以共享数据不能是无条件的共享例:教学管理、银行储蓄数据、军事秘密、国家机密、新产品实验数据、市场营销策略、销售计划等。数据共享给数据库带来的问题安全性问题数据库的安全性:防止不合法访问数据库造成数据泄露、更改或破坏,7.5.2数据库安全性控制概述,一、数据库系统安全性涉及到哪些方面?,计算机系统三类安全性问题:技术安全类、管理安全类、政策法律类数据库系统引进了数据库的计算机系统,安全性涉及到计算机的物理层、使用人员、操作系统、网络层以及数据库管理系统本身等多个方面。,物理层:防止入侵者强行进入或暗中潜入破坏物理文件人员层:严格控制用户的授权。操作系统层:OS安全对数据库存在着很大的威胁。网络层:为数据库系统的安全提供一个保障DBMS层:DBMS有完善的访问控制机制。,1、用户标识和鉴定系统提供的最外层安全保护措施。其方法是由系统提供一定的方式让用户标识自己的身份。每次用户要求进入系统时,由系统进行身份核对,通过鉴定后才有使用权。缺点:用户名和口令易被窃取。,二、数据库安全性控制的常用方法,分为自主存取控制和强制存取控制方法1)自主存取控制方法(DAC)由用户自主决定对数据库对象的操作权限,用户可以对哪些对象进行操作,完全取决于用户之间的授权(通过GRANT和REVOKE语句实现)。SQLServer存取控制属于自主存取控制方法。例:将成绩表SC的查询权限授予给student用户grantselectonsctostudent,2、存取控制,2)强制存取控制方法(MAC)为每一个数据库对象标以一定的密级,对每一个用户确定一个许可级别,不同级别的用户拥有的数据库的操作权限不同。优点:用户不能直接感知或进行权限控制,保证了更高程度的安全性。适用于对数据有严格而固定密级分类的部门,如:军事部门、政府部门等。,3、数据库角色角色:被命名的一组与数据库操作相关的权限。可以为一组具有相同权限的用户创建一个角色。简化授权的过程。例:T_role角色具有对成绩表的查询、修改和删除权限。如果某教师(用户)希望得到对成绩表的查询、修改和删除权限,则可直接将T_role授予给该某教师。注意:不同的DBMS对角色操作的SQL语句略有不同,4、视图机制,目的:把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定程度的安全保护。主要功能是提供数据独立性。间接实现了用户权限定义。例建立计算机系学生的视图,把该视图的查询权限授于S。CREATEVIEWCS_StudentASSELECT*FROMStudentWHEREdeptno=CS;GRANTSELECTONCS_StudentTOS;,5、审计,审计:DBMS提供的一种可以记录下对数据库的所有操作活动和轨迹的可选功能。将用户对数据库的所有操作记录在审计日志上。DBA利用审计日志找出非法存取数据的人、时间和内容用户级审计和系统级审计,用户级审计:用户针对自己创建的数据库表或视图进行审计。记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作。系统级审计:DBA设置。监测成功或失败的登录要求,监测GRANT和REVOKE操作以及其他数据库级权限下的操作。,6、用户自定义安全性,可以通过触发器或存储过程实现自定义安全性。例:假设在MIS系统中,对工资表的修改必须是在上班时间(星期一到星期五的9:00-17:00),其余时间的插入和修改均库无效。可以用如下的触器,createtriggersecur_zgon职工forinsert,update,deleteasifdatename(weekday,getdate()=星期六ordatename(weekday,getdate()=星期日or(convert(int,datename(hour,getdate()notbetween9and17)beginraiserror(只允许在工作时间操作数据!,16,1)rollbacktransactionend,例:某企业的数据库应用系统中用户类型如下:管理员:对数据库的所有数据进行操作和维护。生产部门用户:对生产数据有查询、修改、插入和删除权限。销售部门用户:对订单数据有查询、修改和删除权限。劳资用户:对人事、工资数据有查询、修改、插入和删除权限。普通职工:对自己的工资、产品信息具有查询权。如何实现该系统的安全性?,可以按以下策略设计:1)建立登录用户,并授予为数据库用户.2)对用户进行分类授权:可直接对各类用户授以相应的权限,也可以用角色授权,即,首先创建多个角色,将各类用户拥有的权限授予不同角色,再将角色授予给相应的用户。3)对于职工,可以用视图或存储过程实现权限管理。4)可以用触发器,也可以用审计功能实现对数据操作的监控,以防渎职现象的发生。,7.5.3SQLServer的安全性机制,SQLServer的安全性机制可分为下图所示4个等级:,用户首先要登录到客户端的操作系统中,提供口令和密码才能登录到SQLServer服务器,具有访问数据库的权限,具有访问数据库对象的权限,7.5.4SQLServer访问控制策略,SQLServer的用户通过授权获得对数据的访问权限。其访问控制分为如下两阶段:安全帐户认证:判定用户是否有权连接到服务器并向服务器发送SQL命令。访问许可确认:判定是否有对数据库的访问权限,1、SQLServer的安全帐户认证方式及认证模式,1)身份验证方式用户必须通过身份验证才能连接到SQLServer中。SQLServer有两种身份验证方式:集成验证方式(Windows身份认证方式):用户通过windows的身份验证后,不必提供SQLServer的Login账号和口令就自动进行SQLServer身份验证。标准身份验证方式(SQLServer身份验证方式):由数据库管理系统独立来管理自己的数据库安全。登录时,必须提供SQLServer自己的登录账号和口令,2)SQLServer的身份认证模式,Windows身份验证模式:用Windows身份验证方式登录;混合模式:可以用Windows身份验证方式,也可以用SQLServer身份验证方式注意:如果在win98下安装的桌面版SQLServer,只能用SQLServer身份验证方式登录。,3)安全帐户管理,可用T-SQL语句和企业管理器管理数据库帐户(服务器登录标识)特殊帐户sa:SQLServer完成安装以后,建立了sa。sa帐户拥有最高的管理权限,可以执行服务器范围内的所有操作。,(1)windows安全模式用户管理:sp_grantlogin:授予WindowsNT用户或组连接SQLServer服务器sp_denylogin:禁止用户或组连接到SQLServer服务器例:sp_grantloginjxglusers注意:对于没有建立WindowsNT帐户的用户,只能使用SQLServer登录标识来管理用户连接。或首先建立WindowsNT帐户,再用sp_grantlogin授予其连接SQLServer服务器的权限,SQLServer中用于用户管理的SQL语句,(2)SQLServer身份验证模式sp_addlogin:创建登录用户sp_password:改变用户的口令sp_grantdbaccess:授权某个登录用户为数据库用户例:sp_addloginusers,users,2访问许可确认,访问许可确认:用户连接到SQLServer服务器后,系统判断其是否拥有对数据库的访问许可权。授予用户的权限决定其对数据库所能执行的操作。安全帐户认证和访问许可确认的区别:安全帐户认证决定用户能否向SQLServer服务器发送SQL命令;访问许可确认决定用户能在数据库中执行哪些SQL语句。,1)SQLServer中的角色,固定角色,固定角色:SQLServer预先定义的角色。所拥有的权限涉及到服务器配置、服务器和数据库的访问控制等。用户只有加入固定角色才能获其特殊的许可权限。根据所作用的级别不同,划分为:固定服务器角色:SQLServer在安装时就已经创建好用于分配服务器管理权限的实体。固定数据库角色:设置在数据库级,提供最基本的数据库权限的综合管理,sysadmin:固定服务器角色,能够在服务器上执行所有操作。db_owner:固定数据库角色,拥有数据库最高权限。用sp_addsrvrolemember可将固定服务器角色分配给某登录帐户。sp_addrolemember可将某个登录帐户加入某个固定数据库角色。例:sp_addsrvrolememberzzgsysadmin用sp_addrolememberdb_owner,zzg,主要的固定角色,public角色:每个数据库均具有这一角色,数据库的所有用户自动属于public角色,并且不能从public角色中删除。与固定角色一样,public角色也不能被用户删除。用户自定义角色:SQLServer中sysadmin、db_owner等固定角色中的成员可以自定义数据库角色。可以用SQL语句和EnterpriseManager管理用户自定义角色。,SQLSerer中对角色管理的SQL语句:1)角色的创建:sp_addrole2)给角色授权:GRANTON对象名TO,3)将一个角色授予给其他的角色或用户:sp_addrolemember4)角色权限的收回REVOKEONFROM,5)取消用户的角色:sp_droprolemember,例通过角色实现将一组权限授予一个用户。步骤如下:1)sp_addroleR1;2)GRANTSELECT,UPDATE,INSERTONStudentTOR1;3)sp_addrolememberR1,zhou4)revokeupdateonstudentfromR15)sp_droprolememberR1,zcx;,应用程序角色,应用程序角色:是SQLServer中另一种访问控制实现方法,它是根据用户所运行的应用程序决定当前应用程序能否连接和访问数据库对象。使用应用程序角色的原因:见教材主在使用方法:请同学们查阅相关资料,4)权限设置,语句权限:决定用户能否操作数据库和创建数据库对象,如表、视图、存储过程、默认和规则等。主要有CREATETABLE、CREATEVIEW、BACKUPDATABASE等语句权限。对象权限:决定用户对数据库对象所执行的操作,控制用户在表和视图上执行SELECT、INSERT、UPDATE、DELETE语句以及执行存储过程的能力。,例:某企业开发一个数据库应用系统,系统中有用户:系统管理员:对数据库的所有数据进行操作和维护。生产部门用户:对生产计划表等数据具有查询、修改、插入和删除等权限。销售部门用户:对订单数据有查询、修改和删除权限。劳资用户:对人事、工资具有查询、修改、插入和删除权限。普通职工:对自己的工资、对企业的生产以及产品信息具有查询权。如何实现该系统的安全性?,答:1)建立登录用户,并授予为数据库用户sp_addloginmanagersp_addloginscglsp_grantdbaccessscgl.2)可直接为用户授权;也可以通过角色授权Sp_addrolescgl_role.grantselect,update,delete,inserton生产计划表toscgl_role.,3)职工权限管理:用视图实现为各个用户创建一个视图,将该视图的查询权限授予给相应的用户。Createviewzg1asSelect*from职工表where职工号=001Grantselectonzg1tozg001也可以用存储过程实现其权限管理创建存储过程:createprocP_gzzghcharasSelect*from职工表where职工号zgh将存储过程的执行权限授予给职工。,7.5.5统计数据库的安全性,统计数据库允许用户查询聚集类型的信息(如合计、平均值等)不允许查询单个记录信息例如,一个单位的人均工资数可以公开查寻,而每个人的工资数要保密。统计数据库中特殊的安全性问题隐蔽的信息通道能从合法的查询中推导出不合法的信息,策略:1:任何查询至少要涉及N(N足够大)个以上的记录2:任意两个查询的相交数据项不能超过M个3:任一用户的查询次数不能超过1+(N-2)/M,7.6.1数据库完整性简述7.6.2完整性约束条件的分类7.6.3关系模型的完整性约束,7.6数据库完整性,教学内容:DBMS提供的数据完整性机制、数据完整性约束条件的分类及实现方法。重点:数据完整性约束条件的分类及实现方法。,7.6.1数据库完整性简述,数据库的完整性:数据的正确性和相容性数据的完整性和安全性的区别:数据的完整性防止数据库中存在不正确的数据防范对象:不合语义的、不正确的数据数据的安全性保护数据库防止恶意的破坏和非法的存取防范对象:非法用户和非法操作,一个给定的数据库可能受到多个完整性约束的限制,约束可能是简单的也可能是复杂的。例如:学生的学号必须唯一;性别只能为男或女;学生所在的系必须是学校已开设的系。为维护数据库的完整性,DBMS必须:1.提供定义完整性约束条件的机制2.提供完整性检查的方法及违约处理,7.6.2完整性约束条件的分类,约束条件作用的对象可以是关系、元组和列。列约束:列的类型、取值范围、精度、排序等约束条件。元组的约束:元组中各个字段间的联系的约束。关系的约束:若干元组间、关系集合上以及关系之间的联系的约束。,完整性约束条件所涉及的对象的状态可以是静态的,也可以是动态的。静态约束:数据库每一确定状态时的数据对象所应满足的约束条件。静态列级约束:列的取值域的约束。静态元组约束:元组各个列之间的约束关系。静态关系约束:一个关系的各个元组之间或者多个关系之间存在的约束,动态约束:数据库从一种状态转变为另一种状态时,新、旧值之间所应满足的约束条件。动态列级约束:修改列定义或列值时应满足的约束条件动态元组约束:修改元组时,元组中各字段之间应满足的约束条件动态关系约束:加在关系前后状态上的限制条件。,7.6.3关系模型的完整性约束,一、实体完整性在CREATETABLE中用PRIMARYKEY定义单属性构成的码时:可定义为列级或表级约束条件多个属性构成的码时:只能定义为表级约束条件,例将Student表中的Sno属性定义为码(1)在列级定义主码CREATETABLEStudent(SnoCHAR(9)PRIMARYKEY,SnameCHAR(20)NOTNULL,SsexCHAR(2);(2)在表级定义主码CREATETABLEStudent(SnoCHAR(9),SnameCHAR(20)NOTNULL,SsexCHAR(2),PRIMARYKEY(Sno);,例2将SC表中的Sno,Cno属性组定义为码CREATETABLESC(SnoCHAR(9)NOTNULL,CnoCHAR(4)NOTNULL,GradeSMALLINT,PRIMARYKEY(Sno,Cno);/*只能在表级定义主码*/,实体完整性检查和违约处理,插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。包括:1.检查主码值是否唯一2.检查主码的各个属性是否为空只要有一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年共青团入团考试学习自测题库附完整答案
- 2026年上海同济大学生命科学与技术学院招考聘用模拟试卷【含答案解析】
- 2026年新闻伦理与法规(试题)附答案
- 《口语善良品质训练|与人为善乐于助人》
- 上海教师考试试题及答案
- 成都初二语文试题及答案
- 2026届天津市八年级生物章节测评人体生理与实验探究分层训练卷(含答案解析、评分细则与学生作答区)第134组
- 2026北师大三下知识梳理互动课件
- 企业安全公告订阅劫持检测报告
- 企业反季节营销对淡季销售的拉动研究报告
- DGJ 08-114-2016 临时性建(构)筑物应用技术规程
- 港口维修安全培训
- 110kV-变电站设计方案
- 劳动关系协调师竞赛技能竞赛考试题库(含答案)
- DL∕T 5106-2017 跨越电力线路架线施工规程
- 《细胞分子生物学》课件
- 中医诊所防火管理制度
- (完整版)一年级数独100题
- 武术馆聘用教练合同
- 信阳市国企招聘考试真题及答案
- 常州市房屋租赁合同(常州市2021版)
评论
0/150
提交评论