設定 Oracle 資料庫

若要設定 Oracle 資料庫,請執行以下步驟:

  1. 在資料庫伺服器上建立新的自動登入公事包。

    註:

    僅當先前未建立過 Oracle Wallet 時,才需要執行這些步驟。如果在資料庫伺服器上使用 GUI Oracle Wallet 工具,則不需要執行下列步驟。
    C:\> cd %ORACLE_HOME%
    C:\oracledb\12.1.0\home> mkdir wallet
    C:\oracledb\12.1.0\home> orapki wallet create -wallet wallet -pwd password1 -auto_login
    您可以忽略任何提示您在 orapki 命令行上使用 -auto_login_local 的訊息。如果您遇到 SSL 驗證失敗錯誤,請參閱文件 ID 2238096.1 以排解此問題。

    此外,檢查檔案 cwallet.sso (在公事包目錄下) 的安全性權限,並確保 Oracle 監聽程式服務使用者具有此檔案的讀取權限。如果沒有讀取權限,SSL 交握將在稍後失敗。如果 Oracle 資料庫與建議的 Oracle 使用者一起安裝,而該使用者不被允許登入,則會出現此情況。如果 Oracle 資料庫與 Oracle 使用者一起安裝,則必須以其他使用者身分執行 TNS 監聽程式。

  2. 建立自簽憑證並將它載入公事包
    C:\oracledb\12.1.0\home> orapki wallet add -wallet wallet -pwd password1 -dn "CN={FQDN of db server}" -
    keysize 1024 -self_signed -validity 3650

    在上方的範例中,密碼 password1 必須與步驟 1 中指定的密碼相符。

  3. 匯出新建立的自簽憑證
    C:\oracledb\12.1.0\home> orapki wallet export -wallet wallet -pwd password1 -dn "CN={FQDN of db server}"
    -cert %COMPUTERNAME%-certificate.crt
  4. 將匯出的 Base64 憑證檔案複製到 HFM 伺服器。
  5. 設定 SQL*NET 和 TNS 監聽程式:
    1. 識別資料庫伺服器上未使用的連接埠。下方的範例在連接埠 1522 上建立新的監聽程式。用於 SSL 連線的典型連接埠是 2484,您可以使用任何可用的連接埠。您必須檢查要使用的連接埠在資料庫伺服器上是否可用,才能繼續進行並視需要調整。
    2. 更新 SQLNET.ORA。WALLET_LOCATION 宣告的 DIRECTORY 元素必須指向在上述步驟 1 中建立的公事包。
      SQLNET.AUTHENTICATION_SERVICES= (TCPS, NTS, BEQ)
      NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
      WALLET_LOCATION=
      (SOURCE =
      (METHOD = FILE)
      (METHOD_DATA =
      (DIRECTORY = C:\oracledb\12.1.0\home\wallet)
      )
      )
      SSL_CLIENT_AUTHENTICATION = FALSE
    3. 更新 LISTENER.ORA 以定義新的監聽程式。使用在上述 步驟 5a 中識別的連接埠。
      SID_LIST_LISTENER =
      (SID_LIST =
      (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\oracledb\12.1.0\home)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\oracledb\12.1.0\home\bin\oraclr12.dll")
      )
      )
      SSL_CLIENT_AUTHENTICATION = FALSE
      WALLET_LOCATION=
      (SOURCE =
      (METHOD = FILE)
      (METHOD_DATA =
      (DIRECTORY = C:\oracledb\12.1.0\home\wallet)
      )
      )
      LISTENER =
      (DESCRIPTION_LIST =
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = myServer)(PORT = 1521))
      )
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCPS)(HOST = myServer)(PORT = 1522))
      )
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      )
      )
      ADR_BASE_LISTENER = C:\oracledb
    4. TNSNAMES.ORA 中建立新的連接埠項目。
      ORCL_SSL =
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCPS)(HOST = myServer)(PORT = 1522))
      (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = myServer_service)
      )
      )

      您必須指定在上述步驟 5a 中識別並在步驟 5c 中使用的相同連接埠。

    5. 重新啟動 TNS 監聽程式。
      C:\oracledb\12.1.0\home>lsnrctl stop
      C:\oracledb\12.1.0\home>lsnrctl start
    6. 驗證新的 TNS 監聽程式是否正常運作
      C:\oracledb\12.1.0\home>tnsping orcl_ssl
      TNS Ping Utility for 64-bit Windows: Version 12.1.0.2.0 - Production on 10-SEP-2019 15:43:22
      Copyright (c) 1997, 2014, Oracle. All rights reserved.
      Used parameter files:
      C:\oracledb\12.1.0\home\network\admin\sqlnet.ora
      Used TNSNAMES adapter to resolve the alias
      Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCPS)(HOST = myServer)
      (PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = myServer_service)))
      OK (130 msec)