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 인증 실패 오류가 발생하는 경우 Doc 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)