如何oracle服务端监控某些客户端执行的所有SQL语句? 听别人说可以用ip实现,不过我测试了下不行 我的脚本

如何oracle服务端监控某些客户端执行的所有SQL语句? 听别人说可以用ip实现,不过我测试了下不行 我的脚本,第1张

目前来说方法还是很多的例如:

1、开启oracle审计功能(audit)这样可以针对某用户或者某个对象进行所有 *** 作的记录等(具体实施方法我就不详细说明了,百度一下很多的o(∩_∩)o )。

2、开启 *** 作系统级的审计功能,这个需要第三方软件的支持,同样能达到记录所有 *** 作的目的。

3、在网络层面加入监控机,可以监控所有网络数据包的数据信息。

以上都是能达到你的要求的方案,选取哪一种呢还需要看你的设备环境,毕竟审计是需要占用系统资源的,从中找到一个平衡点就好。

1.在Oracle EBS上进行Form跟踪的技术方法:

Oracle EBS的一个Profile 提供此功能:

User_Profile_Option_Name = 登录:审计层(Sign-On:Audit Level)

View_Name = FND_SIGNON_AUDIT_VIEW

此Profile有4个可选值:

‘无’:不跟踪--A

‘用户’:只跟踪到哪个用户登陆

‘职责’:只跟踪到哪个用户以哪个职责登陆

‘表单’:跟踪哪个用户以哪个职责登陆后,运行哪个FORM--D

启用此Profile后,可以在FND_SIGNON_AUDIT_VIEW中查询到相关数据

通过PID或PROCESS_SPID与 v$process/v$session 关联

2.系统Profile设置:登录:审计层

“登录:审计层”允许您选择审计登录至 Oracle 应用产品用户的层,并增加了四个审计层的功能:无、用户、责任和表单。

“无”是默认值,

表示不审计登录到 Oracle 应用产品的任何用户。

在“用户”层的审计线索:

登录至您的系统的用户

用户登录和退出的时间

占用的终端

在“责任”层审计执行了“用户”层审计功能和线索:

责任用户选择

用户使用每个责任的时间量

在“表单”层审计执行了“责任”层审计功能和线索:

用户选择的表单

用户使用每个表单的时间

系统管理员在所有层均可进行查看、更新。

用户无法查看或更改此预置文件选项。

此预置文件选项在全部四个层均可查看和更新。

层 是否可查看 是否允许更新

站点 是 是

应用 是 是

责任 是 是

用户 是 是

此预置文件选项的内部名称为 SIGNONAUDIT:LEVEL。

3.如何监控客制化的Form:

标准功能的Form,都会被只要设定Profile值,都会被监控的;

但是,客制开发的Form,如果想被系统记录其使用情况和使用次数,必须写代码:

在Pre-Form(或者WHEN-NEW-FORM-INSTANCE)正确输入下面语句,就可以记录每次User登录Form的信息(登录时间,次数等)了:

FND_STANDARD.FORM_INFO('$Revision: 120.0 $', 'From_Name', 'Application_Short_Name',

'$Date: 2010/11/02 23:25 $', '$Author: Sam.T $')

例如,Form名称是:XYG_WIP_MOVE_SCH_QY

注册的模组的简称是:XYG

FND_STANDARD.FORM_INFO('$Revision: 120.0 $', 'XYG_WIP_MOVE_SCH_QY', 'XYG',

'$Date: 2010/11/02 23:25 $', '$Author: Sam.T $')

只要User登录这个Form,就会被记录下来,方便以后统计Form的被使用次数等信息。

逻辑是:只要在同一个权限登录一次Form,就会被记录一次。

同时,用DB工具也可以方便查看目前用户使用Form的信息。

例如,我打开一个Form下面这个Form:

(见文档)

Form信息:

(见文档)

4.相关脚本文件:

---记录Form的使用次数:

SELECT A.*, B.FORM_NAME, B.DESCRIPTION

FROM FND_LOGIN_RESP_FORMS A, FND_FORM_VL B

WHERE A.FORM_ID = B.FORM_ID

---实时查看User的使用Form情况:

SELECT * FROM FND_SIGNON_AUDIT_VIEW

---记录相关信息的PKG:FND_SIGNON

-向Form使用次数的表格塞记录:

/*

INSERT INTO FND_LOGIN_RESP_FORMS(LOGIN_ID

,LOGIN_RESP_ID

,FORM_APPL_ID

,FORM_ID

,START_TIME

)

SELECT AUDIT_FORM.LOGIN_ID

,AUDIT_FORM.LOGIN_RESP_ID

,A.APPLICATION_ID

,F.FORM_ID

,SYSDATE

FROM FND_FORM F, FND_APPLICATION A

WHERE F.FORM_NAME = AUDIT_FORM.FORM_NAME

AND F.APPLICATION_ID = A.APPLICATION_ID

AND A.APPLICATION_SHORT_NAME = AUDIT_FORM.FORM_APPLICATION

*/


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11466008.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存