三大数据库安全性控制方法比较分析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

三大数据库安全性控制方法比较分析武汉大学国际软件学院,湖北省武汉市430079摘要:近几年来,数据库的应用已越来越广泛,但同时也带来了数据的安全隐患。本文选取市场占有最大的三种数据库,从维护数据库系统安全的角度,讨论ORCAL、DB2、SQLSERVER数据库访问控制,并提出三种数据库应用时的安全措施,从而有效的增强数据库的安全性。关键字:ORACLE,DB2,SQL,数据库,安全性1引言数据库的一大特点是数据可以共享,但数据共享必然带来数据库的安全性问题,因此数据库系统中的数据共享不能是无条件的共享。数据库中数据的共享是在DBMS统一的严格的控制之下的共享,即只允许有合法使用权限的用户访问允许他存取的数据数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一2用户标识与鉴别用户标识与鉴别是系统提供的最外层安全保护措施。系统提供一定的方式让用户标识自己的名字或身份;系统内部记录着所有合法用户的标识;每次用户要求进入系统时,由系统核对用户提供的身份标识;通过鉴定后才提供机器使用权。几乎所有数据库产品基本都涉及这个流程,只是各个侧重点和安全性要求不同。2.1ORACLE的用户标识和鉴定在ORACLE中,最外层的安全性措施是让用户标识自己的名字,然后由系统进行核实。ORACLE允许用户标识重复三次,如果三次仍未通过,系统自动退出。通过验证目的和用户的同,Oracle验证分为SYS用户验证和普通用户验证。SYS用户验证:SYS用户拥有数据库的完全控制权,对其验证时,数据库往往还未启动,ORACLE采用两种方式来验证SYSDBA用户:操作系统验证和口令文件验证。操作系统验证(外部身份认证)操作系统认证:即oracle认为操作系统用户是可靠的,即既然能登陆到操作系统那么oracle数据库你也能登陆(即为操作系统用户提供的一种登陆方式)。操作系统验证具有最高优先级,当设置为他时,口令文件验证不起作用。口令文件验证要使用口令文件验证,首先禁用操作系统验证,其次是设置口令验证配置参数。Oracle认证认为操作系统用户是不可信任的,如果要访问数据库,必须进行再次认证。普通ORACLE用户验证:SYS用户是在数据库还没启动时登录数据库进行启动操作,而普通用户是在数据库启动后操作不同方案下的对象。普通用户采用的是数据字典的验证方式。2.2IBMDB2的用户标识和鉴定在IBMDB2用户验证由DB2之外的安全性工具完成,这个工具通常是操作系统的一部分或独立产品。安装DB2数据库系统时就包括了依赖于基于操作系统的认证的缺省认证安全插件模块。DB2数据库管理器还提供了用于Kerberos和轻量级目录访问协议(LDAP)的认证插件模块。可以构建自己的认证安全插件模块。具体由配置参数来确定如何检验认证信息和标识,从而确定是否权访问实例和数据库。2.3SQLServer的用户标识和鉴定在SQLServer中对应的是WindowsNT/2000登录账号和口令以及SQLServer用户登录账号和口令。SQLServer支持Windows身份验证模式和混合模式两种身份验证模式。这两种身份验证模式的区别有:(1)Windows身份验证模式只进行Windows身份验证。用户不能指定SQLServer2000登录ID。这是SQLServer2000的默认身份验证模式。不能为在Windows98上运行的SQLServer实例指定Windows身份验证模式,因为此操作系统不支持Windows身份验证。(2)混合模式如果用户在登录时提供了SQLServer2000登录ID,则系统将使用SQLServer身份验证对其进行验证。如果没有提供SQLServer2000登录ID或请求Windows身份验证,则使用Windows身份验证对其进行身份验证。3GRANT、REVOKE语句及视图关系3.1授权语句GRANTGRANT语句一般格式:GRANT(priv-typepriv)[,…]ON{table|view|storageprocess|sqlsequence|all-except(sqlsequence)}ASnameTO{PUBLIC|groupnumber|username}[WITHgrant-opt][ATcondition]GRANT语句一次将一个客体的一组固定类型的授权授予一个主体。可执行GRANT操作的用户包括客体的所有者和组管理员。3.2取消授权语句REVOKEREVOKE{(priv-typepriv),[,…]|all}ON{table|view|storageprocess|sqlsequence|all-except(sqlsequence)|name}FROM{PUBLIC|groupnumber|username}REVOKE语句可将授予一个或者多个主体的授权取消。FROM后使用PUBLIC关键字的话则取消所有被当前授权支持的授权。可执行REVOKE操作的用户为客体的拥有者和组管理员。3.3GRANT、REVOKE与视图的关系分析Grant和revoke主要是给表、视图、列上分配或失去权限的。视图使得数据库结构得到逻辑上的扩充,数据库设计者可以在不改变视图列(用户使用)的情况下,基于业务修改数据库。简化数据库结构和关系图,将复杂查询转化为视图,方便检索。安全性提高。可以对视图进行加密处理。通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全性。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其他数据则既看不见也取不到。数据库GRANT、REVOKE授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上。同时,视图机制的安全保护功能太不精细,往往不能达到应用系统的要求,其主要功能在于提供了数据库的逻辑独立性。在实际应用中,通常将视图机制与授权机制结合起来使用,首先用视图机制屏蔽一部分保密数据,然后在视图上再进一步定义存取权限。4角色、权限和特权4.1ORACLE访问控制方法ORACLE的权限包括系统权限和数据库对象的权限,采用非集中式的授权机制,即DBA负责授予与回收系统权限,每个用户授予与回收自己创建的数据库对象的权限。ORACLE允许重复授权和无效回收,即可将某一权限多次授予同一用户,或者回收用户不具有的某权限,系统不会出错。ORACLE提供了80多种系统权限,如创建会话、创建表、创建视图、创建用户等。DBA在创建一个用户时需要将其中的一些权限授予该用户。ORACLE支持角色的概念。所谓角色就是一组系统权限的集合,目的在于简化权限管理。ORACLE除允许DBA定义角色外,还提供了一些预定义的角色,如CONNECT,RESOURCE和DBA。4.2DB2访问控制方法访问控制方法用于创建信息内容的子集,从而用户可以只查看或存取与其需要相关的数据。您可以在DB2中使用许多不同的访问控制方法。访问控制是为您在数据库中所进行的一切操作而存在的。使用数据包的访问控制。数据包是与一条或多条SQL语句有关的信息集合,这是DB2内SQL的基本访问控制点。数据包中包括诸如优化器生成的访问计划和授权模型等信息。向数据库引擎发出的任何语句都会和特定数据包有关。4.3SQLServer访问控制策略MicrosoftSQLServer对用户的访问控制分为以下两个阶段:登录帐户认证;访问许可确认。在登录帐户认证阶段,WindowsNT操作系统或SQLServer对用户登录进行认证,如果认证成功,用户则可连接到SQLServer,否则服务器将拒绝用户的连接请求。用户成功连接到SQLServer后,系统根据数据库中保存的与服务器登录标识相对应的用户帐户判断他们是否具有对数据库的访问许可。用户对数据库的访问许可被确认后才可访问指定的数据库对象,否则,SQLServer将拒绝用户对数据库的操作。在SQLServer中,服务器登录标识由系统管理员创建,而对数据库对象的访问许可则由数据库对象所有者授权。使用视图的访问控制。视图是另一种主要限制对数据的低级(也称为“行级”)存取的访问控制方法。通过使用视图,您就可以对SQL语句隐藏驻留在原始表中的敏感信息的行和列。您可以通过根据视图授予特权使用户可以存取信息。因为这些特权只适用于视图,不会影响基本表,所以用户的存取范围仅限于视图,而该视图是通过创建所需表中数据的子集生成的。WITHCHECK选项甚至提供更多的安全性,因为它不会让特定的SQL语句改变用户在视图中没有特权读取的那些行。5审计当数据非常敏感时,采用审计的方法,跟踪记录有关这些数据的访问活动。审计中用一个特殊的文件来自动记录用户对数据库的操作。分析审查这些审计记录,可以找出导致数据库出现安全问题的一系列事件,从而找到非法存取数据库的人。审计能够对非法窃取数据的人起到警示作用,使其不敢轻举妄动。审计是需要在时间和空间上付出代价的,所以DBMS经常将其作为可选的设置,由DBA根据应用对安全的要求,灵活地打开或关闭审计功能,以达到安全和效率的折衷。5.1ORACLE的审计技术在ORACLE中,审计分为用户级审计和系统级审计。用户级审计是任何ORACLE用户可设置的审计,主要是用户针对自己创建的数据库表或视图进行审计,记录所有用户对这些表或视图的一切成功和/或不成功的访问要求以及各种类型的SQL操作。系统级审计只能由DBA进行,可以监测成功或失败的登录要求,监测GRANT和REVOKE操作以及其他数据库级权限下的操作。ORACLE的审计功能很灵活,是否使用审计,对哪些表进行审计,对哪些操作进行审计等,都可以由用户自由选择。为此,ORACLE提供了AUDIT语句设置审计功能,NOAUDIT语句取消审计功能。设置审计时,可以详细指定对SQL操作进行审计。例如,如果想对修改SC表结构或数据的操作进行审计,可使用如下语句:AUDITALTER,UPDATEONSC取消对SC表的一切审计可使用如下语句:NOAUDITALLONSC在ORACLE中,审计设置以及审计内容均存放在数据字典中。5.2DB2的审计技术DB2UDB审计功能是DBA工具箱中一件重要的安全性工具。它可以生成对一系列预定义的数据库事件的审计跟踪,并允许DBA维护审计跟踪。它可以对一些数据库事件,例如授权检查、数据库对象维护、安全性维护、系统管理和用户验证等做日志记录。本文向您展示如何有效地使用该功能对可疑的系统活动进行跟踪和调查。审计发生在实例级,这意味着一旦启动审计功能,它就会审计那个实例中所有数据库的活动。审计功能必须单独启动和停止。例如,如果使用db2stop命令停止一个实例,那么审计功能不会自动停止;它必须单独使用db2auditstop命令来停止。只有具有SYSADM权限的用户才能配置和使用审计功能。审计记录通常首先被写入到一个内存缓冲区,然后才刷新到磁盘。缓冲区的大小是由AUDIT_BUF_SZ这个数据库管理器配置参数决定的。该参数指定为审计缓冲分配的4K大小的页面的数量。缓冲区大小的选择将在很大程度上影响审计的性能,因为可能要将很多记录写到审计日志中。对DB2进行安全审计虽然可以在很大程度上保证数据库信息的安全性,但是也会增加系统的各类开销,例如启动DB2AUDITTRACE的时候,每个TASK将增加5%的CPU消耗,同时也会增加系统存储等资源的消耗,在一定程度上影响系统性能。因此数据库管理员应该根据应用对安全性的要求,灵活地打开或关闭审计功能。6.总结本文旨在探讨三大主流数据库安全性能,首先,分析了用户标识与鉴别;接下来再具体介绍了授权、取消语句及方法;以及审计方面的问题等。透过上述分析比较,三大主流数据库各有优缺点,而且都在不断改进创新,完善其安全性。参考文献[1]王静文.关系数据库管理系统SQLServer和ORACLE比较[J].科技咨询导报,spain,2007,18(9)[2]辛春红.有关SQLServer数据库安全问题研究[J].信息技术,2009(5).[3

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功