sql >> データベース >  >> RDS >> Oracle

Oracleデータベースリンク-ユーザー名に特殊文字を使用してプロキシに接続します

    これは、特殊文字の有無にかかわらず機能するはずです。これは11.2.0.3にあり、最初は次のものがありません:

    CREATE USER "AUSER" IDENTIFIED BY "a";
    CREATE USER bar IDENTIFIED BY "random-trash";
    ALTER USER bar GRANT CONNECT THROUGH "AUSER";
    GRANT CREATE SESSION TO "AUSER";
    GRANT CREATE SESSION TO "BAR";
    
    CREATE PUBLIC DATABASE LINK dbl CONNECT TO "AUSER[BAR]" IDENTIFIED BY "a" using 'MYDB';
    SELECT * FROM [email protected];
    
    D
    -
    X
    

    そして:

    CREATE USER "A-USER" IDENTIFIED BY "a";
    CREATE USER foo IDENTIFIED BY "random-trash";
    ALTER USER foo GRANT CONNECT THROUGH "A-USER";
    GRANT CREATE SESSION TO "A-USER";
    GRANT CREATE SESSION TO "FOO";
    
    DROP PUBLIC DATABASE LINK dbl;
    CREATE PUBLIC DATABASE LINK dbl CONNECT TO "A-USER[FOO]" IDENTIFIED BY "a" using 'MYDB';
    SELECT * FROM [email protected];
    
    D
    -
    X
    

    どちらも11.2.0.4では機能しません。特殊文字の有無にかかわらず、エラーが発生します:

    select * from [email protected]
                       *
    ERROR at line 1:
    ORA-01017: invalid username/password; logon denied
    ORA-02063: preceding line from DBL
    

    11.2.0.4以降を使用している場合は、バグ19191702が発生している可能性があります。このバグは、データベースリンクを介してプロキシ機能を破壊しているようです。詳細については、MOSノート19191702.8を参照してください。ただし、これはバグではなく意図的な新しい動作のようであり、これが機能した古い動作は正しくないと説明されています。

    動作を元に戻す特定のイベントを設定できるようにするために利用できるパッチがあるかもしれません(そしてそれはおそらく12.2で利用可能です)が、「[古い]誤った動作に依存する既存のアプリケーションが仕事"。プラットフォームとバージョンのパッチがない場合、またはイベントが役に立たない場合は、サービスリクエストを発行する必要があります。もちろん、1つ上げる価値があるかもしれません。




    1. SQL SELECTステートメントで会計年度を計算しますか?

    2. ORDERBYで更新

    3. EF CoreのPostgreSQLの列の正規表現を一致させる方法は?

    4. MySQLは大きなデータベースから重複をすばやく削除します