【Oracle Database】パスワード更新してもDBリンクが切れないようにする

とりあえずで書いてます。雑過ぎるのでイラスト等追加しようと思ってます。

結論

とりあえずの結論ですが、DBリンク作成時に「CONNECT TO 句」を指定しない事です。

接続先ユーザーとパスワードは一致している必要はあります。

-- DBリンク作成でよくあるSQL
CREATE DATABASE LINK
    [DBリンク名]
CONNECT TO
    [ユーザー名] IDENTIFIED BY [パスワード]
USING
    [接続先DB情報];

-- CONNECT TO 句を省略する
CREATE DATABASE LINK
    [DBリンク名]
USING [接続先DB情報];

背景

データベースのユーザーのパスワード変更後にDBリンクが使えなくなりまして….
その対策となります。(Oracle → Oracleです)

原因はDBリンク作成時にユーザーのパスワードを埋め込んでいた為、埋め込んだパスワードと変更後のパスワードが不一致となり、使えなくなる。というものです。

現在進行形で対策中ですので、リスクや仕様についてまだ分かっていない事が多いです。

参考

情報は下記から得ました!
簡単に言えば、DBリンクは3つの作成パターンがあり、「CONNECT TO句」を省略すると接続してるユーザーの情報でリンク先にアクセスする。という事ですねー。

Oracle公式ドキュメント

Specify PUBLIC to create a public database link visible to all users. If you omit this clause, then the database link is private and is available only to you.

The data accessible on the remote database depends on the identity the database link uses when connecting to the remote database:

  • If you specify CONNECT TO user IDENTIFIED BY password, then the database link connects with the specified user and password.
  • If you specify CONNECT TO CURRENT_USER, then the database link connects with the user in effect based on the scope in which the link is used.
  • If you omit both of those clauses, then the database link connects to the remote database as the locally connected user.
https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/CREATE-DATABASE-LINK.html?utm_source=chatgpt.com

コメント

タイトルとURLをコピーしました