ORA-01017: 無效的使用者名/密碼;除了 sys 使用者、Oracle Database 12c 之外,其他使用者無法登錄?
我已經在本地機器上設置了 Oracle Database 12c。它最初工作正常,但現在我無法登錄到除了 sys 使用者之外的使用者帳戶。我更改了使用者的密碼並嘗試使用SQLPlus和SQL DEVELOPER登錄。
ALTER USER XYZ IDENTIFIED BY XYZ;
我還檢查了設置為FALSE的參數****SEC_CASE_SENSITIVE_LOGON。我試圖連接的使用者是在可插入數據庫中創建的,即orclpdb,它們確實存在於可插入數據庫中。我只能登錄到可插拔數據庫的sys使用者和root。使用者名和密碼是正確的,我不知道為什麼預言機的行為很奇怪。
為什麼
SEC_CASE_SENSITIVE_LOGON
設置為假?這在 12c 中已棄用。這是我多次遇到的已知問題。Oracle Database 12c 第 2 版 (12.2) 預設身份驗證協議為 12(獨占模式)。此協議需要區分大小寫的密碼進行身份驗證。如果您有早期版本的密碼版本,請查看您的選項。
從 Oracle Database 12c 第 2 版 (12.2) 開始,SQLNET.ORA 參數 ALLOWED_LOGON_VERSION_SERVER 的預設值更改為 12。此參數是指用於伺服器的登錄身份驗證協議,而不是 Oracle 數據庫版本。
預設情況下,Oracle 不再支持不區分大小寫的基於密碼的身份驗證;僅允許使用新密碼版本(11G 和 12C)。不再生成不區分大小寫的 10G 密碼版本。
…
如果滿足以下條件,則您的帳戶可能在升級到 12.2 後無法登錄數據庫:
您正在升級具有在早期 Oracle 數據庫版本中創建的使用者帳戶的伺服器。
在早期版本中創建的使用者帳戶使用早期版本身份驗證協議中的不區分大小寫的密碼版本,例如 10G 密碼版本。
早期版本的使用者帳戶沒有重置密碼。
伺服器已配置 SEC_CASE_SENSITIVE_LOGON 設置為 FALSE,因此它只能驗證具有 10G 不區分大小寫密碼版本的使用者。
…
僅使用 10G 密碼版本的帳戶的伺服器選項
升級到 Oracle Database 12c 第 2 版 (12.2) 後,完成以下過程以啟用使用 10G 密碼版本的帳戶:
以管理員身份登錄。
編輯 SQLNET.ORA 文件以將 SQLNET.ALLOWED_LOGON_VERSION_SERVER 設置從預設值 12 更改為 11 或更低。例如:
SQLNET.ALLOWED_LOGON_VERSION_SERVER=11
更改為更寬鬆的 SQLNET.ALLOWED_LOGON_VERSION_SERVER 設置後,使使用者的密碼過期以要求他們更改密碼。有關詳細資訊,請參閱 Oracle 數據庫安全指南。