You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断Oracle 19C传统审计是否记录登录及配置方法

解决Oracle 19C传统审计下成功登录记录缺失及代理追踪问题

一、排查成功登录审计未生成的原因

1. 检查传统审计核心参数

首先确认audit_trail参数设置,传统审计需设置为DB或DB,EXTENDED(后者会记录代理会话ID等细节):

SHOW PARAMETER audit_trail;
  • 若值为OS:成功登录记录会存放在audit_file_dest指定的操作系统目录中,需到对应路径查看日志文件;
  • 若值为NONE:审计功能完全关闭,需修改参数并重启数据库:
ALTER SYSTEM SET audit_trail=DB,EXTENDED SCOPE=SPFILE;
-- 执行后重启数据库生效

2. 显式开启会话审计

传统审计默认不自动记录所有成功登录,需执行以下命令开启:

-- 审计所有用户的成功/失败登录、注销操作
AUDIT SESSION WHENEVER SUCCESSFUL;
AUDIT SESSION WHENEVER NOT SUCCESSFUL;

该命令立即生效,仅对执行后的新会话产生审计记录。

3. 确认查询权限

确保当前查询DBA_AUDIT_TRAIL的用户拥有SELECT ANY DICTIONARY或AUDIT_ADMIN权限,否则可能无法查看完整审计数据:

GRANT SELECT ANY DICTIONARY TO your_user;

二、追踪代理认证的proxy_sessionid

要捕获代理登录的关联信息,需补充以下配置:

  1. 审计代理连接操作:
-- 审计用户通过代理登录的行为
AUDIT PROXY CONNECT ANY USER;
  1. 确保audit_trail=DB,EXTENDED:仅该模式会记录proxy_sessionid字段;
  2. 查询代理相关审计记录:
SELECT username, proxy_sessionid, os_username, terminal, timestamp, action_name
FROM DBA_AUDIT_TRAIL
WHERE action_name IN ('LOGON', 'PROXY CONNECT')
ORDER BY timestamp DESC;

其中PROXY CONNECT对应代理登录动作,proxy_sessionid会关联发起代理的用户会话ID,结合LOGON记录可完整追踪代理链路。

三、额外排查点

  • 检查audit_sys_operations:若该参数为TRUE,sys用户的登录记录会写入操作系统审计文件,而非DBA_AUDIT_TRAIL;
  • 确认审计表空间状态:若表空间已满,审计记录无法写入数据库;
  • RAC环境需统一各节点审计参数,OS审计模式下需分别查看各节点的日志文件。

内容的提问来源于stack exchange,提问作者SeanGaff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 20:37:15