数据库的安全性_第1页
数据库的安全性_第2页
数据库的安全性_第3页
数据库的安全性_第4页
数据库的安全性_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章数据库的安全性P130

数据库的特点之一是DBMS提供统一的数据保护功能,以保证数据的安全可靠和正确有效。数据库的数据保护主要包括:数据的安全性和数据的完整性。本章讨论数据的安全性第一页,共六十页。6.1计算机安全性概论

数据库的安全性:指保护数据库以防止不合法的使用造成数据泄露、更改或破坏。数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。第二页,共六十页。1.计算机系统的安全性

指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。第三页,共六十页。计算机系统的安全性分为:(1)技术安全类(2)管理安全类(3)政策法律类第四页,共六十页。2.安全标准简介P131

TCSEC 、ITSEC和CC制定标准的目的:

(1)提供一种标准,使用户可以对其计算机系统内敏感信息安全操作的可信程度进行评估。

(2)给计算机行业的制造商提供一种可循的指导规则,使其产品能够更好地满足敏感应用的安全需求。第五页,共六十页。信息安全发展的历史:P132 图4.1第六页,共六十页。1991年4月美国国家计算机安全中心发布了《可信计算机系统评估标准关于可信数据库系统的解释简称TDI,将TCSEC(美国国防部TrustedComputerSystemsEvaluationCriteria)扩展到数据库管理系统。

TDI中定义了数据库管理系统的设计与实现中需满足和用以进行安全级别评估的标准。第七页,共六十页。TDI/TCSEC标准的基本内容TDI从四个方面描述安全性级别划分的指标:(1)安全策略(2)责任(3)保证(4)文档每个方面又细分为若干项。第八页,共六十页。安全等级的划分根据计算机系统对上述各项指标的支持情况,TDl将系统划分为四组七个等级:

DC(Cl,C2)B(B1,B2,B3)A(A1),按系统可靠或可信程度逐渐增高,

P132第九页,共六十页。10ITSEC-欧洲标准ITSECInformationTechnologySecurityEvaluationCriteria英法德荷四国制定是欧洲多国安全评价方法的综合产物,应用领域为军队、政府和商业。该标准将安全概念分为功能与评估两部分。功能准则从F1~F10共分10级。1~5级对应于TCSEC的D到A。F6至F10级分别对应数据和程序的完整性、系统的可用性、数据通信的完整性、数据通信的保密性以及机密性和完整性。与TCSEC不同,它并不把保密措施直接与计算机功能相联系,而是只叙述技术安全的要求,把保密作为安全增强功能。另外,TCSEC把保密作为安全的重点,而ITSEC则把完整性、可用性与保密性作为同等重要的因素。ITSEC定义了从E0级(不满足品质)到E6级(形式化验证)的7个安全等级,对于每个系统,安全功能可分别定义。第十页,共六十页。11CC(CommonCriteria)美英法德荷加六国制定的共同标准包含的类FAU 安全审计FCO 通信FCS 密码支持FDP 用户数据保护FIA 标识与鉴别FMT 安全管理FPR 隐私FPT TSF保护(固件保护,TOESecurityFunctions,TOESecurityPolicy,(TargetOfEvaluation))FRU 资源利用FTA TOE访问FTP 可信信道/路径第十一页,共六十页。12CC分为三个部分:第1部分"简介和一般模型",正文介绍了CC中的有关术语、基本概念和一般模型以及与评估有关的一些框架,附录部分主要介绍保护轮廓(PP)和安全目标(ST)的基本内容。第2部分"安全功能要求",按"类--子类--组件"的方式提出安全功能要求,每一个类除正文以外,还有对应的提示性附录作进一步解释。第3部分“安全保证要求”,定义了评估保证级别,介绍了PP和ST的评估,并按“类--子类--组件”的方式提出安全保证要求第十二页,共六十页。13CC的三个部分相互依存,缺一不可。第1部分是介绍CC的基本概念和基本原理第2部分提出了技术要求第3部分提出了非技术要求和对开发过程、工程过程的要求。这三部分的有机结合具体体现在PP和ST中,PP和ST的概念和原理由第1部分介绍,PP和ST中的安全功能要求和安全保证要求在第2、3部分选取,这些安全要求的完备性和一致性,由第2、3两部分来保证。CC作为评估信息技术产品和系统安全性的世界性通用准则,是信息技术安全性评估结果国际互认的基础。第十三页,共六十页。14CC、TCSEC、ITSEC对应关系CC TCSEC ITSEC- D E0EAL1 - -EAL2 C1 E1EAL3 C2 E2EAL4 B1 E3EAL5 B2 E4EAL6 B3 E5EAL7 A1 E6第十四页,共六十页。6.2数据库安全性控制在一般计算机系统中,安全措施是一级一级层层设置的。

P1356.2.1用户标识与鉴别用户标识和鉴别是系统提供的最外层安全保护措施。其方法是由系统提供一定的方式让用户标识自己的名字或身份,每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供机器使用权。第十五页,共六十页。常用的方法(1)用户名+口令(2)更复杂的方法例:每个用户都预先约定好一个函数,鉴别用户身份时,系统提供一个随机数,用户根据自己预先约定的函数进行计算,系统根据计算结果是否正确进一步鉴定用户身份。第十六页,共六十页。6.2.2存取控制P136

数据库安全最重要的一点:确保只授权给有资格的用户访问数据库,主要通过数据库系统的存取控制机制实现。存取控制机制主要包括两部分:

1.定义用户权限,系统必须提供适当的语言定义用户权限,这些定义经过编译后存放在数据字典中,被称为安全规则或授权规则。

用户权限:指不同的用户对于不同的数据对象允许执行的操作权限。

2.合法权限检查,用户发出存取数据库的操作请求后,DBMS查找数据字典,根据安全规则进行合法权限检查,若用户的操作请求超出了定义的权限,系统拒绝执行此操作。

用户权限定义和合法权检查机制一起组成了DBMS的安全子系统。

第十七页,共六十页。

自主存取控制(DAC)方法

自主存取控制方法:(DiscretionaryAccessControl)(1)用户对于不同的数据对象有不同的存取权限;(2)不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户。大型数据库管理系统几乎都支持自主存取控制,目前的SQL标准也对自主存取控制提供支持。通过SQL的GRANT语句和REVOKE语句实现。

P137表4.3RDB中的存取权限第十八页,共六十页。1.数据库用户的操作权限在SQLServer中,可授予数据库用户的权限分为三个层次:(1)在当前数据库中创建数据库对象及进行数据库备份的权限主要有:创建表、视图、存储过程、规则、缺省值对象、函数的权限及备份数据库、日志文件的权限。第十九页,共六十页。(2)用户对数据库表的操作权限及执行存储过程的权限主要有:SELECT:对表或视图执行SELECT语句的权限;INSERT:对表或视图执行INSERT语句的权限;UPDATE:对表或视图执行UPDATE语句的权限;DELETE:对表或视图只DELETE语句的权限;REFERENCES:用户对表的主键和唯一索引字段生成外码引用的权限;EXECUTE:执行存储过程的权限。第二十页,共六十页。(3)用户对数据库中指定表字段的操作权限主要有:

SELECT:对表字段进行查询操作的权限;

UPDATE、DELETE、INSERT:对表字段进行更新操作的权限第二十一页,共六十页。2.书上的语法形式及例子:P137GRANT权限,…[ON<对象类型><对象名>]TO用户或数据库角色,…[WITHGRANTOPTION]注意:必须以合适的身份登录,才能执行以上语句。第二十二页,共六十页。收回权限P139书上的语句形式:

REVOKE权限,…[ON<对象类型><对象名>]FROM用户[角色]1,…,用户[角色]n第二十三页,共六十页。1.SQLServer的身份认证模式身份认证模式指系统确认用户的方式。

有两种方式:(1)WindowsNT认证模式必须将NT网络帐号加入SQLServer中,才能采用此方式。(2)SQLServer认证模式在SQLServer认证模式下,SQLServer服务器要对登录的用户进行身份认证。第二十四页,共六十页。2.SQLServer的安全管理用户如何才能使用数据库?

SQLServer系统登录帐号→某个数据库用户或用户组(数据库角色)中的成员→具有对数据库中数据进行操作的权限。第二十五页,共六十页。例:(1)创建登录帐号//利用系统存储过程sp_addlogin创建登录帐号,ID:wang,密码:‘dongdong‘,缺省数据库student。execsp_addlogin'wang','dongdong','student'Go界面方式创建登录?第二十六页,共六十页。第二十七页,共六十页。注意sp_addlogin与sp_grantlogin的区别。sp_grantlogin用于建立SQLServer与windows帐号的信任关系。exp:Execsp_grantlogin‘Nanjing\chengfang’建立与windows帐号的信任关系。windows帐号格式:“域\用户名”第二十八页,共六十页。(2)创建数据库用户//为登录帐号‘wang’创建数据库用户,其名为‘wan’。usestudentexecsp_grantdbaccess'wang','wan'(3)给数据库用户赋予操作权限//给wan用户授予对表student的select权限。

usestudentgrantselectonstudenttowan第二十九页,共六十页。第三十页,共六十页。第三十一页,共六十页。问题:

如果要创建数据库用户,并对该用户赋予权限,必须以何种身份登录?第三十二页,共六十页。3.服务器角色与数据库角色角色是被赋予一定权限的组。一个用户如果为某角色的成员,则该用户具有该角色的所有权限。

SQLServer给用户提供两类预定义的角色:(1)服务器角色----固定服务器角色)

(2)数据库角色-----固定数据库角色)一个角色可有一个或若干个成员,同一角色的成员有相同的权限。第三十三页,共六十页。固定服务器角色和固定数据库角色都是SQLServer内置的,不能进行添加、修改和删除。用户也可根据需要,创建自己的数据库角色,以便对具有同样操作权限的用户进行统一管理。第三十四页,共六十页。4.固定服务器角色:sysadmin:系统管理员,可对SQLServer服务器进行所有的管理工作,为最高管理角色。securityadmin:安全管理员,可以管理登录和CREATEDATABASE权限,还可以读取错误日志和更改密码。serveradmin:服务器管理员,具有对服务器进行设置及关闭服务器的权限。setupadmin:设置管理员,添加和删除链接服务器,并执行某些系统存储过程(如sp_serveroption)。processadmin:进程管理员,可以管理磁盘文件。第三十五页,共六十页。dbcreator:数据库创建者,可以创建、更改和删除数据库。bulkadmin:可执行BULKINSERT语句,但是这些成员对要插入数据的表必须有INSERT权限。BULKINSERT语句的功能是以用户指定的格式复制一个数据文件至数据库表或视图。第三十六页,共六十页。第三十七页,共六十页。给服务器角色添加成员

usestexecsp_addsrvrolemember'wang','sysadmin'//wang为登录帐号第三十八页,共六十页。5.固定数据库角色

db_owner:数据库所有者,可执行数据库的所有管理操作。SQLServer数据库中的每个对象都有所有者,通常创建该对象的用户即为其所有者。其他用户只有在相应所有者对其授权后,方可访问该对象。用户发出的所有SQL语句均受限于该用户具有的权限。例如,CREATEDATABASE仅限于sysadmin和dbcreator固定服务器角色的成员使用。第三十九页,共六十页。sysadmin固定服务器角色的成员、固定数据库角色的成员以及数据库对象的所有者db_owner都可授予、或收回某个用户或某个角色的权限。db_accessadmin:数据库访问权限管理者,具有添加、删除数据库使用者、数据库角色和组的权限。db_securityadmin:数据库安全管理员,可管理数据库中的权限,如设置数据库表的增、删、改和查询等存取权限。第四十页,共六十页。db_ddladmin:数据库DDL管理员,可增加、修改或删除数据库中的对象。db_backupoperator:数据库备份操作员,具有执行数据库备份的权限。db_datareader:数据库数据读取者。db_datawriter:数据库数据写入者,具有对表进行增、删、改的权限。第四十一页,共六十页。db_denydatareader:数据库拒绝数据读取者,不能读取数据库中任何表的内容db_denydatawriter:数据库拒绝数据写入者,不能对任何表进行增、删、改操作。

public:是一个特殊的数据库角色,每个数据库用户都是public角色的成员。不能将用户、组或角色指派为public角色的成员,也不能删除public角色的成员。

通常将一些公共的权限赋给public角色。第四十二页,共六十页。第四十三页,共六十页。6.用户自定义数据库角色P142

/*创建数据库角色ROLE1*/USEstEXECsp_addrole'ROLE1'

使一数据库用户成为某个数据库角色的成员

USEstEXECsp_addrolemember'ROLE1','wan1'第四十四页,共六十页。SQLServer:

给数据库用户或数据库角色赋予执行DDL语句的权限。

语法格式:GRANT{ALL|statement[,...n]}TOsecurity_account[,...n]//security_account为角色名或用户名。第四十五页,共六十页。statement可为:CREATEDATABASE、CREATETABLE、CREATEVIEW、CREATEFUNCTION、CREATEPROCEDURE、CREATERULE、CREATEDEFAULT、BACKUPDATABASE、BACKUPLOG第四十六页,共六十页。例:

usestgrantcreatetabletowan1第四十七页,共六十页。SQLServer授予对数据库对象操作的权限:P137GRANT

{ALL[PRIVILEGES]|

permission[,...n]}{

[(column[,...n])]ON{table|view}

|ON{table|view}[(column[,...n])]

}TOsecurity_account[,...n][WITHGRANTOPTION]

permission:select,insert,update,delete第四十八页,共六十页。usestudentgrantselect(sno,sname)onstudenttowangrantcreatetabletowanWITHGRANTOPTION:指获得某一权限的用户可将此权限转授给其它的用户,否则不能传播。问题:对数据库student的用户wan赋予对student表的插入、删除、更新权限,并允许wan将该权限转授给其他用户。第四十九页,共六十页。例:usestudentgrantselect,insert,update,deleteonstudenttowan1withgrantoption例:USEstudentGOGRANTSELECTONstudent(sno,sname)TOpublic第五十页,共六十页。利用REVOKE命令可取消以前给用户授予的执行DDL语句的权限。语法格式:REVOKE{ALL|statement[,...n]}FROMsecurity_account[,...n]功能:取消以前授予的执行语句权限。security_account为用户名或角色名。第五十一页,共六十页。REVOKE

{ALL[PRIVILEGES]|permission[,...n]}

{

[(column[,...n])]ON{table|view}

|ON{table|view}[(column[,...n])]

}{TO|FROM}

security_account[,...n][CASCADE]第五十二页,共六十页。例:

usestudentrevokeselectonstudentfromwan1

usestudentrevokeallonstudentfromwan1cascadeP140第五十三页,共六十页。自主存取控制存在的问题

由于用户对数据的存取权限是“自主”的,用户可以自由地决定将数据的存取权限授予何人,而系统对此无法控制,在这种授权机制下,可能存在数据的“无意泄露”。造成这一问题的根本原因:这种授权机制仅仅对数据的存取权限进行安全控制,而数据本身并无安全性标记。要解决这一问题,就需要对系统控制下的所有主客体实施强制存取控制策略。第五十四页,共六十页。

强制存取控制(MAC)方法

(MandatoryAccessControl)

P143

在强制存取控制方法中,每一个数据对象被标以一定的密级,每一个用户也被授予某一个级别的许可证,对于任一对象,只有具有合法许可证的用户才可存取。

M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论