是否可以在Oracle JDBC诊断跟踪中隐藏用户密码?

问题描述 投票:2回答:1

启用Oracle JDBC诊断跟踪时(使用ojdbc8_g.jar),结果跟踪输出将以明文形式显示连接用户的密码。是否可以配置诊断功能,以便不记录密码?

示例输出:

527 [10/29/19 14:00:09:770 AEST] 000001f1 id=00000000 oracle.jdbc.pool.OracleDataSource 3 getPhysicalConnection 1FF949C5 Enter: {user=oracle_user, password=passw0rd, connection_url=jdbc:oracle:thin:@//10.0.0.26:1521/TESTDB}

oracle ojdbc
1个回答
0
投票

是否可以在Oracle JDBC诊断跟踪中隐藏用户密码?是的,但是只能通过严格限制跟踪中的内容,包括不将SQL文本放入跟踪中。不是说禁用跟踪,而是限制要跟踪的内容。

在最新版本(18c或更早的版本)中,Oracle JDBC不会故意在跟踪文件中放置密码。 但是,当驱动程序不知道数据是密码时,它的确将密码放入了跟踪文件。最明显的例子是SQL文本。驱动程序在许多地方都将SQL文本放入跟踪文件中。但是SQL文本可以包含密码:ALTER USER ... IDENTIFIED BY ...。驱动程序不知道SQL文本包含密码。还有许多其他路径将密码添加到跟踪文件,但是驱动程序不知道特定的值是密码,例如字符集转换。

© www.soinside.com 2019 - 2024. All rights reserved.