目前,被审计单位存储数据方式大部分都是采用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:sjdatasj.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:sjdataimp.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:查询当前用户名