返回顶部
首页 > 资讯 > 数据库 >如何进行OGG中的审计
  • 138
分享到

如何进行OGG中的审计

2024-04-02 19:04:59 138人浏览 安东尼
摘要

如何进行OGG中的审计,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。源表: create table TB11(id number pr

如何进行OGG中的审计,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

源表:

create table TB11(id number primary key,name varchar(10));

目标表:

create table TB11(id number primary key,name varchar(10), src_time date);

create table TB11_audit(id number,name varchar(10),src_time date, trg_time date,op_type varchar2(20),src_user varchar2(10));

源端:

GGSCI (pc6) 20> edit params ext_s1

extract ext_s1

setenv (NLS_LANG='AMERICAN_AMERICA.AL32UTF8')

setenv (oracle_SID='hyyk')

userid ogg,passWord oracle

gettruncates

exttrail /u01/app/oggs/dirdat/ss

table sender.tb11, TOKENS (TKN-USERNAME=@getenv('TRANSACTioN','CSN'));

--说明:在源端extract进程中使用TOKEN在trail文件头部用户TOKEN部分定义了一个变量:

TKN-USERNAME,这个变量的值是通过@GETENV来获得当前Goldengate运行环境中和数据库事务相关源端数据库提交事务的用户信息

目标端replicat进程 (用于加时间戳):

GGSCI (ogg-80 as ogg@ogg) 144> view params rep_s1

replicat rep_s1

setenv(NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)

setenv(ORACLE_SID='ogg')

userid ogg,password oracle

--handlecollisions

ASSUMETARGETDEFS

--SOURCEDEFS /u01/app/oggd/dirdef/test.def

DISCARDFILE ./dirrpt/rorabb.dsc,PURGE

userid ogg,password oracle

map sender.tb11,target receiver.tb11,

COLMAP (USEDEFAULTS,

SRC_TIME = @GETENV('GGHEADER','COMMITTIMESTAMP'));

说明:此时目标有2个replicat进程,这两个进程读的trail文件是同一份,这里是第一个进程:ggs_rep1,这个进程负责正常的数据复制,

即从源端的TB11表复制到目标的TB11表,只不过在目标的TB11表上多了一个字段SRC_TIME(记录源端事务提交的时间),因为多了一个字

段,这里就要调用COLMAP来做映射了,在COLMAP字句中使用@GETENV函数,该函数配置的参数是GGHEADER类别下的COMMITTIMESTAMP这个属

性,而这个属性就是用来获取时间戳,即记录事务提交的时间,格式为YYY-MM-DD HH:MI:SS.FFFFFF。

目标replicat进程(用于审计):

REPLICAT ggs_rep2

USERID ogg, PASSWORD oracle

ASSUMETARGETDEFS

INSERTALLRECORDS

DISCARDFILE ./dirrpt/ggs_rep2.dsc, APPEND, MEGABYTES 1024

WILDCARDRESOLVE DYNAMIC

DYNAMICRESOLUTION

MAP SENDER.TB11, TARGET RECEVIER.TB11_AUDIT,

COLMAP (USEDEFAULTS,

SRC_TIME = @GETENV('GGHEADER','COMMITTIMESTAMP'),

TRG_TIME = @DATENOW (),

OP_TYPE = @GETENV('GGHEADER', 'OPTYPE'),

SRC_USER = @TOKEN ('TKN-USERNAME'));

TRG_TIME = @DATENOW () --DATENOW 返回当前的日期和时间

add replicat ggs_rep2,exttrail /u01/app/oggd/dirdat/sd,checkpointtable ogg.ckpt

说明:这是目标第二个replicat进程,这个进程负责审计表的复制,即从源端的TB11表复制到目标审计表TB11_AUDIT,前面也看到需求中的内容了,

审计表多了4个字段,分别用于记录源端每个事务操作的时间、目标端提交的时间、源端的操作类型、源端数据库用户名。该进程参数文件中使用了

一个非常重要的参数:INSERTALLRECORDS ,这个参数会让复制进程插入对于目标端一条记录所有的变化修改,即能起到审计的作用。同时在这个进

程中,使用@GETENV函数来获取goldengate运行环境中的GGHEADER下的COMMITTIMESTAMP(源端时间)和OPTYPE(操作类型);使用@DATENOW ()来获

取目标端提交时间;使用@TOKEN函数来获取源端定义在trail文件头部定义的用户令牌部分的变量TKN-USERNAME的值,即源端的数据库用户信息。

源端执行了以下sql

SQL> insert into TB11 values(1,'a');

SQL> commit;

SQL> insert into TB11 values(2,'a');

SQL> commit;

SQL> update TB11 set name='c' where id=2;

SQL> commit;

SQL> delete from TB11 where id=2;

SQL> commit;

SQL> update TB11 set id=2 where id=1;

SQL> commit;

完成后,源端表查询记录如下:

SENDER@hyyk> select * from tb11;

ID NAME

---------- ----------

2 a

从目标表查询的结果如下:

RECEIVER@ogg> select * from tb11;

ID NAME       SRC_TIME

---------- ---------- -------------------

2 a      2018-03-16 11:41:34

SQL> set linesize 200

RECEIVER@ogg> select * from TB11_AUDIT;

ID NAME       SRC_TIME  TRG_TIME      OP_TYPE        SRC_USER

---------- ---------- ------------------- ------------------- -------------------- ----------

1 a      2018-03-16 11:05:07 2018-03-16 11:27:51 INSERT                1849360

2 a      2018-03-16 11:31:00 2018-03-16 11:31:06 INSERT                1850347

c      2018-03-16 11:39:46 2018-03-16 11:39:52 SQL COMPUPDATE 1850679

2 c      2018-03-16 11:41:11 2018-03-16 11:41:19 DELETE        1850749

2      2018-03-16 11:41:34 2018-03-16 11:41:43 PK UPDATE               1850766

说明:目标端TB11表中的数据和源端保持一致,只是多了一列表示最后事务提交的时间;目标表TB11_AUDIT负责将源表所有的操作审计下来,其中最后两行name字段没有填充值进来,

是因为TB11表上有主键,对于删除操作和键值更新的操作时,在日志中只有键值列相关的信息,如果需要显示其他字段信息,就需要把这些字段都加入附加日志中去。同时OP_TYPE这

列中和update操作相关的有两个值“SQL COMPUPDATE”和“PK UPDATE”,分别表示了非键值列的更新和键值列的更新。

这里将审计表的列与logdump出来的tiail对比

ID NAME       SRC_TIME  TRG_TIME      OP_TYPE          SRC_USER

---------- ---------- ------------------- ------------------- -------------------- ----------

1 a      2018-03-16 11:05:07 2018-03-16 11:27:51 INSERT                1849360

2018/03/16 11:05:07.932.429 Insert  Len    18 RBA 1972

Name: SENDER.TB11  (TDR Index: 1)

After  Image:                                             Partition 12   GU s

0000 0005 0000 0001 3100 0100 0500 0000 0161      | ........1........a

Column     0 (x0000), Len     5 (x0005)

0000 0001 31                                      | ....1

Column     1 (x0001), Len     5 (x0005)

0000 0001 61                                      | ....a

User tokens:   21 bytes

544b 4e2d 5553 4552 4e41 4d45 0031 3834 3933 3630 | TKN-USERNAME.1849360

00                                                | .

关于如何进行OGG中的审计问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网数据库频道了解更多相关知识。

您可能感兴趣的文档:

--结束END--

本文标题: 如何进行OGG中的审计

本文链接: https://lsjlt.com/news/68248.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何进行OGG中的审计
    如何进行OGG中的审计,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。源表: create table TB11(id number pr...
    99+
    2024-04-02
  • 怎样进行DM7审计中的语句级审计的分析
    怎样进行DM7审计中的语句级审计的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。审计机制是DM数据库管理系统安全管理的重要组成部分之一。D...
    99+
    2024-04-02
  • 如何进行OGG中showsynatx测试的分析
    如何进行OGG中showsynatx测试的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 测试showsynatx:   首先...
    99+
    2024-04-02
  • 如何进行ogg的字符分析
    今天就跟大家聊聊有关如何进行ogg的字符分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 我们所熟知oracle的字符...
    99+
    2024-04-02
  • 如何在Linux中进行系统安全审计和漏洞扫描
    在Linux系统中进行系统安全审计和漏洞扫描通常需要使用一些专门的工具和技术。以下是一些常用的工具和方法: 1、安全审计: 使用L...
    99+
    2024-04-02
  • oracle怎样进行审计日志清理
    本篇文章给大家分享的是有关oracle怎样进行审计日志清理,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 --进入审计日志目录: cd $...
    99+
    2024-04-02
  • 使用Seay进行代码安全审计
    Seay介绍 Seay介绍 Seay其实是一款用 C语言所开发的一款对 PHP相关代码的安全审计系统,它是运 行在 Windows操作系统上的。这种软件能够发现 SQL 注入漏洞、代码执行漏洞、命令执...
    99+
    2023-10-08
    web安全 php
  • 如何进行C++代码的代码审查?
    如何进行C++代码的代码审查?代码审查是软件开发过程中非常重要的一环,它能够帮助开发团队识别并纠正潜在的错误,提高代码质量,减少后续维护和调试的工作量。对于C++这样的强类型静态语言来说,代码审查尤为重要。下面将介绍一些关键步骤和注意事项,...
    99+
    2023-11-02
    编程 C++ 代码审查
  • 怎么使用MyBatis进行SQL审计和监控
    MyBatis本身并不提供SQL审计和监控的功能,但可以通过一些方式来实现这些功能,例如: 使用MyBatis Intercep...
    99+
    2024-05-08
    MyBatis
  • MariaDB10.1中如何开启审计日志
    今天给大家介绍一下MariaDB10.1中如何开启审计日志。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。MariaDB日志审...
    99+
    2024-04-02
  • 如何在GitLab中进行代码审查和合并请求
    如何在GitLab中进行代码审查和合并请求代码审查是一个重要的开发实践,可以帮助团队发现潜在的问题并改善代码质量。在GitLab中,通过合并请求(Merge Request)功能,我们可以方便地进行代码审查和合并工作。本文将介绍如何在Git...
    99+
    2023-10-22
    gitlab 代码审查 合并请求
  • 在OpenBSD系统上如何进行网络流量分析和安全审计
    在OpenBSD系统上进行网络流量分析和安全审计,你可以使用一些工具和技术来实现。以下是一些常用的方法: 使用tcpdump:t...
    99+
    2024-04-02
  • 如何进行SAP销售订单审批配置
    小编今天带大家了解如何进行SAP销售订单审批配置,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“如何进行SAP销售订单审批配置”的知识...
    99+
    2023-06-05
  • DM7审计中的语句序列审计是怎样的
    DM7审计中的语句序列审计是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。审计机制是DM数据库管理系统安全管理的重要组成...
    99+
    2024-04-02
  • 如何在Oracle中启用审计功能
    要在Oracle中启用审计功能,您可以按照以下步骤操作: 1、使用sysdba权限登录到Oracle数据库。 2、运行以下命令启用标...
    99+
    2024-04-09
    Oracle
  • 如何进行C++代码的并行计算?
    随着计算机硬件性能的不断提升,针对多核处理器的并行计算成为了编程领域中的一个重要话题。C++作为一种高效的编程语言,自然也有各种方法来实现并行计算。本文将介绍几种常用的C++并行计算的方法,并分别展示它们的代码实现和使用场景。OpenMPO...
    99+
    2023-11-03
    代码 C++ 并行计算
  • 如何在Python中进行并行计算和分布式计算
    如何在Python中进行并行计算和分布式计算随着计算机技术的不断发展和硬件性能的提升,利用多核处理器进行并行计算和分布式计算已成为提高程序性能的重要手段之一。而Python作为一门简洁易用且功能强大的编程语言,也提供了丰富的库和工具来支持并...
    99+
    2023-10-22
    并行计算 (Parallel computing) Python (Python) 分布式计算 (Distributed
  • C++开发建议:如何进行C++代码审查
    C++是一种广泛使用的编程语言,用于开发各种应用程序和系统软件。由于其丰富的功能和灵活的语法,C++代码的审查对于确保代码质量和可靠性至关重要。本文将向读者介绍一些C++代码审查的基本原则和实践建议。注重代码可读性和命名规范C++代码应该易...
    99+
    2023-11-23
    代码质量控制 开发建议 C++代码审查
  • PHP中的代码审计
    随着网络技术的不断发展,各种应用程序逐渐成为生活中不可缺少的一部分。而PHP作为一种广泛应用于Web开发的编程语言,在众多应用程序中也扮演着重要的角色。然而,对于PHP代码的安全性,经常被忽视和忽略。对于黑客和攻击者来说,PHP应用程序成为...
    99+
    2023-05-24
    PHP 代码审计 安全漏洞
  • ogg中extract如何拆分
    这篇文章将为大家详细讲解有关ogg中extract如何拆分,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。ogg的extract的拆分方法0.背景OGG 在部署以后,随着业...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作