【IT168 方案】保险行业一般是面向社会公众的,因此数据库对于保险行业来说处于一个相对比较重要的地位。正是由于DB2数据库系统具有很多的优点,所以部分保险公司就选用了DB2数据库系统。选用Unix操作系统+DB2数据库作为后台,前台采用C/S或B/S模式进行运作。另外通过DB2 Information Integrator对存储在 DB2、SQL server、Oracle等异构数据库中的数据整合,使所有数据好像集成在一个数据库中,极大地方便了用户对各类数据的访问。本文主要介绍了当今主流数据库之一——DB2数据库的主要特点和其在安全性方面的控制方法。在现阶段,相对比较好的几种大型数据库有以下几种:
1.Oracle公司的Oracle数据库;
2.IBM公司的DB2数据库;
3.Sybase公司的Sybase数据库;
4.Informix公司的Informix数据库(已被IBM收购);
5.Microsoft公司的SQL Server数据库。
其中DB2数据库是IBM公司的产品,它的原型是IBM在IBM360计算机上研制成功的IMS V1,是第一个也是最著名的和最为典型的层次型数据库管理系统。我们主要讨论一下IBM的DB2数据库系统。
数据库的安全性
验证
数据库安全性中最基本的概念之一就是验证,这是一个相当简单的过程,系统通过这个过程来证实用户身份。用户可以通过提供身份证明或验证令牌来响应验证请求。
如果用户身份验证成功,DB2会记下用户的身份标识和其他相关的安全信息,如用户组列表。用户必须使用已经被DB2授权的授权名(authorization name)或授权标识(authid)来被DB2识别,授权名或授权标识可以与用户标识或映射值相同。这一连接信息将在用户连接期间保留。
授权
通过验证的用户将参加DB2安全性的第二层——授权。授权是DB2借以获得有关通过验证的DB2用户的信息(包括用户可以执行的数据库操作和用户可以访问的数据对象)之过程。
授权可以被分为两个不同类别:权限和特权。
权限。权限提供一种把特权分组的方法,并对数据库管理器和实用程序进行更高级的维护和操作加以控制。数据库相关权限存储在数据库目录中;系统权限关系到组成员关系,对给定的实例,它存储在数据库管理器配置文件中。DB2有如下四个预定义的权限级别:SYSADM、SYSCTRL、SYSMAINT和DBADM。SYSADM、SYSCTRL和SYSMAINT在实例级别上操作,范围是整个服务器。每个级别都有自己的按组分的特权和访问规则。这些权限都是在每个实例的数据库管理器配置文件中被定义的。DBADM授权级别链接到服务器实例中的特定数据库,并自动把这一权限级别授予创建数据库的用户。DBADM对数据库及其内的所有对象都拥有所有可能的按组分的特权。缺省情况下,SYSADM对包括数据库在内的整个系统拥有所有可能的按组分的特权(SYSADM有隐含的DBADM权限)。
DB2使用不止一个纵向授权流。对于每个用户请求,依据涉及到的对象和操作,可能会需要多次授权检查。授权是使用DB2工具执行的。DB2系统目录中记录了与每个授权名有关联的特权。对通过验证的用户的授权名以及该用户所属的组与记录在案的属于他们的特权进行比较。根据比较结果,DB2决定是否允许请求的访问。
DB2安全性机制阻止TESTING用户标识,因为它知道这个用户没有得到执行这样的命令的授权。在这种情况下,TESTING显然不是SYSADM。
特权。特权定义对授权名的单一许可,从而使用户能够修改或访问数据库资源。特权存储于数据库目录中。虽然权限组预定义了一组可以隐性授予组成员的特权,但是特权是单独的许可。
DB2可以利用由操作系统安全功能维护的用户组。组允许数据库管理员给组指派特权,这样帮助降低数据库系统持所有权的总成本。
通常,动态SQL和非数据库对象授权(例如,实例级命令和实用程序)适用于组成员关系。动态SQL是非预先安排或即时生成的SQL。静态SQL不适用于组成员关系(除PUBLIC组之外)。静态SQL在执行之前就为DB2所知,而且DB2优化器已经生成了SQL访问计划并把它作为数据包存储在目录中。
特定用户标识、所有用户自动归属的特定组(PUBLIC)或多个组都可以被授予(或被撤消)每种特权。
访问控制方法
DB2为了更强大的访问控制而提供了相应的框架。访问控制方法用于创建信息内容的子集,从而用户可以只查看或存取与其需要相关的数据。您可以在DB2中使用许多不同的访问控制方法。访问控制是为您在数据库中所进行的一切操作而存在的。DB2访问控制提供对于在DB2中保护您的数据和提供对数据的行级别访问非常重要的框架。
使用数据包的访问控制。数据包是与一条或多条SQL语句有关的信息集合,这是DB2内SQL的基本访问控制点。数据包中包括诸如优化器生成的访问计划和授权模型等信息。向数据库引擎发出的任何语句都会和特定数据包有关。
在创建数据包的时候,它就被绑定到具有特定特权的数据库。创建数据包的人一定有执行数据包中所有静态SQL语句所需要的特权。运行数据包的用户也一定有这个数据包的EXECUTE特权,但是他们不一定有执行数据包中包含的所有静态语句的一对一的特权。
使用视图的访问控制。视图是另一种主要限制对数据的低级(也称为“行级”)存取的访问控制方法。通过使用视图,您就可以对SQL语句隐藏驻留在原始表中的敏感信息的行和列。您可以通过根据视图授予特权使用户可以存取信息。因为这些特权只适用于视图,不会影响基本表,所以用户的存取范围仅限于视图,而该视图是通过创建所需表中数据的子集生成的。WITH CHECK选项甚至提供更多的安全性,因为它不会让特定的SQL语句改变用户在视图中没有特权读取的那些行。
使用触发器的访问控制。通过使用触发器,您就可以创建更复杂的安全机制,无论什么时候只要特定事件发生,安全机制就会被激活。表的INSERT语句就是一个示例事件,它可用于触发触发器。此外,触发器可以在特定事件之前或之后触发以提供更具活力的安全性审核。如果用户的语句没有通过触发器内的安全性审核,则从触发器主体内发出的错误将会防止表被修改。
使用USER专用寄存器的访问控制。DB2提供的专用寄存器名为USER,其中包含用于在当前会话连接数据库的用户标识。您可以在视图中使用专用寄存器中存储的值来针对特定的用户定制视图。通过使用专用寄存器,您可以使基于表的视图因用户而异。您也可以把这一技术应用于触发器和SQL语句。
审核功能
DB2的审核工具使您可以维持对发生在实例内的事件的审核跟踪。成功的数据存取尝试监视和后续分析可以使数据访问控制方面得到改进,并最终防止恶意或无意非授权存取数据。然后,就可以从这些记录下来的事件中提取出一份报告供分析。
DB2数据库的其他特点
DB2 V9对 XML 的支持
DB2 V9数据库相对于其他数据库管理系统来说有了大幅度的创新。实际上,DB2 9提供了对于XML的支持,不仅仅体现在XML类型的数据上,一些用关系模型难以解决的问题也可以使用XML模型得以解决。DB2 V9对XML的支持与经典的关系数据模型相比所具有的优势是不可忽略的。
DB2 的优化
DB2在处理datawarehouse系统上的性能应该是非常优秀的,同时DB2对优化器做得相当完美,对于大部分复杂查询可以有效地将其重写为最优语句,并且分配合理的执行计划。
DB2的不足
DB2有其优势也有自己的不足。DB2在关闭机制上有一定的不足。这与DB2的设计框架相关,内存锁的使用在提升效率的同时也对系统的优化要求提到了最高。如果用户对数据库的本身优化和应用程序优化做得不足,那么DB2会容易出现锁等待现象。
保险行业数据库处于一个相对比较重要的地位。正是由于DB2数据库系统具有很多的优点,所以部分保险公司就选用了DB2 数据库系统。选用 Unix 操作系统+DB2数据库作为后台,前台采用C/S或B/S模式进行运作。另外通过DB2 Information Integrator对存储在DB2、SQL server、Oracle等异构数据库中的数据整合,使所有数据好像集成在一个数据库中,极大地方便了用户对各类数据的访问。(作者单位:泰康人寿保险股份有限公司)