Problem
Oracle 的客户端应用如果使用了Open Cursor的机制,会导致在同一个会话的重复的sql指令不能被Guardium记录。
Symptom
Oracle的客户端应用如果使用了Open Cursor的机制,会导致在同一个会话的重复的sql指令不能被Guardium记录
举个例子:
以下三条sql指令在一个会话中执行:
• 1. select * from A; -> Oracle provides the Response packet A
• 2. select * from B; -> Oracle provides the Response packet B
• 3. select * from A; -> Oracle provides the Response packet A
上述三条指令中的第三条指令不会被正常记录,且会发现,第二条指令的响应时间(Response Time)偏大,影响的行数(Records Affected)为第三条指令的影响行数值,
Cause
Guardium无法追踪不对称的,未绑定sql指令的EXEC(FETCH) 请求。
原因是在某些情况下,Oracle的客户端应用在进行重复的sql 请求时,发出的第二条指令的请求不会包含sql信息:
Packet 16030 FROM Client_IP 61926 TO Server_IP 1521 Packet length: 41 0 0 1
00000000 : 00 29 00 00 06 00 00 00 00 00 11 69 39 01 01 00 .).........i9...
00000010 : 00 00 13 00 00 00 03 4e 3a 10 00 00 00 43 00 00 .......N:....C..
00000020 : 00 60 00 00 00 00 00 00 00 .`.......
但是DB会返回这条重复sql的结果。
Environment
Oracle,Open Cursor
Diagnosing The Problem
1 在同一个会话中,重复的sql不能被正常记录
2 某些sql的响应时间偏大和影响行数不正确
Resolving The Problem
该问题属于产品限制
[{"Product":{"code":"SSMPHH","label":"IBM Security Guardium"},"Business Unit":{"code":"BU008","label":"Security"},"Component":"Not Applicable","Platform":[{"code":"PF033","label":"Windows"}],"Version":"10.1.2","Edition":"","Line of Business":{"code":"LOB24","label":"Security Software"}},{"Product":{"code":"SSMPHH","label":"IBM Security Guardium"},"Business Unit":{"code":"BU008","label":"Security"},"Component":" ","Platform":[{"code":"","label":""}],"Version":"","Edition":"","Line of Business":{"code":"LOB24","label":"Security Software"}}]