配置 Oracle 数据库

要配置 Oracle 数据库,请按照以下步骤操作:

  1. 在数据库服务器上创建新的自动登录 wallet。

    注:

    仅当之前未创建 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 文件(在 wallet 目录下)的安全权限,并确保 Oracle 侦听器服务用户对此文件有读取权限。如果没有读取权限,稍后进行 SSL 握手将失败。如果使用不允许登录的建议 Oracle 用户安装 Oracle 数据库,则会出现这种情况。如果使用 Oracle 用户安装 Oracle 数据库,则 TNS 侦听器必须以不同的用户身份运行。

  2. 创建自签名证书并将其加载到 wallet 中
    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 中创建的 wallet。
      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)