在金融危机环境下会计信息共享保证措施探讨
2009-06-19张继德刘盼盼
张继德 刘盼盼
[摘 要] 本文从数据库技术视角,对金融危机环境下会计信息共享保证措施进行了探讨。分析了数据库技术目前存在的问题,提出了在金融危机环境下会计信息共享保证对策。
[关键词] 信息共享;数据库技术;金融危机;保护措施
doi:10.3969/j.issn.1673-0194.2009.10.004
[中图分类号]F232[文献标识码]A[文章编号]1673-0194(2009)10-0015-03
2008年,美国的金融危机迅速蔓延到全球,对中国的经济造成很大影响,中国的实体产业:钢铁行业2008年行业全年利润额850亿元,比2007年的1 447亿元同比下降41%;汽车行业2008年与上年同期相比,下半年产销增速分别回落16.81个百分点和15.14个百分点,全年汽车累计产销自1999年后首次跌破10%以下;机械行业2008年全行业完成总产值大约8.5万亿元,比2007年增长了20%,全年各项指标增长基本持平;化工行业2008年全年实现利润1 500亿元,上半年生产效益平稳增长,下半年运行情况出现逆转,行业增加值比上年增长10%,增速同比回落10.7个百分点。唯独2008年中国软件产业整体保持快速增长态势,累计完成软件业务收入7 572.9亿元,同比增长29.8%,增速比上年同期高8.3个百分点。这说明在金融危机环境下,在外部环境恶化,市场压力增加,效益增速下滑或者亏损的情况下,选择利用信息技术提升企业竞争力和管理水平的要求增加。作为企业信息系统核心子系统,会计信息系统的信息共享成为企业信息系统的使用者和提供者必须面对的问题。
一、会计信息共享存在的问题分析
在会计信息系统中,会计信息是对会计数据进行加工处理得出的,可以有效辅助企业相关管理者进行有关决策服务的。会计数据实际上是描述会计交易和事项的符号记录,在计算机中,为了存储和处理这些事物,就要抽出对这些事物感兴趣的特征组成一个记录来描述。在会计信息系统中数据库就是长期储存在计算机内、有组织、可共享的会计数据集合,数据库中的会计数据按一定的数据模型组织、描述和储存,具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户共享。
会计数据的管理依赖于数据库技术, 数据库技术应数据管理任务所需产生于20世纪60年代中期,是有关会计数据管理的最新技术,它的出现在很大程度上促进了计算机应用于会计行业的发展渗入。在会计信息系统中,数据库可以供多个用户共享,具有最低冗余度和较高的会计数据独立性,但正因为会计信息系统的数据库为许多用户共享,更使得其中的数据库技术问题尤为突出。现如今,会计信息系统的数据库以及数据库技术已广泛服务于国家各级政府、军队、商业部门及各个企业,它不仅是每一笔电子交易、金融和企业可利用资源规划的基础,也包含许多来自商业合作伙伴以及客户的敏感性信息。因此,这些数据库中会计数据的并发控制、完整性和安全性是非常重要的,但是往往管理员对于会计信息系统的数据库所采取的安全检查和防护措施远不及对操作系统和网络系统的检查和防护措施,所以数据库因没有做好安全检查和防护措施而被黑客攻击的事件屡见不鲜。在现今开放的网络环境下,未来的会计信息系统将使得整个社会的会计信息实现全面共享,所以从数据库技术方面加强会计信息共享的保证措施变得尤为重要。
二、会计信息共享保证措施
数据库系统中的会计数据是经由数据库管理系统来统一进行管理和控制的,为适应会计数据共享的环境、保护数据库环境、并保证数据库中会计数据的安全可靠和正确有效性,数据库管理系统必须提供统一的会计数据保护功能,通过并发控制、完整性控制和安全性控制等来达到控制会计数据,实现有效共享的目的。
1.并发控制
作为共享资源的数据库,它可以供多个用户使用。当多个用户同时访问、存取和修改数据库时,就有可能对会计数据库的完整性产生破坏,容易产生丢失修改和不一致的问题,此时就需要对数据库进行并发控制,以保证数据库中会计数据的一致性。并发控制机制的好坏是衡量一个数据库管理系统性能的重要标志之一。
并发控制在数据库管理系统中是以事务为单位来进行的。而事务是用户定义的数据库操作的一个系列,这些操作或者全部都做,或者全部都不做,是一个完整的不可分割的工作单位。事务有4个特性:原子性、一致性、隔离性、持久性。原子性是指一个事务的全部操作是一个整体,在逻辑上是一个不可分割的工作单位;一致性是指一个事务执行的结果必须使得数据库从一个一致性状态转变到另一个一致性状态;隔离性是指数据库管理系统要保证多个事务并发执行的效果要和系统一次只执行一个事务也即串行执行事务的效果一样;持久性是指一个事务一旦提交上去,它对数据库中会计数据的改变就应该是永久性的,以后的操作或故障不会对其产生任何影响。并发控制有两种基本方法:封锁和版本。
(1)封锁
封锁是一种悲观的并发控制机制。封锁机制是指通过强制实施一个顺序修改过程来达到阻止错误修改的目的。在并发控制的实现中,要特别注意封锁级别的选择。封锁级别也称为锁粒度,即封锁的数据库源的范围。锁的类型包括共享锁和排他锁,是数据库管理系统提供的最常用的封锁类型。共享锁也称为读锁或S锁,它允许其他事务读一个记录或其他资源但不能修改它。排他锁也称为X锁或写锁,它可以阻止另一件事务读(并修改)一个记录一直到它被解锁。
所谓封锁协议就是在对会计数据对象加锁、持锁和释放锁时所约定的一些规则。保证数据库数据一致性的有3级封锁协议,但是利用3级封锁协议可以解决并发执行时丢失修改、不可重复读等的问题时,又可能导致死锁问题的产生——当两个或多个事务为同一公共资源加锁,而且每一个事务必须等待其他事务来解锁这一资源时,就会产生困境,这就是死锁。解决死锁的两种基本方法就是死锁预防和死锁解除。在事务开始时,为全部所需的记录加锁就能预防死锁。死锁的预防可以通过一次封锁法和顺序封锁法来解决。一次封锁法就是要求每一个事务必须一次将所有需要使用的会计数据全部加锁,否则将不予继续执行;顺序封锁法就是提前对某个会计数据对象规定一个封锁顺序,所有事务都要按照这个顺序来进行封锁。死锁解除是允许死锁发生,但在数据库管理系统里建立一种机制用来检测和打破死锁,数据库管理系统可以用超时法或事务等待图法来检测死锁。超时法就是当一个事务的等待时间超过了规定的时限时,就认为是发生了死锁;等待图法是用图来动态地反映所有事务的等待情况,若图中存在回路,就表明系统中发生了死锁现象。死锁解除通常是选择一个处理死锁代价最低的事务将其撤销,释放此事务持有的全部的锁,这样使得其他事务继续运行下去。
(2)版本
并发控制的乐观方法称为版本。使用版本时就没有加锁的形式。每一个事务开始时,就被限制在数据库的一个视图中,且当一个事务修改一个记录时,数据库管理系统就会创建一个新的记录版本用以代替或者重新改写旧记录。
版本优于封锁,相比封锁,它的主要优点就是性能改进,只读事务和修改事务能够并行,从而不失数据库的一致性。
2.完整性控制
数据库的完整性是数据库设计和数据库应用系统开发中的关键问题之一。它要求数据库在物理上和逻辑上都是符合完整性的,并且SQL可以提供3种完整性约束条件:实体完整性、参照完整性和用户自定义完整性,它们共同促进了数据库技术的完整性控制。
(1)完整性控制的内涵
数据库的完整性是指保证数据库中会计数据的正确性、有效性和相容性,防止错误的数据进入数据库。数据库是否完整关系到数据库系统能否真实反映客观的现实世界,所以对于数据库完整性的维护是非常重要的。数据库的完整性包括物理上和逻辑上的完整性。
① 物理上的完整性。物理上的数据库完整性应该能够确保当数据库出现物理方面的问题后可以重构数据库,如突然断电或被灾祸破坏等。
② 逻辑上的完整性。逻辑上的数据库完整性是指当数据库被用户错误操作时,数据的结构不会发生变化。例如,某一个字段的值的修改不会影响到其他字段。
(2)完整性控制的约束条件
为保证数据库的完整性,数据库管理系统必须提供某一种机制来检查数据库中的会计数据是否满足语义规定的条件,也即数据库完整性约束条件。通常,数据库管理系统通过完整性约束来实现数据库的完整性。关系数据库提供了3类完整性:实体完整性、参照完整性和用户自定义完整性。其中,实体完整性规定,关系的主码是不可为空的;参照完整性规定,关系的外码不可以引用不存在的属性;用户自定义完整性则规定了某个特定的属性取值约束。这些完整性在具体实现时可以通过SQL语言提供的Primarykey、Unique、Foreign key和Check约束来完成。
① 实体完整性。实体完整性规定,关系的主码不可为空,也即基本关系的所有主属性都不可取空值,且取值必须唯一,不可重复。
② 参照完整性。参照完整性规定,关系的外码不可以引用不存在的属性,也即基本关系的任何一个元组在外码上的取值要么是空值,要么就是被参照关系中的一个元组的主码值。
③ 用户自定义完整性。用户自定义完整性规定了某个特定的属性取值约束,它反映了某一具体应用涉及的会计数据所必须满足的语义要求。它包括唯一值约束、非空值约束、域约束和触发器等。唯一值约束是指表中某一列的取值不能与该表中另一行会计数据在该列的取值相同;非空值约束指表中某一列用户不能输入空值;域约束是指定义域时要确定域的取值范围;最后指对于用户定义的完整性可以利用触发器来定义。
3. 安全性控制
作为共享资源的数据库,无可避免地存在着数据库的安全问题。数据库的安全是指保证数据库信息的保密性、完整性、一致性和可用性。保密性指保护数据库中的数据不被泄露和未授权的获取;完整性指保护数据库中的数据不被破坏和删除;一致性指确保数据库中的数据满足实体完整性、参照完整性和用户定义完整性要求;可用性指确保数据库中的会计数据不因人为和自然的原因对授权用户不可用。数据库的安全性控制就是要尽可能杜绝所有可能的数据库被非法访问,不管他们是有意的还是无意的。
(1)一般方法
一般的,在计算机系统中,安全措施都是逐层设立的,如图1所示,在用户进入计算机系统时,系统首先要对其标识进行用户的身份鉴定,鉴定合法的用户才被准许进入计算机系统中。对进入计算机系统的用户,数据库管理系统还要进行存取控制,并只允许用户进行合法的操作,对于非法操作将不予执行。操作系统一级也具有自身的保护措施,最后还可把会计数据加密后存到数据库中。
(2)对用户的标识与鉴定
对用户的标识与鉴定是计算机系统最外层的安全保护措施。方法就是由系统提供一定的方式来让用户标识自身的名字或身份。也就是说,系统内存储着所有合法用户的标识,每次用户需要进入系统时,就由系统对用户的身份进行识别和鉴定,核实身份后才允许用户进入计算机系统。
(3)存取控制
存取控制是指授予某个用户某种特权,利用该特权能够以某种方式(如读取、修改等)访问数据库中的某些会计数据对象。存取控制可以通过SQL授权语句提供灵活的授权机制、授予用户特权和对角色的管理来完成。
(4)审计
安全性措施对于计算机系统来说并不能穷尽,总会有黑客、间谍或其他想要盗窃或破坏会计数据的人在想方设法地破坏控制。因此,对于敏感性的会计数据或极为重要的会计数据处理,就有必要以审计技术为监控手段来监测任何可能存在的不合法行为。
此审计是指对选定用户动作的监测和记录,一般由信息技术审计员用于审查可疑的活动或监控并收集有关指定数据库活动的会计数据,以达到数据库系统控制得当并能够正常运转。比如说,Oracle数据库能做到以下3种审计类型:语句审计、特权审计和对象审计。
(5)数据加密
对于某些高度机密的会计数据,除了利用以上的安全措施之外,还可以采取会计数据加密技术。正常的用户在检索会计数据时,首先要提供密码钥匙,经由计算机系统进行解码后,才能获得可识别的会计数据资料;而非法用户通过不正常渠道得到的会计数据只是一些无法辨认的二进制数,这样就保证了对机密会计数据的安全性控制。
当前的不少数据库产品都提供了会计数据加密程序,系统可根据用户的要求做到自动对要储存和传输的会计数据进行加密处理;部分数据库产品没有提供会计数据加密技术,但是提供了接口,它允许用户使用其他厂商的加密技术程序对会计数据进行加密。会计数据加密技术相应地也存在会计数据解密程序,这些会计数据解密程序自身也具有一定的安全性保护措施。因为不管会计数据加密还是会计数据解密都是比较费时的操作,并且加密、解密程序也会占用大量的系统资源空间,所以数据库管理系统将它们设为可选操作,只对高度机密的会计数据进行加密。
主要参考文献
[1] 王珊,陈红.数据库系统原理教程[M].北京:清华大学出版社,1998:145-172.
[2] 〔美〕Jeffrey Hoffer.现代数据库管理[M].第7版.袁方,罗文劼,李宁,等,译.北京:电子工业出版社:483-488.
[3] 王珊,张孝,李翠平,等.数据库技术与应用[M].北京:清华大学版社,2005:119-138.
[4] 国家技术监督局.中华人民共和国公共安全行业标准GA/T389-2002:计算机信息系统安全等级保护数据库管理系统技术要求[S].北京:中国标准出版社,2002.
[5] 国家技术监督局.中华人民共和国国家标准GB17859-1999:计算机信息系统安全保护等级划分准则[S].北京:中国标准出版社,1999.
[6] 〔美〕Joel Siegel,Jae Shim.数据库管理系统管理人员必读[M].尹买华,译.北京:清华大学出版社,2004:196.