【发布时间】:2017-02-10 01:51:41
【问题描述】:
我正在用 java 开发一个项目,以显示我的 Oracle 11g 数据库中发生的所有事情。为此,我开始使用 XML 格式的 Audit Trail,因为我想在我的网络中使用它。
我创建了一个用户来试试这个。但我的问题是 xml 文件中的时间戳错误,我需要它来检查连接时间等。
<?xml version="1.0" encoding="UTF-8"?>
<Audit xmlns="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail- 11_2.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd">
<Version>11.2</Version>
<AuditRecord><Audit_Type>1</Audit_Type><Session_Id>1260546</Session_Id><StatementId>1</StatementId><EntryId>1</EntryId><Extended_Timestamp>2016-10-01T15:59:47.473000Z</Extended_Timestamp><DB_User>CC</DB_User><OS_User>Admin-PC\Admin</OS_User><Userhost>WORKGROUP\ADMIN-PC</Userhost><OS_Process>1780:2512</OS_Process><Terminal>ADMIN-PC</Terminal><Instance_Number>0</Instance_Number><Action>100</Action><TransactionId>0000000000000000</TransactionId><Returncode>0</Returncode><Comment_Text>Authenticated by: DATABASE</Comment_Text><Priv_Used>5</Priv_Used><DBID>1434098587</DBID>
</AuditRecord>
<AuditRecord><Audit_Type>1</Audit_Type><Session_Id>1260546</Session_Id><EntryId>2</EntryId><Extended_Timestamp>2016-10-01T15:59:50.798000Z</Extended_Timestamp><DB_User>CC</DB_User><OS_User>Admin-PC\Admin</OS_User><Userhost>WORKGROUP\ADMIN-PC</Userhost><Terminal>ADMIN-PC</Terminal><Instance_Number>0</Instance_Number><Action>101</Action><Returncode>0</Returncode><DBID>1434098587</DBID>
</AuditRecord>
</Audit>
这里的时间戳设置为 15:59,但在我的时区应该是 17:59 (UTC+01:00)。然后我尝试了这个语句来检查时区,奇怪的是它是正确的时间。
SELECT db_user, extended_timestamp, action FROM v$xml_audit_trail WHERE db_user='CC' ORDER BY extended_timestamp DESC;
DB_USER EXTENDED_TIMESTAMP ACTION
CC 01.10.16 17:59:50,798000 +02:00 101
有人知道如何为 xml 格式设置正确的时区吗?
提前致谢!
【问题讨论】:
-
这可能应该在DBA StackExchange 网站上询问,因为它不是立即关于编程,而是关于 db setup/config/settings。
-
15:59(UTC 时间)+ 1 小时是 16:59 - 不是 17:59!
标签: java xml oracle oracle11g audit-trail