audits基于HS支持的Oracle审计实践(hs支持oracle)

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数据库审计功能时非常有用。在安全保障方面,这一方法可以帮助企业加强对数据的保护,并及时应对各种潜在的安全问题。


数据运维技术 » audits基于HS支持的Oracle审计实践(hs支持oracle)