有没有办法在Java中记录Oracle登录失败的用户名?

有没有办法在Java中记录Oracle登录失败的用户名?,java,oracle,spring-mvc,tomcat,error-handling,Java,Oracle,Spring Mvc,Tomcat,Error Handling,我们有许多开发环境和一个应用程序,在每个环境中打开20多个数据库登录 每次有人误解应用程序时,我们都会得到一个日志条目,上面简单地说: java.sql.SQLException: ORA-01017: invalid username/password; logon denied 这种情况经常发生,如果Spring框架、Oracle或apachetomcat都可以配置为报告无法登录的用户名,这将极大地简化工作 这通常发生在应用程序启动期间,当Spring为应用程序连接bean时,所以我不确定

我们有许多开发环境和一个应用程序,在每个环境中打开20多个数据库登录

每次有人误解应用程序时,我们都会得到一个日志条目,上面简单地说:

java.sql.SQLException: ORA-01017: invalid username/password; logon denied
这种情况经常发生,如果Spring框架、Oracle或apachetomcat都可以配置为报告无法登录的用户名,这将极大地简化工作

这通常发生在应用程序启动期间,当Spring为应用程序连接bean时,所以我不确定我们的代码(例如,自定义错误页)是否可用


任何人对如何做到这一点有什么好主意吗?

在数据库级别,您可以启用审核跟踪来记录所有登录详细信息。可以通过将
audit\u trail
参数设置为true来完成

show parameter audit_trail
一旦为不成功登录启用,所有失败的登录尝试将被定向到数据库审核跟踪
SYS.AUD$
表。您可以查询
dba\u audit\u trail
以获取详细信息:

select 
   os_username,
   username,
   terminal,
   to_char(timestamp,'MM-DD-YYYY HH24:MI:SS')
from
   dba_audit_trail;

在数据库级别,您可以启用审核跟踪来记录所有登录详细信息。可以通过将
audit\u trail
参数设置为true来完成

show parameter audit_trail
一旦为不成功登录启用,所有失败的登录尝试将被定向到数据库审核跟踪
SYS.AUD$
表。您可以查询
dba\u audit\u trail
以获取详细信息:

select 
   os_username,
   username,
   terminal,
   to_char(timestamp,'MM-DD-YYYY HH24:MI:SS')
from
   dba_audit_trail;

这可能是我们必须要做的。考虑到应用程序端的所有初始化都发生在Spring和Tomcat代码中,我们必须(呃)分叉该代码才能进行此日志记录。我不想那样做。谢谢你提供的信息!这可能是我们必须要做的。考虑到应用程序端的所有初始化都发生在Spring和Tomcat代码中,我们必须(呃)分叉该代码才能进行此日志记录。我不想那样做。谢谢你提供的信息!