Oracle

在 11g sqlnet.ora 文件中使用 SQLNET.ALLOWED_LOGON_VERSION_SERVER 安全嗎?

  • December 6, 2018

我有一個在同一台伺服器上同時執行 11g 和 12c 數據庫的混合環境。我們的一個數據庫最近升級到了 12c,由於使用了舊的身份驗證協議,舊的 Oracle 客戶端開始在連接嘗試時拋出 ORA-28040 錯誤。

在數據庫伺服器上,每個實例都安裝在單獨的 Oracle Home 中,並帶有自己的 Oracle 軟體。每個 ORACLE_HOME/network/admin 目錄中的 sqlnet.ora 文件已創建為指向共享 NFS 磁碟上中央 sqlnet.ora 文件的符號連結。

我想使用中央 sqlnet.ora 文件中的 SQLNET.ALLOWED_LOGON_VERSION_SERVER 參數來允許來自舊客戶端的連接,直到它們可以升級。我擔心的是:如果該參數僅受 12c 支持,我需要確保包含它不會導致與 11g 數據庫的連接出現問題。在 11g 數據庫的 sqlnet.ora 文件中包含這個參數是否安全?它會被忽略嗎?

該參數也存在於 11g 中。這是 11g 文件:

SQLNET.ALLOWED_LOGON_VERSION

允許值

  • 12 用於關鍵更新檔更新 CPUOct2012 及更高版本的 Oracle Database 11g 身份驗證協議(推薦)
  • 11 用於 Oracle 數據庫 11g 身份驗證協議
  • 10 用於 Oracle 數據庫 10g 身份驗證協議
  • 9 用於 Oracle9i 數據庫身份驗證協議
  • 8 用於 Oracle8i 數據庫身份驗證協議(預設)

此參數還與保存密碼的格式有關。以及更改密碼時會生成哪些類型的密碼雜湊。恕我直言,您應該避免以原始 10g 格式儲存密碼,如下所示:

SQL> select username, PASSWORD_VERSIONS from dba_users;

USERNAME                       PASSWORD_VERSIONS
------------------------------ -----------------
SYS                            10G 11G 12C

引用自:https://dba.stackexchange.com/questions/224217