暂无图片
Oracle-19c版本 如何查看口令试错的客户端IP?
我来答
分享
水羽
2022-05-10
Oracle-19c版本 如何查看口令试错的客户端IP?

假设有人在猜测数据库用户口令,用不同的口令在做登录数据库的尝试,由于数据库里开启了口令连续输错10次就会自动锁定对应数据库用户的策略,所以此时用户就被锁。如果此时要追踪是哪个客户端IP发起的口令试错,在Oracle-11gR2版本里,我通常是用以下语句来查:

select sessionid,userid,userhost,comment$text,spare1 client_osuser,to_char(ntimestamp#+1/3,'yyyy-mm-dd hh24:mi:ss') time from aud$ order by ntimestamp# desc

输出结果如下:


在【comment$text】这一列中,能看到类似如下信息:

Authenticated by: DATABASE; Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.55.68)(PORT=53049))

这样就能知道是谁在做口令试错。

但是我在Oracle-19c版本里(19.12.0.0),用同样的方法查询,得到的结果如下图:


发现【comment$text】这一列的值全都是空的,无论是在CDB层面,还是在PDB层面,查出来这列的结果值都是空的。

那么问题来了:在Oracle-19c里,我该怎么查这个口令试错的客户端IP?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
JiekeXu
暂无图片

这个和你的数据库版本没有关系吧,是不是你的 19c 环境就没有开启审计功能呢?
检查一下参数 audit_trail

SQL> show parameter audit_trail

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
audit_trail			     string	 NONE

如果审计开启 DB 级别,COMMENT$TEXT 是有值的,但也要空值,如下:。

> show parameter audit_trail

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_trail                          string      DB

> select comment$text,to_char(ntimestamp#+1/3,'yyyy-mm-dd hh24:mi:ss') time from aud$ where rownum<=3;

COMMENT$TEXT                                                                                                             TIME
------------------------------------------------------------------------------------------------------------------------ -------------------
Authenticated by: DATABASE; Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.0.XX.XX)(PORT=50508))                      2019-04-03 17:14:41
Authenticated by: DATABASE; Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.0.XX.XX)(PORT=50509))                      2019-04-03 17:14:41
                                                                                                                         2019-04-03 17:14:45
暂无图片 评论
暂无图片 有用 0
水羽
题主
2022-05-11
我数据库的审计级别参数值如下:audit_sys_operations = TRUE / audit_trail = DB 都是这版本的默认值,但【comment$text】这一列查出来仍然全是空值。
水羽
题主
2022-05-11
卧槽,我知道答案了:19C版本里,要改从这里查:AUDSYS.AUD$UNIFIED
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏