数据库审计方法思路初探

作 者:

作者简介:
王强 胡明明 新疆自治区审计厅

原文出处:
新疆审计

内容提要:


期刊代号:V3
分类名称:审计文摘
复印期号:2009 年 06 期

关 键 词:

字号:

      传统的计算机审计,是将数据经过采集后利用模板直接导入AO系统,并在AO系统中对财务数据进行审计分析。随着审计深度和广度的不断扩大,传统的数据采集转换已经不能满足审计的要求。面对拥有大数据量、结构各异、种类繁多的数据库财务软件和业务数据库系统,我们需要采用更灵活的方式对数据进行分析和处理。这类数据库的审计分析,主要经过数据采集、数据转换、数据验证、审计分析、审计核实五个步骤。就目前来讲,数据采集、数据转换、数据验证这三个步骤放在审前调查阶段来完成,数据采集、数据转换的时间比例约占审前调查的30%,数据验证的时间比例约占审前调查的70%。审计分析、审计核实在审计实施阶段完成,审计分析占到审计实施阶段绝大多数时间。如果条件允许,还可以将审计分析提前到审前调查阶段来进行。下面对实施这五个步骤中应注意的一些问题做进一步探讨。

      一、数据采集和转换

      (一)了解数据库的基本情况

      处理被审计单位数据库,首先要了解被审计单位数据库的基本情况,如数据库软件的种类、版本、数据量等。以常用数据库为例:Access数据库可以直接复制使用;SQL Server可以将数据库分离、复制后直接拿来使用;而DB2数据库复制后,移到本地,还需要进行修改才能使用;Oracle数据库复制后也是不能直接使用的。无论什么数据库,如果备份的数据库和恢复的数据库版本不一致,就可能导致数据库恢复失败。如果要对数据进行模拟测试验证,则需要了解被审计单位是否可以提供备份机和可以使用的前端软件。

      (二)明确采集要求,掌握数据量大小

      在数据采集过程中要提出明确的采集要求:如数据发生的时间范围、地域范围、数据导出格式;同时还要清楚被审计单位的数据导出方式、数据量大小等数据库情况。以Oracle为例:在该数据库中每一张表都属于某一个用户,每一个用户的权限不同,能够导出的数据也不同,所以要知道被审计单位是以什么形式提供的数据。而且,在数据采集过程中,要清楚数据量大小,如Oracle数据库,该数据库在创建时,不加载任何数据,体积本就比较大(超过1G),加载备份数据恢复后,体积可能比原备份数据增长一倍,因此,必须有足够的空间用来恢复数据。

      (三)进行正确的数据格式转换

      目前,大部分审计人员分析时,习惯使用SQL Sever数据库,所以有时必须将其他的数据库格式转换成审计人员熟悉的SQL Sever数据库格式。不同数据库存放数据的格式存在很大差异,进行相互转换有一定难度。尤其是对整个数据库进行转换时,可能会遇到很多意想不到的问题。以Oracle转换成SQL Server为例:相同的Time Stamp类型(时间戳类型),在转换过程中就会出错,原因是两种数据库在存放该类型数据时格式不同。各类数据库使用的SQL语句都是一样的,不同的是各自的函数。如果有一个专门针对各类数据库之间数据格式转换的工具,就可以大大减少数据采集的时间。

      二、数据验证

      (一)对数据库中主要财务数据和相关报表进行对比

      在数据采集、清理、转换之后,从数据库表中提取主要财务数据与会计报表核对。主要分为两种情况:一种是业务、财务两套系统;另一种是业务系统和财务系统合一的集成系统。前者是从业务系统中提取指标数据与财务系统提取的指标数据进行分析核对;后者针对年度报表上的一些财务指标,在集成系统中对原数据进行分析统计,将统计结果与报表上的财务指标进行核对,验证其报表的真实性。两者的数据来源不同,但方法一致,并且可以相互验证。在实际数据验证过程中,数据验证的难易程度与数据库对数据处理的复杂程度有关。一般来说,数据库系统开发完善程度越高、单位数据库管理员对数据库熟悉程度越高、系统应用越规范的单位,其数据验证相对就会更顺利。

      (二)选择验证对象数据是关键

      一套单一的数据系统,只要能从数据库中找到主要表,然后通过核对总记录数、总金额,或者通过审核顺序号的断号和重号、特殊编码的规范性来进行验证即可。

      多套系统组合运用,首先耍弄清楚系统之间的数据流向、关系和时效,再查找或整理出具有完整数据的表,如果不考虑这三个因素,可能做了大量的验证之后,才发现数据不全。找表时要确定找到的这张表是通过系统自动计算生成未改动过的,还是经过了人工再处理,如果是人工再处理的表,则要弄清这些表都进行了哪些处理后再使用。

      不同系统,不同业务,常用表也不同。以商业银行为例:流水表是最实时、最原始、最完整的数据表,而业务状况表或资产负债表是系统在流水表的基础上经过统计处理出来的,这时候就需要向数据库管理员了解具体情况,再做选择。因此,无论面对简单还是复杂的系统,都应该根据被审计单位具体业务情况和业务特点而有所选择。

      (三)与被审计单位数据库管理员建立良好的沟通平台

      数据验证时间应该控制在审前调查时间的70%左右,而在实际操作过程中,数据验证经常是在审前调查结束时都不能完成,需顺延到实施阶段。这就需要在数据验证开始之前,对被审计单位的信息系统情况做一个全面细致的摸底。首先,初步了解被审计单位信息系统情况,设计计算机审前调查表,交由被审计单位数据库管理员填写。其次,对于复杂的信息系统最好得到系统的业务流程图或数据流程图,这样对系统的了解可以更直观、快捷。对没有系统文档的被审计单位,要依靠其系统管理员的介绍。再有,系统文档反映的情况通常与现行系统的实际情况存在差异,若仅凭系统文档熟悉信息系统需要很长时间,易走弯路。所以无论被审计单位信息系统的实际情况怎样,都应该在打开数据库之前,请系统管理员对系统的流程、功能等进行一次类似于讲课的演示讲解,这样既可以避免审计过程中,向管理员询问具体问题时存在沟通障碍,也可以降低管理员有意或无意隐藏有效信息的风险,比如一个关键的表、字段、甚至一个数据库或数据系统。与被审计单位数据库管理员的联系会贯穿整个计算机审计的始终,建立良好的沟通平台是进行审计分析的良好开端与基础。

相关文章: