摘 要:摘要:本文主要探讨数据库安全管理的访问控制模型,通过分析改造数据库实现数据库安全,并对数据库中间件(DBSAPI)进行了一些有益的探讨。 数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,主要用于建立、使用和维护数据库。它对数据库进行统一的管理和控制并保证数据库的安全性和完整性。对数据库系统进行安全评估有两种方式:专家评估和系统评估工具。专家评估与系统评估工具比较,有许多优点,随时随地可以进行,专家的聪明才智和经验也可以充分发挥。数据库系统的定期安全评估则更多采用系统评估工具,如Nessus、NMAP等评估工具。由于系统不断变化的特点,当系统状态发生了变化,如一些新用户的增加,用户权限的修改,这时系统很可能出现新的安全隐患。专家对系统的安全评估是针对系统被评估时的状态,而请专家定期评估,一是成本高,二是劳动强度大。但在系统状态发生变化后,系统安全评估工具则可以重新对系统进行评估。
关键词:关键词:数据库管理系统数据库安全模型安全性数据库安全数据库中间件(DBSAPI)
中图分类号:TP393.08 文献标识码:A 文章编号:
1. 访问控制模型
访问控制模型是从访问控制的角度描述安全系统并建立安全模型的方法。主体依据某些控制策略或权限对客体本身或资源进行的不同授权访问,称为访问控制,访问控制的三要素为主体、客体和控制策略,它的内容则包括认证、控制策略实现和审计。目前,访问控制模型可分为自主访问控制(Discretionary
Access Control)、强制访问控制(Mandatory Access control)和基于角色的访问控制(Role Based Access
Control)。
自主访问控制模型(DAC)的特点是:允许合法用户以用户或用户组的身份访问规定的客体并阻止非授权用户访问客体。DAC的主要表现形式为目录式访问控制、访问控制表、访问控制矩阵和面向过程的访问控制。DAC的优点是简单易操作,缺点是安全性较低。这是由DAC的特点导致,因操作系统无法区别哪种修改是用户的合法操作还是病毒或黑客的非法操作,所以系统容易受到病毒感染和黑客攻击。
强制访问控制模型(MAC)的特点是:系统对访问主体和受控对象实行强制访问控制,系统先根据事先分配的安全级别属性对访问主体和受控对象的安全级别属性进行比较,然后决定其是否可以进行访问。由于MAC模型采用分级安全标识,从而实现了信息的单向流动,其最大的优点是有效地防止机密信息向下级泄漏及有效地保护数据的完整性。但缺点是使用不灵活,工作量大且管理不便,由于MAC模型过于强调保密性,因此其应用范围也受到限制。
基于角色的访问控制模型(RBAC)的特点是:将访问权限于角色对应联系起来,通过分配给用户的适当角色,使用户与访问权限相联系,即在RBAC中,角色的作用类似于中介,主体与客体的联系通过中介来沟通。RBAC的优势在于它将数据资源访问许可封装在各种角色中,不同的角色对应不同的用户,角色或用户可以灵活地转换变化,而且RBAC也非常贴近日常生活。
2. 数据库安全操作
2.1 数据库驱动程序的安全扩展
结构化查询语言的英文缩写是SQL。在数据库中的存取接口上,可使用扩展标准的SQL语言,执行对象定义、数据操纵、权限管理、流程控制等操作,从而实现对数据库中机密信息的加密和完整性保护。实际工作中,对于关系数据库的扩展操作,通常选用SQL DDL和SQL DML语言,同时,通过 ODBC、IDBC、BDE等数据库程序控制存取数据库中的表格、记录和字段,进一步对用户操作方面进行日志记录和审计,从内部加强关系数据库的存储和存取安全。这种方式的好处是简便易行,并且不会对数据库系统的基本性能造成大的改变。
当进行安全扩展时,在常规数据库驱动程序中增加审计日志管理、完整性验证、密钥管理和数据加解密安全扩展模块,例如,数据库审计日志和存储加密密钥等与安全相关的信息,从而提高数据库的安全性。同时,增加加密算法设置、更新和主密钥设置等安全属性,进一步提高SQL语句的安全性。
2.2 数据库安全数据视图
标准的SQL Server 数据库安全模型由用户、SQL Server 登录、权限和基本表组成,其安全认证通过数据库对用户所输入的帐号和口令进行确认,它包括确认用户的帐号是否有效、能否访问系统、能够访问哪些数据等。此安全模型的特点是将权限赋予表,用户在需要查询及更改数据时,直接对表进行存取,只要用户有对表的Select权限,便可以检索表中所有的信息。然而,大多数数据库中的数据是非常机密或涉及个人隐私的,这就要求对信息本身划分为不同的保密级别,例如国家机密、商业秘密和个人隐私等就不能简单地划分为公开和保密两类,而是需要更细致的分类,可细分为多级保密级或不同的保密级。在多级保密系统中,不同的保密级别被赋予不同的数据项,再根据数据项的不同细分项,给存取本数据项的操作赋予不同的级别。SQL Server通用安全模式显然不能将数据项细分,这是因为用户有对表的Select权限,可直接存取存储数据的数据库表。采用基于视图的数据库安全模型是解决问题的方法之一。在SQL中,把传统的关系模型中的子模式称为视图(VIEW),视图是从若干基本表和其他视图构造出来的表。基本表为“实表”,是实际存放在数据库中的表。视图则称为“虚表”。创建一个视图时,只把视图的定义存储在数据词典中,而不存储视图所对应的数据。在关系数据系统中为不同的用户定义不同的视图,对无权存取这些数据的用户,通过视图机制,把要保密的数据隐藏起来,这种方法是实现视图并只授权访问视图。若使用该方式,用户只能访问在生成视图时返回的数据。视图机制使系统具有数据安全性、数据逻辑独立性和操作简便等优点,视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次都指定全部的条件。视图和存储过程,就好像一座架设在用户与底层表之间的桥梁,用户的操作只能针对视图和存储过程进行,而无法直接访问底层表。
3. 数据库中间件(DBSAPI)的应用
数据库中间件是连接用户和底层数据库之间的系统软件或服务程序,主要用于屏蔽异构数据库的底层细节问题,是客户与后台的数据库进行通讯的桥梁。中间件可减少对数据的直接读取,能对数据起到一个缓冲作用,安全且高效。当客户发出对某个数据库的SQL请求时,依次进行语法词法分析、加密字典和检索访问控制,再根据加密定义和访问控制进行相关操作,然后提交给DBMS做数据提取处理;即由数据库中间件搜索匹配的数据库连接,并将SQL请求转发给对应的数据库服务器,然后对数据库进行操作。这种方式访问数据库,最大的好处就是安全性,因为中间件的服务是定制的,应用程序只能通过中间件接到数据库。所以,应用程序无法做中间件服务之外的事情。只要将所需的应用逻辑写在中间件中,就可以保证数据的安全性。
参考文献:
王樱,徐雨明 数据库访问技术研究 微计算机信息2006