Weblogic 通过命令行变更数据源密码

起因

DBA通知数据库变更,对AdaminServer、服务进程kill -9后再启动,因密码错误重复连接数据库,导致锁用户。

解决方式

因应用无法顺利启动,就没办法通过weblogic控制台进行修改,只能另辟蹊径,看看能不能通过配置进行修改。

进行查找,在domain下的config/jdbc目录下,找到的数据源的配置信息。

<?xml version='1.0' encoding='UTF-8'?>
<jdbc-data-source xmlns="http://xmlns.oracle.com/weblogic/jdbc-data-source" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle
.com/weblogic/jdbc-data-source http://xmlns.oracle.com/weblogic/jdbc-data-source/1.2/jdbc-data-source.xsd">
  <name>cdg</name>
  <jdbc-driver-params>
    <url>XXX</url>
    <driver-name>oracle.jdbc.OracleDriver</driver-name>
    <properties>
      <property>
        <name>user</name>
        <value>XXX</value>
      </property>
    </properties>
    <password-encrypted>{AES}CpFWUeoG1iGpaJJBh2ufw1sgg6420y3Q0iNhd/pcGAE=</password-encrypted>
  </jdbc-driver-params>
  <jdbc-connection-pool-params>
    <test-table-name>SQL SELECT 1 FROM DUAL</test-table-name>
  </jdbc-connection-pool-params>
  <jdbc-data-source-params>
    <jndi-name>XXX</jndi-name>
    <global-transactions-protocol>OnePhaseCommit</global-transactions-protocol>
  </jdbc-data-source-params>
</jdbc-data-source>

发现标签内容明显为数据库密码,但是经过加密。

搜索发现weblogic提供了weblogic.jar进行明文加密。

将weblogic.jar移动到domains根目录下,再执行一下命令:

java -cp weblogic.jar weblogic.security.Encrypt 密码

再更新到标签内,重启后完成密码更新。

后记

在操作中发现几处需要重点注意的问题

  1. weblogic.jar可以在系统根目录下全局搜索,但是一般存放在:~/weblogic/Oracle/Middleware/wlserver_xxx/server/lib/
  2. weblogic.jar一定要放在domains下的项目目录下,例如:~/weblogic/Oracle/Middleware/user_projects/domains/XXX
    放在config下或者其他目录下使用无效。
  3. weblogic.jar应该也可以修改weblogic控制台密码(未经过验证)。
  4. 在修改密码时,如果密码复杂度高,出现一些符号,需要用单引号(')进行包裹,否则报错。
  5. weblogic控制台可以测试数据源是否生效。

巨人的肩膀

【weblogic】数据源数据库密码变化如何修改config内的jdbc密码串_weblogic本地修改数据源密码

weblogic后台通过配置文件修改jdbc数据源密码_weblogic数据库配置文件

posted @ 2025-04-17 08:48  疯狂马铃薯  阅读(114)  评论(0)    收藏  举报