audits基于HS支持的Oracle审计实践
近年来,数据安全成为了所有企业必须重视的重要问题。而作为企业的核心数据存储和处理平台,Oracle数据库的安全性也越来越受到企业关注。为了保证Oracle数据库的安全性,在数据库的操作中,审计功能是非常重要的一环。本文将介绍在Oracle数据库中基于HS(Heterogeneous Services)支持的审计实践方案。
1、HS技术介绍
HS是Oracle数据库提供的一个针对异构数据源的访问框架,可以使得Oracle数据库直接访问不同类型的数据源。HS技术可以在Oracle数据库中定义一种特殊的数据库连接方式,即Oracle Database Gateway。这种方式允许Oracle数据库使用SQL或PL/SQL访问其他类型的数据库。
2、选择HS进行审计的原因
在Oracle数据库中,各种数据以不同的格式和存储方式存在,如文件、文本、Web数据、电子表格、数据库等,采用HS技术可以跨越异构数据库的连接、传输和访问。此外,采用基于HS支持的审计功能,可以将各种类型的数据流自动记录到Oracle数据库日志中,方便对于数据审计和数据分析。
3、基于HS的审计方案
步骤一:插件配置
在Oracle数据库之前,首先需要在Oracle数据库中将HS插件进行配置和安装(这里不再展开讲解)。安装完成后,创建外部的数据库服务器连接插件。具体配置如下:
CREATE DATABASE LINK “TARGET_DB”
CONNECT TO “USERNAME”
IDENTIFIED BY “PASSWORD”
USING ‘DG4ODBC’;
步骤二:日志记录
由于我们想要记录一些特定的活动,例如所有SELECT、INSERT、UPDATE、DELETE、CREATE、ALTER和DROP语句以及任何sysconnections中的事件,所以我们需要编写以下触发器:
CREATE TRIGGER audtir_on_sysconnect
AFTER LOGON ON DATABASE
DECLARE
v_program varchar2(200);
BEGIN
v_program := SYS_CONTEXT(‘USERENV’, ‘PROXY_USER’);
IF INSTR(v_program, ‘TARGET_DB”) > 0 THEN
execute immediate ‘ALTER SESSION SET SQL_TRACE = true’;
execute immediate ‘ALTER SESSION SET EVENTS ”10046 trace name context forever”’;
END IF;
END;
此处需要解释的是,对于需要审计的SQL语句,我们需要开启SQL_TRACE跟踪和10046跟踪,这样可以将所有执行的SQL语句记录到trace文件中。
步骤三:审计数据的查询
为了查询审计数据,我们还需要创建一个视图来获取数据,并在Oracle数据库中运行查询。具体操作如下:
CREATE OR REPLACE VIEW aud$ AS
SELECT
systimestamp AS audtimestamp,
sys_context(‘USERENV’, ‘DB_NAME’) AS instance_name,
sys_context(‘USERENV’, ‘SESSIONID’) AS sessionid,
lower(decode(sys_context(‘USERENV’, ‘AUTHENTICATION_TYPE’),null,’DATABASE’,’NETWORK’)) AS authentication_method,
sys_context(‘USERENV’, ‘IP_ADDRESS’) AS ip_address,
sys_context(‘USERENV’, ‘OS_USER’) AS os_user,
sys_context(‘USERENV’, ‘MODULE’) AS module,
sys_context(‘USERENV’, ‘CLIENT_INFO’) AS client_info,
sys_context(‘USERENV’, ‘ACTION’) AS action,
sys_context(‘USERENV’, ‘CLIENT_IDENTIFIER’) AS client_identifier,
sql_text AS sql_text,
bind_hash AS bind_hash,
buffer_gets AS buffer_gets,
cpu_time AS cpu_time,
elapsed_time AS elapsed_time,
row_count AS row_count
FROM
dba_audit_object
WHERE
owner = ‘PUBLIC’
AND object_name LIKE ‘AUD%’
ORDER BY
systimestamp;
使用以上视图,就可以查询到由HS日志记录的审计信息了。
4、总结
通过以上的介绍,我们可以看到,基于HS支持的Oracle审计实践方案,具备操作简单、灵活性强、可以跨越数据库连接等一系列优点,在实现Oracle数据库审计功能时非常有用。在安全保障方面,这一方法可以帮助企业加强对数据的保护,并及时应对各种潜在的安全问题。