




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库原理与应用,第九章数据库安全,安全性概述,SQLServer的安全性,用户管理和角色管理,权限管理,架构,9.1安全性概述,问题的提出数据库的一大特点是数据可以共享;数据共享必然带来数据库的安全性问题;数据库系统中的数据共享不能是无条件的共享;安全性问题不是数据库系统所独有的,而是所有计算机系统都有这个问题.,9.1安全性概述,什么是数据库的安全性?保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一。,什么是计算机系统安全性?为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。,9.1安全性概述,计算机安全性问题分类技术安全:指计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护。管理安全:由于管理不善导致的计算机设备和数据介质的物理破坏、丢失等软硬件意外故障以及场地的意外事故等安全问题。政策法律类:政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令。,(一级一级层层设置),用户,DBMS,OS,DB,用户标识和鉴别,存取控制视图、审计,操作系统安全保护,密码保护,9.1安全性概述,计算机系统的安全模型,9.1.1用户标识与鉴别,系统提供的最外层的安全保护措施。具体方法:,系统提供一定的方式让用户标识自己的名字或身份;系统内部记录着所有合法用户的标识;每次用户要求进入系统时,由系统核对用户提供的身份标识;通过鉴定后才提供机器使用权;用户标识和鉴定可以重复多次。,9.1.1用户标识与鉴别,用户名/口令简单易行,容易被人窃取。每个用户预先约定好一个计算过程或者函数:系统提供一个随机数;用户根据自己预先约定的计算过程或者函数进行计算;系统根据用户计算结果是否正确鉴定用户身份。,常用方法:,9.1.2存取控制,存取控制机制组成定义存取权限:为用户定义适当的存取权限,并登记入数据字典(安全规则或授权规则)合法权限检查:查找数据字典,根据安全规则进行用户合法权限检查用户权限定义和合法权限检查机制一起组成DBMS的安全子系统。,9.1.2存取控制,存取控制方法自主存取控制(DAC:DiscretionaryAccessControl):,强制存取控制(MAC:MandatoryAccessControl):,同一用户对于不同的数据对象有不同的存取权限,不同的用户对同一对象也有不同的权限,用户还可将其拥有的存取权限转授给其他用户。,每一个数据对象被标以一定的密级,每一个用户也被授予某一个级别的许可证,对于任意一个对象,只有具有合法许可证的用户才可以存取。,9.1.3自主存取控制(DAC)方法,定义存取权限:授权:GRANT收回权限:REVORK,检查存取权限:对于获得上机权后又进一步发出存取数据库操作的用户:DBMS查找数据字典,根据其存取权限对操作的合法性进行检查;若用户的操作请求超出了定义的权限,系统将拒绝执行此操作。,9.1.4强制存取控制(MAC)方法,强制存取控制(MAC):指系统为保证更高程度的安全性,按照TDI/TCSEC标准中安全策略的要求,所采取的强制存取检查手段。MAC不是用户能直接感知或进行控制的。MAC适用于对数据有严格而固定密级分类的部门:军事部门政府部门,9.1.4强制存取控制(MAC)方法,主体是系统中的活动实体:DBMS所管理的实际用户代表用户的各进程客体是系统中的被动实体,是受主体操纵的:文件、基表、索引、视图,在MAC中,DBMS所管理的全部实体被分为主体和客体两大类:,9.1.4强制存取控制(MAC)方法,主体的敏感度标记称为许可证级别客体的敏感度标记称为密级MAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体。,敏感度标记(Label)对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记。分成若干级别:绝密、机密、可信、公开,9.1.4强制存取控制(MAC)方法,强制存取控制规则当某一用户(或某一主体)以标记label注册入系统时,系统要求他对任何客体的存取必须遵循下面两条规则:(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;(2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。,修正规则(某些系统规定)主体的许可证级别小于等于客体的密级,主体能写相应的客体。表示:用户可为写入的数据对象赋予高于自己的许可证级别的密级,但一旦数据被写入,该用户自己也不能再读该数据对象了。,共同点:禁止了拥有高许可证级别的主体更新低密级的数据对象,防止敏感数据的泄漏。,9.1.4强制存取控制(MAC)方法,强制存取控制的特点MAC是对数据本身进行密级标记;无论数据如何复制,标记与数据是一个不可分的整体;只有符合密级标记要求的用户才可以操纵数据;提供了更高级别的安全性。,MAC与DAC小结,DAC与MAC共同构成DBMS的安全机制原因:较高安全性级别提供的安全保护要包含较低级别的所有保护。先进行DAC检查,通过DAC检查的数据对象再由系统进行MAC检查,只有通过MAC检查的数据对象方可存取。,9.1.5视图机制,视图机制把要保密的数据对无权存取这些数据的用户隐藏起来。视图机制与授权机制配合使用:即首先用视图机制屏蔽掉一部分保密数据;在视图上再进一步定义存取权限。,9.1.5视图机制,例:在配电物资表stock中如果指定U1用户只能查看供电局1#仓库的物资时,可以先建立供电局1#仓库的配电物资视图,然后在该视图上进一步定义存取权限。,CREATEVIEWView_Stock1ASSELECT*FROMSTOCKWHEREwarehouse=供电局1#仓库;/*先建视图*/,GRANTSELECTONView_Stock1TOU1;,9.1.6审计,什么是审计?启用一个专用的审计日志(AuditLog),将用户对数据库的所有操作记录在上面;审计功能是一种监视措施,它跟踪记录有关数据的访问活动。DBA可以利用审计日志中的追踪信息,找出非法存取数据的人、时间和内容。,注:审计很费时间和空间,DBA可以根据应用对安全性的要求,灵活地打开或关闭审计功能。,9.1.7数据加密,数据加密防止数据库中数据在存储和传输中失密的有效手段。加密的基本思想根据一定的算法将原始数据(明文)变换为不可直接识别的格式(密文),使得不知道解密算法的人无法获知数据的内容。,加密方法替换方法:使用密钥将明文中的每一个字符转换为密文中的一个字符。置换方法:将明文的字符按不同的顺序重新排列。混合方法:美国1977年制定的官方加密标准:数据加密标准(DataEncryptionStandard,简称DES),9.2SQLServer的安全性,设置SQLServer2005登录的身份验证模式的方法:-安全性-右击“新建”-单击“登录”,如图:,9.2.1SQLServer2005的身份验证模式,1、Windows身份验证模式默认(安全)用户通过MicrosoftWindows用户帐户连接时,SQLServer使用Windows操作系统中的信息验证帐户名和密码。2、混合验证模式混合验证模式下,当客户端连接到服务器时,既可采取Windows身份验证,也可采取SQLServer身份验证。如果必须选择混合模式并要求使用SQLServer帐户登录,则必须为所有的SQLServer帐户设置强密码。,9.2.2SQLServer2005的安全机制,SQLServer的安全性主体主要有三个级别:1.服务器级别所含的安全对象主要有登录名、固定服务器角色等,其中登录名用于登录数据库服务器,而固定服务器角色用于给登录名赋予相应的服务器权限。2.数据库级别所含的安全对象主要有用户、角色、应用程序角色、证书、对称密钥、非对称密钥、程序集、全文目录、DDL事件、架构等。3.架构级别所含的安全对象主要有表、视图、函数、存储过程、类型、聚合函数等。系统默认架构为dbo。,一个数据库使用者,想要登录SQLServer服务器上的数据库,并对数据库中的表执行更新操作,则该使用者必须经过下图所示的安全验证:,9.3用户管理和角色管理,在SQLServer中,有登录用户和数据库用户两个概念。一个用户需要首先是一个数据库系统的登录用户,然后才可以访问某一个具体的数据库。,登录用户:由系统管理员管理;数据库用户:由数据库管理员管理。,1.登录用户的管理SQLServer有两个常用的默认登录名:sa:系统管理员,拥有操作SQLServer系统的所有权限,该登录名不能被删除。BUILTINAdministrator:SQLServer为每个Windows系统管理员提供的默认用户账户,在SQLServer中拥有系统和数据库的所有权限。,9.3.2用户管理,(1)创建新的SQLServer登录用户CREATELOGINlogin_nameWITHPASSWORD=password,DEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language|FROMWINDOWSWITHDEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language,9.3.2用户管理,创建Windows验证模式登录名使用FROM子句,WINDOWS关键字指定将登录名映射到Windows登录名。例:假设本地计算机名为student_1,S1是一个已经创建的Windows用户,创建Windows验证模式下的登录名S1,默认数据库是master:CREATELOGINstudent_1S1FROMWINDOWSWITHDEFAULT_DATABASE=master,9.3.2用户管理,创建SQLServer验证模式登录名例:创建SQLServer登录名S2,密码为123456,默认数据库是sample:CREATELOGINs2WITHpassword=123456,DEFAULT_DATABASE=sample,9.3.2用户管理,(2)删除登录名语法格式如下:DROPLOGINlogin_name例:删除Windows登录名S1:DROPLOGINstudent_1S1删除SQLServer登录名S2:DROPLOGINS2,9.3.2用户管理,2.数据库用户的管理,(1)创建数据库用户CREATEUSERuser_nameFOR|FROMLOGINlogin_name|WITHOUTLOGINWITHDEFAULT_SCHEMA=schema_name,9.3.2用户管理,例:使用SQLServer登录名s2(假设已经创建)在Sample数据库中创建数据库用户u1,默认架构为dbo:USEsampleGOCREATEUSERu1FROMLOGINs2WITHDEFAULT_SCHEMA=dbo,9.3.2用户管理,9.3.2用户管理,(2)删除数据库用户格式如下:DROPUSERuser_name例:删除sample数据库的用户u1:USEsampleGODROPUSERu1,1.定义角色其格式是:CREATEROLErole_nameAUTHORIZATIONowner_name例:在sample数据库中创建角色student_role,所有者为dbo:USEsampleGOCREATEROLEstudent_roleAUTHORIZATIONdbo,9.3.3角色管理,数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。则可用一组具有相同权限的用户创建一个角色,以便简化授权的过程。,2.为用户指定角色可以将数据库用户指定为数据库角色的成员:SP_ADDROLEMEMBERrole_name,user_account例:使用Windows验证模式的登录名students1创建sample数据库的用户students1,并将该用户添加到角色student_role中:USEsampleGOCREATEUSERstudents1FROMLOGINstudents1SP_ADDROLEMEMBERstudent_role,students1,9.3.3角色管理,3.取消用户的角色如果某个用户不再担当某个角色,可以取消用户的角色,或者说从角色中删除用户。SP_DROPROLEMEMBERrole_name,user_name例:取消用户s1的student_role角色:SP_DROPROLEMEMBERstudent_role,students1,9.3.3角色管理,4.删除角色如果当前数据库中的某个角色不再需要,则可以删除该角色。DROPROLErole_name例:DROPROLEstudent_role,注:不能删除带有成员的角色;也不能删除固定角色及public角色。,9.3.4SQLServer的固定角色,1.固定服务器角色,可以把登录名添加到固定服务器角色中,使得登录名作为固定服务器角色的成员继承固定服务器角色的权限。语法如下:SP_ADDSRVROLEMEMBERlogin,role例:将登录JOHN指定为SYSADMIN固定服务器角色的成员,则以JOHN登录名登录系统的用户将自动拥有系统管理员权限:SP_ADDSRVROLEMEMBERJOHN,SYSADMIN将固定服务器角色的某个成员删除。语法如下:SP_DROPSRVROLEMEMBERlogin,role例:从sysadmin固定服务器角色中删除登录JOHN。SP_DROPSRVROLEMEMBERJOHN,SYSADMIN,9.3.4SQLServer的固定角色,2.固定数据库角色,3.PUBLIC角色SQLServer有一个特殊的角色即PUBLIC角色。PUBLIC角色有两大特点:初始状态时没有权限;所有的数据库用户都是它的成员。,9.3.4SQLServer的固定角色,注:当为public角色授权时,实际上是为所有的数据库用户授权。,9.4权限管理,常用数据库对象的权限:,9.4.1授予权限,1.授予语句权限语句授权的命令格式是:GRANTALL|statement,.nTOaccount,.n例:系统管理员给用户Mary和John授予多个语句权限:GRANTCREATEDATABASE,CREATETABLETOMary,John,2.授予对象权限处理数据或执行存储过程中需要相应对象的操作或执行权限,这些权限可以划分为:SELECT、INSERT、UPDATE和DELETE语句权限,可以应用到整个表或视图;SELECT和UPDATE语句权限,可以有选择性地应用到表或视图中的某些列上;INSERT和DELETE语句权限,会影响整行,因此只可以应用到表或视图中,而不能应用到单个列上。EXECUTE语句权限,执行存储过程和函数的权限。,9.4.1授予权限,数据库对象授权的命令格式如下:GRANTALLPRIVILEGES|permission,.n(column,.n)ONtable|view|ONtable|view(column,.n)|ONstored_procedure|extended_procedure|ONuser_defined_functionTOsecurity_account,.nWITHGRANTOPTIONASgroup|role,9.4.1授予权限,例:在电力工程抢修数据库中:(1)将out_stock表的SELECT权限授予public角色。GRANTSELECTONout_stockTOpublic(2)将out_stock表的INSERT,UPDATE,DELETE权限授予用户Mary、John。GRANTINSERT,UPDATE,DELETEONout_stockTOMary,John(3)将对表out_stock的get_date列的修改权限授予用户Tom。GRANTUPDATE(get_date)ONout_stockToTom,9.4.1授予权限,9.4.1授予权限,例:把对表stock的insert权限授予用户U1,并允许将此权限授予其他用户。,GrantinsertOnstockToU1Withgrantoption;,U1可将此权限授予U2:GrantinsertOnstockToU2Withgrantoption;,U2可将此权限授予U3:GrantinsertOnstockToU3;,-U1-U2-U3,例:用户Jean拥有表Plan_Data。Jean将表Plan_Data的SELECT权限授予Accounting角色(指定WITHGRANTOPTION子句)。用户Jill是Accounting的成员,他要将表Plan_Data上的SELECT权限授予用户Jack,Jack不是Accounting的成员。因为对表Plan_Data用GRANT语句授予其他用户SELECT权限的权限是授予Accounting角色而不是显式地授予Jill,不能因为已授予Accounting角色中成员该权限,而使Jill能够授予表的权限。Jill必须用AS子句来获得Accounting角色的授予权限。/*UserJean*/GRANTSELECTONPlan_DataTOAccountingWITHGRANTOPTION/*UserJill*/GRANTSELECTONPlan_DataTOJackASAccounting,9.4.2收回权限,收回语句权限的一般格式为:REVOKEALL|statement,.nFROMaccount,.n收回对象权限的命令格式是:REVOKEGRANTOPTIONFORALLPRIVILEGES|permission,.n(column,.n)ONtable|view|ONtable|view(column,.n)|ONstored_procedure|extended_procedure|ONuser_defined_functionTO|FROMaccount,.nCASCADEASgroup|role,9.4.2收回权限,例:把用户U1对表stock的insert权限收回。,RevokeinsertOnstockFromU1;,权限的级联回收:系统将自动收回直接或间接从U1处获得的对Stock表的INSERT权限:-U1-U2-U3,注:若U2和U3从其他用户处获得对Stock表的insert权限,则不会回收。,例:废除已授予用户Joe的CREATETABLE权限:REVOKECREATETABLEFROMJoe例:废除授予多个用户的多个语句权限:REVOKECREATETABLE,CREATEDEFAULTFROMMary,John例:用户Mary是Budget角色的成员,已给该角色授予了对Budget_Data表的SELECT权限。已对Mary使用DENY语句以防止Mary通过授予Budget角色的权限访问Budget_Data表。删除对Mary拒绝的权限,并通过适用于Budget角色的SELECT权限,允许Mary对该表使用SELECT语句。REVOKESELECTONBudget_DataTOMary,9.4.2收回权限,9.4.3禁止权限,禁止语句权限的命令格式如下:DENYALL|statement,.nTOaccount,.n禁止对象权限的命令格式如下:DENYALLPRIVILEGES|permission,.n(column,.n)ONtable|view|ONtable|view(column,.n)|ONs
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 应急安全培训题库大全课件
- 2025广东机电职业技术学院第二批招聘工作人员11人笔试备考试题含答案详解
- 新生儿感染性疾病的病原学分类与传播途径
- 土地抵押合同(标准版)
- 中介和买家合同(标准版)
- 2025年环保设备制造业竞争激烈产品创新趋势分析报告
- 2025年工业互联网平台增强现实交互技术在虚拟现实工厂中的应用报告
- 2025年母婴用品跨境电商行业发展趋势与市场机会研究报告
- 中考英语一轮复习完形填空汇编知识点-+典型题及解析
- 山东省德州市2024-2025学年高三下学期三模化学试题(含答案)
- 农业农村部在京事业单位招聘考试真题2024
- 东营市专业技术人员继续教育公共服务平台-题库(答案)
- 2024八年级道德与法治上册知识点
- 航模课件教学课件
- 看守所巡控岗位课件
- 2025秋冀人版(2024)科学二年级上册教学计划、教学设计(附目录)
- 第十四章 全等三角形 单元测试(含部分解析) 2025-2026学年人教版八年级数学上册
- 2025年中式烹调师(技师)考试题库及答案
- (高清版)DBJ∕T 13-91-2025 《福建省房屋市政工程安全风险分级管控与隐患排查治理标准》
- 2025年消防员招录面试题库及答案
- 小儿疱疹性咽峡炎护理查房
评论
0/150
提交评论