首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 密碼含特殊字元(@)導致登入失敗的解決方案

     編輯:Oracle 資料庫相關知識

當 Oracle 使用者密碼包含 @ 符號時,使用 sqlplus user/pass@tns 格式登入會被解析錯誤:@ 後內容被視為連線識別符,導致 ORA-12154 或 ORA-12541。

問題重現

-- 密碼為 123@456
sqlplus system/123@456@orcl
-- 實際解析為:user=system, password=123, host=456@orcl → 連線失敗

各平台正確轉義寫法

平台正確語法範例(密碼 oracle@1,服務名 sun)
Linux/Unix 單引號包「用戶名/\"密碼\"」@服務名 sqlplus 'wang/"oracle@1"'@sun
Windows 用戶名/"""密碼"""@服務名(三組雙引號) sqlplus wang/"""oracle@1"""@sun

最佳實踐建議

  1. 避免密碼使用 @:從源頭消除解析歧義。
  2. 若必須保留,請改用互動式輸入密碼:
    sqlplus system@orcl → 提示輸入密碼時直接鍵入 123@456,無轉義問題。
  3. 或使用 / as sysdba 登入後 ALTER USER system IDENTIFIED BY "newpass"; 修改密碼移除特殊字元。

補充:其他特殊字元

$、#、&、! 等在 Shell 中亦有特殊含義,建議同樣採用互動式輸入或單引號包裹。

記住:互動式輸入最安全、最通用,免去平台差異煩惱。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved