sqlplus / as sysdba報錯ORA-01017: invalid username/password; logon denied

記錄每一次錯誤發表於2019-05-31

客戶現場,有開發人員問我,他使用系統認證沒有用密碼登陸Oracle資料庫,報錯,提示使用者名稱和密碼無效,很疑惑,問我為什麼他使用系統認證會報錯。我登陸他的系統後,首先看他的系統認證是否是開啟的,果然發現他的系統是關閉是作業系統認證功能的,開啟後問題解決。現在總結一下Oracle的密碼檔案及作業系統認證知識點。

今天上班遇到相同的報錯。

一、密碼檔案 

    作用:主要進行dba許可權的認證。 

    位置:

            Linux下的存放位置:$ORACLE_HOME/dbs/orapw$ORACLE_SID

            即:ORACLE_HOME/dbs/orapw<sid>

二、是否作業系統認證 

    決定在兩個引數中 

    1、remote_remote_login_passwordfile 

        位於$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora引數檔案中。

        none:關閉密碼檔案認證。 

        exclusive:開啟密碼檔案認證,自己獨佔使用(預設值)。 

        shared:要密碼檔案認證,不同例項的dba使用者可以共享密碼檔案。 

    2、SQLNET.AUTHENTICATION_SERVICES

        位於$ORACLE_HOME/network/admin/sqlnet.ora 。

        none:關閉作業系統認證,只能密碼認證。 

        all:Linux和AIX系統,開啟作業系統認證,關閉密碼檔案認證,但遠端需要密碼檔案認證。 

        nts:用於Windows平臺開啟作業系統認證。

三、測試

    1、在sqlnet.ora中追加SQLNET.AUTHENTICATION_SERVICES = none,嘗試dba免密登陸。

1
2
3
4
5
6
7
8
9
        [ora122@enmodb1 admin]$ sqlplus /  as   sysdba
     SQL*Plus: Release 12.2.0.1.0 Production  on   Fri Mar 1 23:49:34 2019
     Copyright (c) 1982, 2016, Oracle.   All   rights reserved.
     ERROR:
     ORA-01017: invalid username/ password ; logon denied
    
     Enter  user - name
     ERROR:
     ORA-01017: invalid username/ password ; logon denied

    2、將 SQLNET.AUTHENTICATION_SERVICES =all,再次嘗試dba使用者免密登陸。

1
2
3
4
5
6
         [ora122@enmodb1 admin]$ sqlplus /  as   sysdba
         SQL*Plus: Release 12.2.0.1.0 Production  on   Fri Mar 1 23:52:25 2019
         Copyright (c) 1982, 2016, Oracle.   All   rights reserved.
         Connected  to :
         Oracle  Database   12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
         SYS@ora122>

        或者註釋掉也可以,預設是採用作業系統認證的。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31546994/viewspace-2637352/,如需轉載,請註明出處,否則將追究法律責任。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31547066/viewspace-2646296/,如需轉載,請註明出處,否則將追究法律責任。

相關文章