ORACLE 12 CのORA-01017

2358 ワード

ORACLE 12 CのORA-01017
Table of Contents
  • 1. エラーメッセージ
  • 2. ぶんせき
  • 2.1. sqlplus環境ログイン
  • 2.2. 暗号化解析エラー
  • 2.3. プログラム構成が条件を満たさない

  • 1エラーメッセージ
    この問題は、sqlplusコマンドにおいても、プログラム接続においても発生する可能性があります.特に、データベースのアップグレード後、または古いプログラムが新しくインストールされたOracle 12 C以降のバージョンのデータベースに接続される可能性があります.基本的にこの問題に直面します.
    ORA-01017:invalid username/password; logon denied
    

    2分析
     
    2.1 sqlplus環境ログイン
    oracle 12 C以降、データベースはcontainerとpdbの2つのレベルに分かれている.Containerでユーザーを構築するのはpdbでユーザーを構築するのとは違います.Containerでユーザーを作成するには、'C####で始まる必要があります.次のようになります.
    SQL> create user test identified by test;
    create user test identified by test
                *
    ERROR at line 1:
    ORA-65096: invalid common user or role name
    
    
    SQL> create user C##test identified by test;
    
    User created.
    

    pdbでユーザーを構築するには、次の必要はありません.
    SQL> alter session set container=amscenter;
    
    Session altered.
    
    SQL> create user test identified by test;
    
    User created.
    
    

    このような場合、まず確認しなければならないのは、cdbかpdbかです.
  • cdbログインcdbログインcdbは、ユーザー名の前にC#::
    SQL> grant connect,resource to c##test;
    
    Grant succeeded.
    
    SQL> conn c##test/test;
    Connected.
    
  • を付ける.
  • pdb登録pdb登録pdbには、tnsnameを使用する方法と、現在の環境をpdbに切り替える方法の2つがあります.
    2.2暗号化解析エラー
    Oracleのパスワードの暗号化方法は、データベース・バージョンによって異なります.12 C以降の暗号化方式では、低バージョン駆動で提供された暗号化されたパスワードを認識できません.これについては、後でもう1編整理します.
    この場合、データベースのレベルで次の操作を行う必要があります.
  • 第一歩:sqlnet.を修正する.ora、次の2つのパラメータを追加します:
    --   tns       
    SQL> conn scott/tiger@pdbboss
    Connected.
    --   
    sqlplus test/test@amscenter
    
  • 2.3プログラム構成が条件を満たさない
    プログラムがデータベースに接続する場合、一般的には接続列を構成します.接続列には2つの構成方法があります.
  • TNS接続列
    SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
    SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
    
    -    :      ,             。
      #+BEGIN_EXAMPLE
    alter user &username identified by &password;
    
    注意、ここで最後のパラメータはSERVICE_NAME、sidではありません.
  • 簡易接続列
    (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ai-csc-00)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = amscenter)))
    
    最後に/+service_名前、一部のプログラムの元の構成ではこのようなフォーマットではありません.例えば、Ip:port:sid.ロー・バージョンのデータベースでは問題ありませんが、12 C以降のデータベースに接続するとORA-01017エラーが発生します.

  • Author: halberd.lee
    Created: 2020-06-10 Wed 17:34
    Validate