浅析Oracle技术在审计数据采集中的应用
李科(重庆市审计局 ) 赵辉(审计署昆明办)
【发布时间:2013年08月29日】
字号:【大】 【中】 【小】
    
目前,被审计单位存储数据方式大部分都是采用Oracle数据库。由于Oracle数据库的复杂性,再加上审计机关没有专业的Oracle数据库操作人员,造成审计人员面对Oracle数据库束手无策的局面。本文作者有幸参加了审计署组织的2013年审计数据分析师高级培训班,通过近一段时间的学习,获益匪浅,对Oracle数据库有了一个更深入的理解。根据所学知识,结合审计实践工作,总结了几点在审计工作中处理Oracle数据比较有用的概念和技术。

一、几个重要概念
表空间:数据库的逻辑划分,一个表空间只属于一个数据库,一个数据库可以拥有多个表空间。表空间就像一个文件夹,是存储数据库对象的容器,如果要创建表,首先要创建存储表的表空间。
用户:用户拥有数据库中的对象。为数据库创建对象(例如表)必须在用户帐号下进行。
方案(SCHEMA):用户帐号拥有的对象集。

二、被审计单位提供Oracle数据库备份文件的处理
被审计单位通过exp命令导出的Oracle数据库备份文件(dmp文件数据),如何导入我们自己的Oracle环境开展分析?一般按以下步骤进行:
Ø 创建表空间(在不知道表空间的情况下,可以先创建拥有DBA权限的用户,导入备份文件,导入时候会报错,提示没有相应的表空间,根据这个提示再建立表空间)
Ø 创建用户
Ø 给用户授权(DBA权限)
Ø 导入数据(imp 方式) 
(一)创建用于存储数据的专用表空间
下面的语句在 “d:\sjdata\”目录下创建名为“sj”的表空间,表空间大小自动扩展。
CREATE BIGFILE TABLESPACE sj
DATAFILE 'd:\sjdata\sj.dbf' SIZE 10M REUSE
AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SEGMENT SPACE MANAGEMENT AUTO;
(二)创建审计用户
以下语句创建了“sjuser”用户,密码为“sj”,默认表空间为步骤一创建的”sj”
CREATE USER sjuser IDENTIFIED BY sj
DEFAULT TABLESPACE sj
TEMPORARY TABLESPACE TEMP
QUOTA UNLIMITED ON sj;
(三)把connect和dba的权限授权给用户“sjuser”
GRANT connect, dba TO sjuser;
(四)导入被审计单位数据
imp userid=system/123 ignore=y file= d:\exp.dmp
 log=d:\sjdata\imp.log fromuser=abc touser= sjuser;
在此,一并提供导出语句供参考:
exp userid= abc/abc   file= d:\exp.dmp log=d:\exp.log owner=abc

三、几个Oracle环境常见问题的解决
(一)当ORACLE不能正常使用时,首先检查服务是否正常启动
OracleOraDb11g_home1TNSListener和OracleServiceORCL(ORCL为实例名)这两个服务是否正常启动,如果有没有启动的,先把服务启动起来。
(二)出现监听问题
可以通过Net Manager或Net Configuration Assistant,把原来的监听删除掉后重新增加一个,注意:一个数据库只需要配置一个监听即可。


(三)安装了多个实例
最好是同一时间只启动一个实例;如果因为安装了多个实例出现使用SQL PLUS等工具不能正常登录的,可以在系统环境变量中增加一个名为ORACLE_SID的系统变量,变量值为默认实例名。

如果还有问题,那就通过Net Manager或Net Configuration Assistant对本地网络服务名进行重新配置即可。

四、几个常用命令和重要系统表
(一)常用命令
show user:查询当前用户名
desc 表名:查询表结构
sqlplus / as sysdba:不需要密码用管理员最高权限登录系统
SELECT instance_name FROM v$instance(或:SELECT name FROM v$database):查询当前实例名
SELECT * FROM tab:查询当前用户所有的对象
SELECT table_name,num_rows FROM dba_tables:查询所有表的记录数;
(二)常用字典表
DBA_TABLESPACES:数据库中所有表空间的信息
DBA_USERS:数据库所有用户的详细信息
DBA_TS_QUOTAS:所有用户的表空间配额信息
DBA_SYS_PRIVS:为用户授予的系统权限信息
DBA_TAB_PRIVS:为用户授予的对象权限信息
DBA_ROLE_PRIVS:数据库中所有用户授予的角色信息
(三)几个重要原则
Ø 切记不要直接访问被审计单位生产环境数据库
Ø 请被审计单位搭建单独环境
Ø 请被审计单位恢复数据库,提供用户名、口令、数据库实例等信息
Ø 安装并能用pl/sql developer访问数据
     (李科、赵辉)
【关闭】    【打印】