Oracle客户端连接12c以上报ORA-28040和ORA-01017 的解决方法

ORA-28040

  • 报错ORA-28040: No matching authentication protocol

    按照官方说法在服务端sqlnet.ora下需要添加如下参数。
    SQLNET.ALLOWED_LOGON_VERSION_CLIENT
    SQLNET.ALLOWED_LOGON_VERSION_SERVE

  • 解决

    1. 查询sqlnet.ora文件
    cd $ORACLE_HOME/network/admin/
    
    1. 编辑上述文件,加入以下内容(如果上述路径没有该文件,新增)
    vim sqlnet.ora
    
    SQLNET.ALLOWED_LOGON_VERSION=8
    SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
    SQLNET.ALLOWED_LOGON_VERSION_SERVE=10
    

    注意:参数和等号之间不要有空格,否则有可能参数不生效。
    这里的n默认为11. 第一个参数是客户端连接到服务器的时候启作用,第二个是做为客户端去连接其它数据库的时候启作用。
    3.修改后使用reload 监听

    [oracle@yxwzgdb /u01/app/oracle/product/19c/db19c/network/admin]$ lsnrctl
    
    LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 07-APR-2021 14:33:49
    
    Copyright (c) 1991, 2019, Oracle.  All rights reserved.
    
    Welcome to LSNRCTL, type "help" for information.
    
    
    LSNRCTL> reload
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=zgdb-139)(PORT=1521)))
    The command completed successfully
    LSNRCTL> exit
    

ORA-01017

  • oracle密码版本写入的时候使用的时11g和12c配置的规则,导致正确密码也无法通过验证。修改密码即可。
    alter user 用户名 identified by 密码;
    

posted @ 2021-04-07 14:53  Ziff  阅读(947)  评论(0)    收藏  举报