5 sqlnet.oraファイルのパラメータ

この章では、sqlnet.oraファイルのパラメータについて説明します。

5.1 プロファイル構成ファイルの概要

プロファイル構成ファイルについて学習します。

sqlnet.oraファイルは、Net Servicesのプロファイル構成ファイルです。sqlnet.oraファイルは、クライアントとデータベースに存在します。プロファイルは、このファイルを使用して保存および実装します。また、sqlnet.oraファイルのアクセス制御パラメータでデータベースを構成することもできます。こうしたパラメータによって、クライアントにデータベースへのアクセスを許可するかどうかを指定します(このアクセスはパラメータの設定に基づいて許可または拒否されます)。

sqlnet.oraファイルを使用すると、次のことが可能になります。

  • クライアントのドメインを指定して未修飾名に追加
  • ネーミング・メソッドの優先順位付け
  • ロギング機能およびトレース機能の有効化
  • 特定のプロセスを通じてのルート接続
  • 外部ネーミングのパラメータの構成
  • Oracle Advanced Securityの構成
  • プロトコル固有パラメータを使用したデータベースへのアクセスの制限
Oracle Netは、次の場所で、次の順序でsqlnet.oraファイルを検索します。
  • TNS_ADMIN環境変数で指定されたディレクトリ(設定されている場合)。
  • ORACLE_BASE_HOME/network/adminディレクトリ内。
  • ORACLE_HOME/network/adminディレクトリ内。

ノート:

  • sqlnet.oraファイルの設定は、マルチテナント・コンテナ・データベース環境内のすべてのプラガブル・データベース(PDB)に適用されます。

  • Oracle Net Servicesでは、sqlnet.oraのIFILEパラメータを、3段階までのネスト・レベルでサポートします。パラメータは、手動でファイルに追加されます。この構文の例を次に示します。

    IFILE=/tmp/listener_em.ora
    IFILE=/tmp/listener_cust1.ora
    IFILE=/tmp/listener_cust2.ora 
    

    詳細は、『Oracle Databaseリファレンス』を参照してください。

  • Oracle Instant Clientでは、sqlnet.oraファイルはOracle Instant Clientソフトウェアのサブディレクトリにあります。たとえば、/opt/oracle/instantclient_release_number/network/adminディレクトリなどです。

  • 読取り専用Oracleホーム・モードでは、sqlnet.oraファイルのデフォルトの場所は、ORACLE_BASE_HOME/network/adminです。

  • 読取り専用のOracleホーム・モードでは、パラメータはデフォルトでORACLE_BASE_HOMEの場所に格納されています。

5.2 sqlnet.oraファイルのプロファイル・パラメータ

これらは、データベース・クライアントおよびサーバーの管理に使用するsqlnet.oraプロファイル構成パラメータです。

ノート:

Oracle Database 23ai以降、パラメータENCRYPTION_WALLET_LOCATIONはサポートされなくなりました。

TDEウォレットを保存および取得するには、WALLET_ROOT構造体(Oracle Database 18cで導入)を使用します。

WALLET_ROOTパラメータについては、Oracle Database透過的データ暗号化ガイドで説明しています。

5.2.1 ACCEPT_MD5_CERTS

sqlnet.oraのプロファイル・パラメータACCEPT_MD5_CERTSによってMD5署名付き証明書を受け入れます。

用途

sqlnetがMD5署名付き証明書を受け入れるようにします。sqlnet.oraに加えて、このパラメータはlistener.oraでも設定する必要があります。

デフォルト

FALSE

  • TRUE MD5署名付き証明書を受け入れる場合

  • FALSE MD5署名付き証明書を受け入れない場合

5.2.2 ACCEPT_SHA1_CERTS

sqlnet.oraのプロファイル・パラメータACCEPT_SHA1_CERTSは、SQL NetがSHA1署名付き証明書を受け入れるかどうかを決定するために使用します。

用途

sqlnetがSHA1署名付き証明書を受け入れるかどうかを決定します。このパラメータは、sqlnet.oraで設定した上で、listener.oraでも設定する必要があります。

DBMS_CRYPTOSQLNET.CRYPTO_CHECKSUM_TYPES_CLIENTおよびSQLNET.CRYPTO_CHECKSUM_TYPES_SERVERでのSHA-1の使用は非推奨になりました。

パラメータSQLNET.CRYPTO_CHECKSUM_TYPES_CLIENTおよびSQLNET.CRYPTO_CHECKSUM_TYPES_SERVERでのSHA-1 (Secure Hash Algorithm 1)の使用は、このリリースでは非推奨となり、将来のリリースではサポートされなくなる可能性があります。DBMS_CRYPTOでのSHA-1暗号の使用も非推奨になりました(HASH_SH1HMAC_SH1)。SHA1を使用するのではなく、SHA-1暗号のかわりにより強力なSHA-2暗号の使用を開始することをお薦めします。

デフォルト

TRUE

  • TRUE SHA1署名付き証明書を受け入れる場合

  • FALSE SHA1署名付き証明書を受け入れない場合

5.2.3 ALLOWED_WEAK_CERT_ALGORITHMS

sqlnet.oraのパラメータALLOWED_WEAK_CERT_ALGORITHMSを使用すると、例外として非推奨の認証アルゴリズムの使用を許可できます。

用途

下位互換性のために、以前の弱いアルゴリズムの使用を許可します。これは、非推奨のアルゴリズム(MD5SHA1署名付き証明書など)に関連付けられた証明書を引き続き使用する必要がある環境で役立ちます。

使用上のノート

Oracle Database 23ai以降では、sqlnet.oraのパラメータALLOW_MD5_CERTSALLOW_SHA1_CERTSは非推奨です。

これらのパラメータのかわりに、sqlnet.oraのパラメータALLOWED_WEAK_CERT_ALGORITHMSを使用します。これはOracle Database 23aiの新機能です。

ALLOWED_WEAK_CERT_ALGORITHMSが設定されている場合、Oracle DatabaseはALLOW_MD5_CERTSおよびALLOW_SHA1_CERTSを無視します。ALLOWED_WEAK_CERT_ALGORITHMSが設定されていない場合、Oracle DatabaseはALLOW_MD5_CERTSおよびALLOW_SHA1_CERTSの設定をチェックして使用します。

MD5 | SHA1

Oracle Databaseでは、ここで設定した弱いアルゴリズムのみを使用できます。
  • MD5に設定すると、MD5は許可されますが、SHA1は無効になります。

  • SHA1に設定すると、SHA1は許可されますが、MD5は無効になります。

  • MD5,SHA1に設定すると、MD5SHA1の両方が許可されます。

必ず値をカッコで囲んでください。MD5およびSHA1の両方を指定する場合は、値をカンマで区切ります。

デフォルト

SHA1

ALLOWED_WEAK_CERT_ALGORITHMS=(SHA1)
ALLOWED_WEAK_CERT_ALGORITHMS=(MD5,SHA1)

5.2.4 AZURE_DB_APP_ID_URI

AZURE_DB_APP_ID_URIパラメータは、Microsoft Entra ID (旧称はMicrosoft Azure Active Directory)に登録されているOracle DatabaseインスタンスのアプリケーションID URIを指定するために使用します。

用途

Entra IDでデータベース・インスタンスを一意に識別する、アプリケーションID URIを指定します。

このURI値は、トークンベースの認証の間にデータベース・トークン・リクエストの認可スコープ(権限)を構成するために使用されます。
$Scope = "database_app_id_uri/scope"
たとえば:
$Scope = "https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3/session:scope:connect"

ここでは、アプリケーションID URI https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3はスコープの一部です。

使用上のノート

このパラメータは必須です。これは、AZURE_INTERACTIVEAZURE_SERVICE_PRINCIPALAZURE_MANAGED_IDENTITYおよびAZURE_DEVICE_CODE認証フローの場合はTOKEN_AUTHパラメータとともに設定する必要があります。

JDBCシン・クライアントの場合は、接続文字列、簡易接続構文、tnsnames.oraファイルまたはプロパティでこのパラメータを指定できます。シック・クライアント(OCIとInstant Client)と、ODP.NETコアおよび管理対象データベース・クライアントの場合は、接続文字列、sqlnet.oraファイル、簡易接続構文またはtnsnames.oraファイルでこのパラメータを指定できます。接続文字列で指定したパラメータ値が優先されます。

デフォルト

なし

Azureポータルにログインすることで、アプリケーションID URI値を取得できます。これは、「アプリの登録」 - 「概要」ページでアプリケーションID URI値としてリストされます。

なお、これは、Oracle Databaseセキュリティ・ガイドで示すように、Oracle DatabaseインスタンスをEntra IDテナンシに登録する間に指定した値です。

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION =
       (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521))
       (SECURITY=
          (SSL_SERVER_DN_MATCH=TRUE)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=AZURE_INTERACTIVE)
          (AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3))
       (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
     ) 
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
TOKEN_AUTH=AZURE_INTERACTIVE
AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3
簡易接続文字列:
tcps:sales-svr:1521/sales.us.example.com?TOKEN_AUTH=AZURE_INTERACTIVE&AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3

これらの例では、CLIENT_IDTENANT_IDおよびREDIRECT_URIパラメータは指定されていません。CLIENT_IDおよびTENANT_IDは、シック・クライアント(OCIとInstant Client)を使用する場合の必須パラメータです。これらのパラメータは、JDBCシン、ODP.NETコアおよび管理対象データベース・クライアントの場合はオプションです。それらではAzure SDK構成からこれらの値を自動的に取得できます。

5.2.5 BEQUEATH_DETACH

このsqlnet.oraのパラメータは、LinuxおよびUNIXシステムでのシグナル処理を有効化/無効化するために使用します。

用途

LinuxおよびUNIXシステムでシグナル処理を有効または無効にします

デフォルト

no

  • yes: シグナル処理をオフに切り替えます。

  • no: シグナル処理をオン状態にします。

BEQUEATH_DETACH=yes

5.2.6 CLIENT_CERTIFICATE

CLIENT_CERTIFICATEパラメータは、データベース・クライアント・アプリケーションを認証するクライアント証明書へのファイル・システム・パスを指定するために使用します。

用途

Microsoft Entra IDでデータベース・クライアント・アプリケーションを認証するクライアント証明書へのファイル・システム・パス。クライアント証明書はAzureクラウド・リソースのデジタル証明書であり、クライアントで、Entra IDアクセス・トークンのリクエスト時にこの証明書を資格証明として使用してそのアイデンティティが証明されます。これは、AZURE_SERVICE_PRINCIPALトークンベースの認証フローに使用されます。

ノート:

JDBCシン・クライアントと、ODP.NETコアおよび管理対象データベース・クライアントのみで(OCIとInstant Clientなどのシック・クライアントではない)、証明書ベースの認証がサポートされています。

使用上のノート

  • Entra IDクライアントでは、クライアントIDとクライアント・シークレットを使用してEntra ID OAuth2データベース・アクセス・トークンが取得されます。クライアント・シークレットが構成されていない場合は、クライアント・ドライバで、Azure SDK構成内のAZURE_CLIENT_CERTIFICATE_PATH環境変数からクライアント証明書のファイル・システム・パスが自動的に読み取られます。アプリケーション・クライアントがパブリックである場合は、それでクライアントIDのみが使用されます。

    サービス・プリンシパルでの証明書の使用の詳細は、Microsoftのドキュメントを参照してください。

  • このパラメータは省略可能です。SDKを構成していない場合にそれを設定できます。

    クライアント・ドライバがクライアント・シークレットで構成されている場合、このパラメータは無視されます。

  • このパラメータは、接続文字列、簡易接続構文またはtnsnames.oraファイルでTOKEN_AUTH=AZURE_SERVICE_PRINCIPAL設定とともに指定できます。接続文字列で指定したパラメータ値が優先されます。

  • 証明書ファイルでサポートされている形式は次のとおりです:

    • .pem (暗号化された電子メール)

    • .pfx (個人情報交換)

      この形式はパスワードで保護されています。そのファイルが.pfx形式の場合は、対応するAZURE_CLIENT_CERTIFICATE_PASSWORDパラメータも設定する必要があります。

  • この証明書は、OracleウォレットやAzure Key Vaultに格納できません。

    この証明書は、データベースにアクセスするための資格証明であるため、ファイル・システム上で保護する必要があります。

デフォルト

なし

Azure証明書ファイルへのフル・パス(ファイル名を含む)

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION =
       (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521))
       (SECURITY=
          (SSL_SERVER_DN_MATCH=TRUE)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=AZURE_SERVICE_PRINCIPAL)
          (AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3)
          (CLIENT_CERTIFICATE=ORACLE_HOME/.azure/certificates/my-app.pem))
       (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
     ) 
簡易接続文字列:
tcps:sales-svr:1521/sales.us.example.com?TOKEN_AUTH=AZURE_SERVICE_PRINCIPAL&AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3&CLIENT_CERTIFICATE=ORACLE_HOME/.azure/certificates/my-app.pem

これらの例では、CLIENT_IDおよびTENANT_IDパラメータは指定されていません。これらのパラメータは、JDBCシン、ODP.NETコアおよび管理対象データベース・クライアントの場合はオプションです。それらではAzure SDK構成からこれらの値を自動的に取得できます。

5.2.7 CLIENT_ID

CLIENT_IDパラメータは、データベース・クライアントのMicrosoft Entra IDアプリ登録のIDを指定するために使用します。

用途

Entra IDアプリ登録の間にデータベース・クライアントに割り当てた、クライアントIDを指定します。これはデータベース・サーバーのクライアントIDではないことに注意してください。このアプリケーションは、Azureトークンベースの認証の間にユーザーのアクセス・トークンの取得をリクエストするデータベース・クライアントです。

使用上のノート

このパラメータは、AZURE_INTERACTIVEAZURE_SERVICE_PRINCIPALAZURE_MANAGED_IDENTITYおよびAZURE_DEVICE_CODE認証フローの場合は、次のようにTOKEN_AUTHパラメータとともに使用します。

  • AZURE_MANAGED_IDENTITY認証フローは、Azure環境(Azure App ServiceやAzure仮想マシンなど)でホストされているクライアント側またはサーバー側アプリケーションに適用されます。

    JDBCシン・クライアントと、ODP.NETコアおよび管理対象データベース・クライアントの使用時は、クライアント・ドライバで、システム割り当てマネージドIDが使用されます。システム割り当てマネージドIDは、Entra IDによってアプリケーションに割り当てられる暗黙的なアイデンティティであり、デフォルトでAzure SDKで構成されます。オプションで、このパラメータを設定して明示的にユーザー割り当てマネージドIDのクライアントIDをアプリケーションに割り当てることができます。

    Azure SDKを使用しない、シック・クライアント(OCIとInstant Client)の使用時は、このパラメータを設定してユーザー割り当てマネージドIDをアプリケーションに割り当てる必要があります。

  • 他の認証フローの場合、JDBCシン・クライアントと、ODP.NETコアおよび管理対象データベース・クライアントの使用時は、クライアント・ドライバで、Azure SDK構成内でそのクライアントIDが検索されます。この場合、このパラメータはオプションです。

    OCIとInstant Clientの使用時は、このパラメータを設定する必要があります(TENANT_IDなどのその他の必須パラメータも設定する)。そうしないと、必須パラメータを構成するよう求めるエラー・メッセージが表示されます。

なお、このパラメータは、OCIとInstant Clientの場合は必須です。これは、JDBCシン・クライアントと、ODP.NETコアおよび管理対象データベース・クライアントの使用時のみオプションです。

JDBCシン・クライアントの場合は、接続文字列、簡易接続構文、tnsnames.oraファイルまたはプロパティでこのパラメータを指定できます。シック・クライアント(OCIとInstant Client)と、ODP.NETコアおよび管理対象データベース・クライアントの場合は、接続文字列、sqlnet.oraファイル、簡易接続構文またはtnsnames.oraファイルでこのパラメータを指定できます。接続文字列で指定したパラメータ値が優先されます。

デフォルト

なし

Azureポータルにログインすることで、クライアントID値を取得できます。これは、アプリケーション登録- 概要ページにアプリケーション(クライアント) ID値としてリストされます。

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION =
       (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521))
       (SECURITY=
          (SSL_SERVER_DN_MATCH=TRUE)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=AZURE_INTERACTIVE)
          (AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3)
          (CLIENT_ID=123ab4cd-1a2b-1234-a12b-aa00123b2cd3)
       (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
     ) 
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
TOKEN_AUTH=AZURE_INTERACTIVE
AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3
CLIENT_ID=123ab4cd-1a2b-1234-a12b-aa00123b2cd3
簡易接続文字列:
tcps:sales-svr:1521/sales.us.example.com?TOKEN_AUTH=AZURE_INTERACTIVE&AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3&CLIENT_ID=123ab4cd-1a2b-1234-a12b-aa00123b2cd3

これらの例では、TENANT_IDおよびREDIRECT_URIパラメータは指定されていません。シック・クライアント(OCIとInstant Client)の使用時は、TENANT_IDは必須です。このパラメータは、JDBCシンと、ODP.NETコアおよび管理対象データベース・クライアントの場合はオプションです。それらではAzure SDK構成からこの値を自動的に取得できます。

5.2.8 EXADIRECT_FLOW_CONTROL

sqlnet.oraのプロファイル・パラメータEXADIRECT_FLOW_CONTROLでは、Exadirectフロー制御を有効または無効にします。

用途

Exadirectフロー制御を有効または無効にします。

使用上のノート

このパラメータをonに設定すると、Oracle Netが使用可能な受信ウィンドウを送信側にブロードキャストできるようになります。送信側は受信側のブロードキャスト・ウィンドウに基づいて送信を制限します。

デフォルト

off

EXADIRECT_FLOW_CONTROL=on

5.2.9 EXADIRECT_RECVPOLL

sqlnet.oraのパラメータEXADIRECT_RECVPOLLは、受信側が着信データをポーリングする時間を指定するために使用します。

用途

受信側が着信データをポーリングする時間を指定します。

使用上のノート

このパラメータには、固定値を設定することも、自動的にポーリング値を調整するAUTOを設定することもできます。

デフォルト

0

EXADIRECT_RECVPOLL = 10

EXADIRECT_RECVPOLL = AUTO

5.2.10 DEFAULT_SDU_SIZE

このsqlnet.oraのプロファイル・パラメータは、接続のセッション・データ・ユニット(SDU)サイズを指定するために使用します。

用途

接続のSDUサイズをバイト単位で指定します。

使用上のノート

接続全体を通じて同じサイズのSDUが使用されるように、このパラメータはクライアント側とサーバー側の両方のsqlnet.oraファイルで設定することをお薦めします。各セッションのクライアントとデータベース・サーバーの構成値が一致しない場合、2つの値の低いほうが使用されます。

特定のクライアント接続に対してこのパラメータを上書きするには、クライアントの接続記述子にSDUパラメータを指定します。

デフォルト

  • クライアントの場合: 8192バイト(8 KB)

  • サーバーの場合: 65536バイト(64KB)

512から2097152バイト

例5-1 例

DEFAULT_SDU_SIZE=4096

5.2.11 DISABLE_INTERRUPT

sqlnet.oraのプロファイル・パラメータDISABLE_INTERRUPTは、クライアント・アプリケーションでSIGINITシグナルのOracle Net処理を無効にするために使用します。

用途

クライアント・アプリケーションでSIGINITシグナルのOracle Net処理を無効にします。

使用上のノート

Oracle Netは、SIGINTシグナルを捕捉するシグナル・ハンドラをインストールします。デフォルトでは、SIGINITシグナルの受信時のアクションは、現在の操作を取り消すことです。このパラメータをTRUEに設定すると、デフォルトの動作をオーバーライドし、SIGINTシグナルのOracle Net処理を無視できます。

Oracle Netに加えて独自のシグナル・ハンドラをインストールしたり、アンインストールする方法の詳細は、『Oracle Database管理者リファレンスfor Linux and UNIX-Based Operating Systems』を参照してください。

デフォルト

FALSE

DISABLE_INTERRUPT=TRUE

5.2.12 DISABLE_OOB

sqlnet.oraのプロファイル・パラメータDISABLE_OOBは、下層プロトコルからの緊急データを使用した、アウト・オブ・バンド・ブレーク・メッセージの送受信をOracle Netで有効または無効にするために使用します。

用途

下層プロトコルから渡された緊急データを使用した、アウト・オブ・バンド・ブレーク・メッセージの送受信をOracle Netで有効または無効にします。

使用上のノート

このパラメータをoffに設定すると、Oracle Netでブレーク・メッセージの送受信が可能になります。このパラメータをonに設定すると、ブレーク・メッセージの送受信ができなくなります。有効にすると、この機能はクライアントが使用するすべてのプロトコルに適用されます。

デフォルト

off

例5-2 例

DISABLE_OOB=on

5.2.13 DISABLE_OOB_AUTO

sqlnet.oraのプロファイル・パラメータDISABLE_OOB_AUTOは、サーバー・パスのアウト・オブ・バンド・ブレーク・メッセージについての接続時の確認を無効化するために使用します。

用途

sqlnet.oraで、接続時にサーバー・パスのアウト・オブ・バンド(OOB)ブレーク・メッセージを確認しないようにします。

使用上のノート

デフォルトでは、接続の確立時にクライアントはサーバー・パスがアウト・オブ・バウンド・ブレーク・メッセージをサポートするかどうかを調べます。DISABLE_OOB_AUTOTRUEに設定すると、クライアントでは、このチェックが接続時に実行されなくなります。

デフォルト

FALSE

例5-3 例

DISABLE_OOB_AUTO = TRUE

5.2.14 IPC.KEYPATH

sqlnet.oraのプロファイル・パラメータIPC.KEYPATHは、UNIXドメイン・ソケット用の内部ファイルの作成先ディレクトリを指定するために使用します。

用途

UNIXドメイン・ソケット用の内部ファイルが作成される宛先ディレクトリを指定します。

使用上のノート

このパラメータは、UNIXドメイン・ソケットのOracle Netの使用にのみ適用され、Oracle Clusterwareなど、その他のOracle DatabaseでのUNIXドメイン・ソケットの使用には適用されません。IPC.KEYPATHパラメータを使用するときには、Oracle Database上のクライアントとリスナーのIPC_KEYPATHに同じ値を使用する必要があります(データベースのバージョンがOracle Database 18c以降の場合)。

デフォルト

ディレクトリ・パスは、Oracle Linux、Oracle Solarisの場合は/var/tmp/.oracle、他のUNIX変数の場合/tmp/.oracleです。

ipc.keypath=/home/oracleuser

5.2.15 KERBEROS5_PRINCIPAL

KERBEROS5_PRINCIPALパラメータは、Kerberos資格証明キャッシュ(CC)ファイルに関連付けられたKerberosプリンシパル名を設定するために使用します。

用途

Oracle DatabaseクライアントのKerberos認証を構成する場合、単一のOracle Databaseクライアントで複数のKerberosプリンシパルを指定できます。

これはオプションのパラメータです。指定すると、資格証明キャッシュ内のプリンシパル名(KERBEROS5_CC_NAMEを使用して指定)がパラメータ値と一致するかどうかを検証するために使用されます。

使用上のノート

このパラメータは、tnsnames.oraファイルのSECURITYセクションで使用するか、sqlnet.oraファイルで設定します。または、KERBEROS5_CC_NAMEパラメータとともに接続文字列にKERBEROS5_PRINCIPALを設定して、別のKerberosプリンシパルとして接続することもできます。

接続文字列で指定されたパラメータ値は、sqlnet.oraファイルまたはtnsnames.oraファイルで指定された値より優先されます。

各Kerberosプリンシパルには、有効な資格証明キャッシュが必要です。Oracle Databaseでは、資格証明キャッシュから取得された値に対してKERBEROS5_PRINCIPALがチェックされます。2つの値が一致しない場合、ユーザーは認証されません。

  • Kerberosプリンシパルkrbprinc1@example.comを使用して外部認証され、このプリンシパルの資格証明キャッシュが/tmp/krbuser1/krb.ccにあるユーザーkrbuser1の場合、tnsnames.oraファイルの接続記述子は次のようになります。
    
    net_service_name=
    (DESCRIPTION=
          (ADDRESS=(PROTOCOL=tcp)(HOST=sales-svr)(PORT=1521))
          (CONNECT_DATA=(SERVICE_NAME=sales.example.com)) 
          (SECURITY=
              (KERBEROS5_CC_NAME=/tmp/krbuser1/krb.cc)
              (KERBEROS5_PRINCIPAL=krbprinc1@example.com)))
    
    sqlnet.oraファイル:
    SQLNET.KERBEROS5_CC_NAME=/tmp/krbuser1/krb.cc
    KERBEROS5_PRINCIPAL=krbprinc1@example.com
  • Kerberosプリンシパルkrbprinc2@example.comを使用して外部認証され、このプリンシパルの資格証明キャッシュが/tmp/krbuser2/krb.ccにあるユーザーkrbuser2の場合、tnsnames.oraファイルの接続記述子は次のようになります。
    
    net_service_name=
    (DESCRIPTION=
          (ADDRESS=(PROTOCOL=tcp)(HOST=sales-svr)(PORT=1521))
          (CONNECT_DATA=(SERVICE_NAME=sales.example.com)) 
          (SECURITY=
              (KERBEROS5_CC_NAME=/tmp/krbuser2/krb.cc)
              (KERBEROS5_PRINCIPAL=krbprinc2@example.com)))
    
    sqlnet.oraファイル:
    SQLNET.KERBEROS5_CC_NAME=/tmp/krbuser2/krb.cc
    KERBEROS5_PRINCIPAL=krbprinc2@example.com

ノート:

/tmp/krbuser1/krb.ccファイルのプリンシパルにkrbprinc1@example.comの値が含まれていない場合、接続は失敗します。

5.2.16 NAMES.DEFAULT_DOMAIN

sqlnet.oraのプロファイル・パラメータNAMES.DEFAULT_DOMAINは、クライアントが最も頻繁に名前解決リクエストを参照するドメインの名前を設定するために使用します。

用途

クライアントが最も頻繁に名前解決リクエストを参照するドメインを設定します。

使用上のノート

NAMES.DEFAULT_DOMAINを設定すると、未修飾のネット・サービスやサービス名には、デフォルトのドメイン名が自動的に付加されます。

たとえば、デフォルトのドメインをwww.example.comに設定すると、接続文字列CONNECT scott@saleswww.example.comとして検索されます。CONNECT scott@sales.www.example.comのように、接続文字列にドメイン拡張が含まれている場合は、接続文字列にドメインが追加されません。

デフォルト

なし

NAMES.DEFAULT_DOMAIN=example.com

5.2.17 NAMES.DIRECTORY_PATH

sqlnetのパラメータNAMES.DIRECTORY_PATHは、クライアントの名前解決参照の際のネーミング・メソッドの順序を指定するために使用します。

用途

クライアントの名前解決参照用のネーミング・メソッドの順序を指定します。

デフォルト

NAMES.DIRECTORY_PATH=(tnsnames, ezconnect, ldap)

次の表は、ネーミング・メソッドのNAMES.DIRECTORY_PATH値を示しています。

ネーミング・メソッド値 説明

tnsnames(ローカル・ネーミング・メソッド)

クライアント上のtnsnames.oraファイルによりネットワーク・サービス名を解決する場合に設定します。

ldap (ディレクトリ・ネーミング・メソッド)

データベース・サービス名、ネット・サービス名またはネットワーク・サービス別名をディレクトリ・サーバーにより解決する場合に設定します。

ezconnectまたはhostname (簡易接続ネーミング・メソッド)

ホスト名およびオプションのポートとサービス名で構成されるTCP/IP接続識別子をクライアントで使用できるようにする場合に選択します。

nis (外部ネーミング・メソッド)

既存のNetwork Information Service (NIS).でサービス情報を解決する場合に設定します

NAMES.DIRECTORY_PATH=(tnsnames)

5.2.18 NAMES.LDAP_AUTHENTICATE_BIND

sqlnetのパラメータNAMES.LDAP_AUTHENTICATE_BINDは、接続文字列の名前を解決するためにLDAPディレクトリに接続するときに、指定のウォレットを使用してLDAPネーミング・アダプタを認証する必要があるかどうかを指定するために使用します。

用途

接続文字列内のサービス名を解決するためにLDAPディレクトリに接続したときに、LDAPネーミング・アダプタで、指定したウォレットを使用して認証を試行するかどうかを指定します。

使用上のノート

FALSEに設定すると、LDAP接続は匿名バインドを使用して確立されます。

TRUEに設定すると、LDAP接続はOracleウォレットを使用して認証されます。WALLET_LOCATIONパラメータを使用してウォレットの場所を指定する必要があります。

パラメータWALLET_LOCATIONは、Oracle DatabaseサーバーのOracle Database 23aiでの使用は非推奨です。Oracle Databaseクライアントおよびリスナーでの使用は非推奨ではありません。

Oracle Databaseサーバーの場合、WALLET_LOCATIONを使用するかわりに、WALLET_ROOTシステム・パラメータを使用することをお薦めします。

TRUE | FALSE

デフォルト

FALSE

NAMES.LDAP_AUTHENTICATE_BIND=TRUE

5.2.19 NAMES.LDAP_AUTHENTICATE_BIND_METHOD

sqlnetパラメータNAMES.LDAP_AUTHENTICATE_BIND_METHODは、クライアントLDAPネーミング・アダプタの認証方法を指定するために使用します。

用途

クライアントLDAPネーミング・アダプタがLDAPディレクトリに接続して接続文字列名を解決するときに使用する認証方法を指定します。

使用上のノート

LDAPS (LDAP over TLS接続)を介した簡易認証方式がサポートされています。

ディレクトリ・エントリのDNとパスワードをOracleウォレットに格納します。クライアントは、LDAPサーバーに接続するときに、このウォレットに格納されている資格証明を使用して認証されます。ウォレット・トラスト・ストアには、LDAPサーバーの認証局によって発行されたルート証明書が含まれている必要があります。

LDAPネーミング・アダプタは、ウォレットのoracle.ldap.client.dnおよび oracle.ldap.client.passwordエントリをLDAPサーバーへの認証に使用します。これらのエントリが存在しない場合、クライアントはTLSまたはLDAPSを使用して匿名認証を試行します。

  • LDAPS_SIMPLE_AUTH

  • NONE

デフォルト

NONE

NAMES.LDAP_AUTHENTICATE_BIND_METHOD=LDAPS_SIMPLE_AUTH

5.2.20 NAMES.LDAP_CONN_TIMEOUT

sqlnetのパラメータNAMES.LDAP_CONN_TIMEOUTは、LDAPサーバーへの非ブロック接続タイムアウトが発生したことを示す秒数の指定のために使用します。

用途

パラメータ値-1は無限のタイムアウトです。

デフォルト

15

値は秒単位です。範囲は、-1から対象の環境で許容される秒数までです。上限値はありません。

LDAPサーバーへの非ブロック接続のタイムアウトの秒数を指定します。

使用上のノート

names.ldap_conn_timeout = -1

5.2.21 NAMES.LDAP_PERSISTENT_SESSION

sqlnetのパラメータNAMES.LDAP_PERSISTENT_SESSIONは、名前参照の完了後もLDAPネーミング・アダプタでLDAPサーバーとのセッションをオープンしたままにするかどうかを指定するために使用します。

用途

名前参照の完了後もLDAPネーミング・アダプタでLDAPサーバーのセッションをオープンのままにするかどうかを指定します。

使用上のノート

パラメータ値はブールです。

このパラメータをTRUEに設定すると、名前参照の完了してもLDAPサーバーへの接続はオープンしたままになります。この接続は、プロセスの継続期間中オープンしたままになります。接続が失われた場合は、必要に応じて再確立されます。

このパラメータをFALSEに設定すると、LDAP接続は名前参照の完了直後に終了します。それ以降、参照のたびに接続がオープンされ、参照を実行してから接続がクローズされます。このオプションを使用すると、LDAPに多数のクライアントが同時に接続している状態を防止できます。

デフォルト

false

NAMES.LDAP_PERSISTENT_SESSION=true

5.2.22 NAMES.NIS.META_MAP

sqlnetのパラメータNAMES.NIS.META_MAPは、ネットワーク情報サービス(NIS)の属性をNISマップ名にマップする際に使用するマップ・ファイルの指定に使用します。

用途

ネットワーク・インフォメーション・サービス(NIS)属性をNISマップ名にマップするために使用するmapファイルを指定します。

デフォルト

sqlnet.maps

NAMES.NIS.META_MAP=sqlnet.maps

5.2.23 OCI_COMPARTMENT

OCI_COMPARTMENTパラメータを使用して、クライアント接続のデータベース・インスタンスを保持するコンパートメントのOracle Cloud Identifier (OCID)を指定します。

用途

データベース・トークンのリクエストのスコープを定義します。この値は、指定したコンパートメント内のデータベースに対してのみ、トークン・リクエストを開始するようにデータベース・クライアントに指示します。このパラメータは、OCI Database as a Service (DBaaS)上でOracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)ユーザーのトークンベースの認証を構成する場合に使用します。

使用上のノート

OCI_DATABASEパラメータを指定していない場合、OCI_COMPARTMENTパラメータはオプションです。OCI_DATABASEの設定を選択する場合は、OCI_COMPARTMENTも設定し、トークン・リクエストをそのコンパートメント内の指定されたデータベースに制限する必要があります。

OCI_COMPARTMENTOCI_DATABASEの両方のパラメータを設定しない場合、テナンシ全体がトークン・リクエストのスコープになります。

このパラメータは、PASSWORD_AUTHおよびTOKEN_AUTH認証設定とともに使用できます。
  • PASSWORD_AUTH構成では、データベース・クライアントはIAMユーザー名およびIAMデータベース・パスワードを使用して、IAMデータベース・トークンのみをリクエストできます。

  • TOKEN_AUTH構成では、データベース・クライアントは、APIキー、委任トークン、セキュリティ・トークン、リソース・プリンシパルまたはインスタンス・プリンシパル資格証明を使用してIAMデータベース・トークンをリクエストできます。OCI_INTERACTIVEOCI_API_KEYOCI_INSTANCE_PRINCIPALOCI_DELEGATION_TOKENおよびOCI_RESOURCE_PRINCIPAL認証フローを使用して、データベース・クライアントがIAMシングル・サインオン(SSO)資格証明によりdb-tokenを直接取得できるようにすることもできます。

このパラメータは、tnsnames.oraファイル、sqlnet.oraファイル、簡易接続構文のSECURITYセクションの下で使用するか、コマンドライン接続文字列の一部として直接使用します。接続文字列で指定されたパラメータ値は、他で指定された値より優先されます。

デフォルト

なし

データベース・トークンへのアクセスを許可する、IAMコンパートメントのOCID。OCIコンソールのコンパートメント情報ページから、コンパートメントのOCID値を取得できます。

コンパートメントOCIDは、次の構文を使用します:

OCI_COMPARTMENT=compartment_OCID

構文オプションの詳細は、Oracle Cloud Identifier (OCID)ドキュメントを参照してください。

tnsnames.oraファイル:
net_service_name=
  (DESCRIPTION=
     (ADDRESS=(PROTOCOL=tcps)(HOST=salesserver1)(PORT=1522))
     (SECURITY=
        (SSL_SERVER_DN_MATCH=TRUE)
        (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
        (PASSWORD_AUTH=OCI_TOKEN)
        (OCI_IAM_URL=https://auth.us-region-1.example.com/v1/actions/generateScopedAccessBearerToken)
        (OCI_TENANCY=ocid1.tenancy..12345)
        (OCI_COMPARTMENT=ocid1.compartment..12345)
        (OCI_DATABASE=ocid1.autonomousdatabase.oc1.12345))
     (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))  
  )
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
PASSWORD_AUTH=OCI_TOKEN
OCI_IAM_URL=https://auth.us-region-1.example.com/v1/actions/generateScopedAccessBearerToken
OCI_TENANCY=ocid1.tenancy..12345
OCI_COMPARTMENT=ocid1.compartment..12345
OCI_DATABASE=ocid1.autonomousdatabase.oc1.12345
簡易接続構文:
tcps:sales-svr:1521/sales.us.example.com?TOKEN_AUTH=OCI_INTERACTIVE&OCI_COMPARTMENT=ocid1.compartment..12345&OCI_DATABASE=ocid1.autonomousdatabase.oc1.12345

5.2.24 OCI_CONFIG_FILE

OCI_CONFIG_FILEパラメータは、Oracle Cloud Infrastructure (OCI)構成ファイルが格納されるディレクトリの場所を指定するために使用します。

用途

OCI構成ファイルのディレクトリの場所を指定します。このファイルには、OCI Identity and Access Management (IAM)ユーザーのクライアント接続情報がプロファイルの一部として格納されます。SDK、CLIおよびその他のOCIツールでは、IAMトークンベースの認証中に、このファイルを使用してIAMユーザー資格証明にアクセスします。

使用上のノート

これはオプションのパラメータです。このパラメータを設定しない場合、データベース・クライアントは、C:/user-profile/.oci/configにあるデフォルトの構成ファイルからユーザーのプロファイルを取得します。このパラメータを使用すると、デフォルトの構成ファイルの場所をオーバーライドできます。この場合、データベース・クライアントは、OCI_CONFIG_FILEで指定された場所でプロファイルを検索します。

このパラメータは、OCI_API_KEYおよびOCI_INTERACTIVE認証フローでは、TOKEN_AUTHパラメータとともに使用できます。
  • OCI_INTERACTIVE認証フローを使用するとき、このパラメータが設定されておらず、構成ファイルがデフォルトの場所にも存在しない場合、Oracle Databaseは、ユーザーが選択できるリージョンIDのリストを表示し、ユーザーにリージョンIDの指定を求めます。

  • OCI_API_KEY認証フローを使用するとき、このパラメータが設定されておらず、デフォルトの構成ファイルも存在しない場合は、ORA-50109エラー・メッセージが返されます。この場合、構成ファイルの場所を含めるようにこのパラメータを設定する必要があります。

JDBCシン・クライアントの場合、簡易接続構文またはtnsnames.ora接続文字列でこのパラメータを指定できます。ODP.NETコア・クラスおよびODP.NET管理対象ドライバ・クラスの場合は、sqlnet.oraファイル、簡易接続構文またはtnsnames.ora接続文字列でこのパラメータを指定できます。接続文字列で指定したパラメータ値が優先されます。

デフォルト

なし

OCI構成ファイルへのフル・パス(ファイル名を含む)

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION =
       (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521))
       (SECURITY=
          (SSL_SERVER_DN_MATCH=TRUE)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=OCI_INTERACTIVE)
          (OCI_CONFIG_FILE=/home/dbuser1/config))
       (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
     ) 
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
TOKEN_AUTH=OCI_INTERACTIVE
OCI_CONFIG_FILE=/home/dbuser1/config
簡易接続文字列:
tcps:sales-svr:1521/sales.us.example.com?TOKEN_AUTH=OCI_INTERACTIVE&OCI_CONFIG_FILE=/home/dbuser1/config

これらの例では、オプションのOCI_PROFILEパラメータが指定されていません。したがって、クライアントは指定された構成ファイル・ディレクトリからDEFAULTプロファイルを自動的に取得します。

5.2.25 OCI_DATABASE

OCI_DATABASEパラメータを使用して、クライアント接続でアクセスするデータベースのOracle Cloud Identifier (OCID)を指定します。

用途

データベース・トークンのリクエストのスコープを定義します。データベースのOCID値は、コンパートメント内の指定されたデータベースへのトークン・リクエストを開始するように、データベース・クライアントに指示します。このパラメータは、OCI Database as a Service (DBaaS)上でOracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)ユーザーのトークンベースの認証を構成する場合に使用します。

使用上のノート

これはオプションのパラメータです。このパラメータを設定して、アクセスを特定のデータベースにのみ制限できます。OCI_DATABASEを設定する場合は、OCI_COMPARTMENTパラメータを使用して特定のコンパートメント識別子も指定する必要があります。

このパラメータは、PASSWORD_AUTHおよびTOKEN_AUTH認証設定とともに使用できます。
  • PASSWORD_AUTH構成では、データベース・クライアントはIAMユーザー名およびIAMデータベース・パスワードを使用して、IAMデータベース・トークンのみをリクエストできます。

  • TOKEN_AUTH構成では、データベース・クライアントは、APIキー、委任トークン、セキュリティ・トークン、リソース・プリンシパルまたはインスタンス・プリンシパル資格証明を使用してIAMデータベース・トークンをリクエストできます。OCI_INTERACTIVEOCI_API_KEYOCI_INSTANCE_PRINCIPALOCI_DELEGATION_TOKENおよびOCI_RESOURCE_PRINCIPAL認証フローを使用して、データベース・クライアントがIAMシングル・サインオン(SSO)資格証明によりdb-tokenを直接取得できるようにすることもできます。

このパラメータは、tnsnames.oraファイル、sqlnet.oraファイル、簡易接続構文のSECURITYセクションの下で指定するか、コマンドライン接続文字列の一部として直接指定します。接続文字列で指定したパラメータ値が優先されます。

デフォルト

なし

クライアント接続でアクセスする必要があるデータベースのOCID。OCIコンソールの「データベース詳細」ページから、データベースのOCID値を取得できます。

データベースOCIDは、次の構文を使用します:

OCI_DATABASE=database_OCID

構文オプションの詳細は、Oracle Cloud Identifier (OCID)ドキュメントを参照してください。

tnsnames.oraファイル:
net_service_name=
  (DESCRIPTION=
     (ADDRESS=(PROTOCOL=tcps)(HOST=salesserver1)(PORT=1522))
     (SECURITY=
        (SSL_SERVER_DN_MATCH=TRUE)
        (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
        (PASSWORD_AUTH=OCI_TOKEN)
        (OCI_IAM_URL=https://auth.us-region-1.example.com/v1/actions/generateScopedAccessBearerToken)
        (OCI_TENANCY=ocid1.tenancy..12345)
        (OCI_COMPARTMENT=ocid1.compartment..12345)
        (OCI_DATABASE=ocid1.autonomousdatabase.oc1.12345))
     (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))  
  )
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
PASSWORD_AUTH=OCI_TOKEN
OCI_IAM_URL=https://auth.us-region-1.example.com/v1/actions/generateScopedAccessBearerToken
OCI_TENANCY=ocid1.tenancy..12345
OCI_COMPARTMENT=ocid1.compartment..12345
OCI_DATABASE=ocid1.autonomousdatabase.oc1.12345
簡易接続構文:
tcps:sales-svr:1521/sales.us.example.com?TOKEN_AUTH=OCI_INTERACTIVE&OCI_COMPARTMENT=ocid1.compartment..12345&OCI_DATABASE=ocid1.autonomousdatabase.oc1.12345

5.2.26 OCI_IAM_URL

OCI_IAM_URLパラメータは、OCI Database as a Service (DBaaS)でOracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)ユーザー認証用のデータベース・トークンを取得するために、データベース・クライアントが接続する必要があるエンドポイントURLの指定に使用します。

用途

REST APIリクエストのIAM URLを指定します。データベース・クライアントはこのURLに接続して、IAMからデータベース・トークンを取得します。

使用上のノート

IAMトークンベースの認証(IAMユーザー名とIAMデータベース・パスワードを使用してデータベース・トークンを取得する)の構成時に、PASSWORD_AUTHおよびOCI_TENANCYパラメータとともに、OCI_IAM_URLパラメータを設定します。これらのパラメータは必須です。

この構成でデータベース・クライアントがIAMデータベース・トークンをリクエストできるのは、IAMユーザー名とIAMデータベース・パスワードを使用する場合のみです。クライアントは、APIキー、委任トークン、セキュリティ・トークン、リソース・プリンシパル、サービス・プリンシパルまたはインスタンス・プリンシパルのIAMデータベース・トークンはリクエストできません。

また、オプションのOCI_COMPARTMENTパラメータとOCI_DATABASEパラメータを設定して、トークン・リクエストのスコープを指定することもできます。

このパラメータは、tnsnames.oraファイルまたはsqlnet.oraファイルのSECURITYセクションの下で使用するか、コマンドライン接続文字列の一部として直接使用します。接続文字列で指定されたパラメータ値は、他で指定された値より優先されます。

デフォルト

なし

データベース・トークンを取得するためにデータベース・クライアントが接続する必要があるOCI IAMエンドポイントのURL。このURLはリージョンに固有で、次の構文を使用します:
<authentication_regional_endpoint>/v1/actions/generateScopedAccessBearerToken

この値は、<authentication_regional_endpoint>をリージョンのAPIエンドポイントのURLに置き換えることで、導き出すことができます。適切なAPIエンドポイントのURLを取得するには、IDおよびアクセス管理Data Plane APIを参照してください。

たとえば、URLをhttps://auth.us-region-1.example.comとして使用する場合、OCI_IAM_URL値は次のようになります。
https://auth.us-region-1.example.com/v1/actions/generateScopedAccessBearerToken

tnsnames.oraファイル:
net_service_name=
  (DESCRIPTION=
     (ADDRESS=(PROTOCOL=tcps)(HOST=salesserver1)(PORT=1522))
     (SECURITY=
        (SSL_SERVER_DN_MATCH=TRUE)
        (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
        (PASSWORD_AUTH=OCI_TOKEN)
        (OCI_IAM_URL=https://auth.us-region-1.example.com/v1/actions/generateScopedAccessBearerToken)
        (OCI_TENANCY=ocid1.tenancy..12345))
     (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))  
  )
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
PASSWORD_AUTH=OCI_TOKEN
OCI_IAM_URL=https://auth.us-region-1.example.com/v1/actions/generateScopedAccessBearerToken
OCI_TENANCY=ocid1.tenancy..12345

これらの例では、オプションのOCI_COMPARTMENTパラメータとOCI_DATABASEパラメータが指定されていません。そのため、テナンシ全体がトークン・リクエストのスコープとして設定されます。

5.2.27 OCI_PROFILE

OCI_PROFILEパラメータは、Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)ユーザーのプロファイル名を指定するために使用します。

用途

IAMユーザーのプロファイル名を指定します。このプロファイルは、OCI構成ファイルに格納されているクライアント接続情報であり、IAMトークンベースの認証中に使用されます。

使用上のノート

  • これはオプションのパラメータです。DEFAULTという名前のプロファイルが、構成ファイルですでに設定されています。データベース・クライアントは、OCI構成ファイル(デフォルトのC:/user-profile/.OCI/configディレクトリの場所またはOCI_CONFIG_FILEで指定された場所)からDEFAULTプロファイルを取得します。

  • このパラメータを指定して、構成ファイルで設定されたDEFAULTプロファイルをオーバーライドし、IAMユーザーに新しいプロファイル名を割り当てることができます。

    このパラメータが設定されておらず、プロファイルも構成ファイルに存在しない場合は、プロファイルが存在しないためにトークンベースの認証が失敗したことを示すエラー・メッセージが表示されます。

  • このパラメータは、OCI_API_KEYおよびOCI_INTERACTIVE認証フローでは、TOKEN_AUTHパラメータとともに使用できます。

    JDBCシン・クライアントの場合、簡易接続構文またはtnsnames.ora接続文字列でこのパラメータを指定できます。ODP.NETコア・クラスおよびODP.NET管理対象ドライバ・クラスの場合は、sqlnet.oraファイル、簡易接続構文またはtnsnames.ora接続文字列でこのパラメータを指定できます。接続文字列で指定したパラメータ値が優先されます。

  • DEFAULT: これは、特定のプロファイルで値が明示的に定義されておらず、プロファイルが構成ファイルに設定されているデフォルト・プロファイルから継承されることを意味します。

  • profile_name: 構成ファイルで設定されたDEFAULTプロファイルをオーバーライドするには、新しい構成プロファイル名(たとえば、ADMIN_USER)を指定します。

デフォルト

DEFAULT

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION =
       (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521))
       (SECURITY=
          (SSL_SERVER_DN_MATCH=TRUE)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=OCI_INTERACTIVE)
          (OCI_CONFIG_FILE=/home/dbuser1/config))
          (OCI_PROFILE=ADMIN_USER))
       (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
     ) 
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
TOKEN_AUTH=OCI_INTERACTIVE
OCI_CONFIG_FILE=/home/dbuser1/config
OCI_PROFILE=ADMIN_USER
簡易接続文字列:
tcps:sales-svr:1521/sales.us.example.com?TOKEN_AUTH=OCI_INTERACTIVE&OCI_CONFIG_FILE=/home/dbuser1/config&OCI_PROFILE=ADMIN_USER

5.2.28 OCI_TENANCY

OCI_TENANCYパラメータを使用して、ユーザーのテナンシのOracle Cloud Identifier (OCID)を指定します。

用途

ユーザーのテナンシ(ルート・コンパートメント)のOCIDを指定します。

使用上のノート

OCI Database as a Service (DBaaS)上でOracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)ユーザーのトークンベース認証を構成する場合に、このパラメータを必須のPASSWORD_AUTHおよびOCI_IAM_URLパラメータとともに設定します。

この構成でデータベース・クライアントがIAMデータベース・トークンをリクエストできるのは、IAMユーザー名とIAMデータベース・パスワードを使用する場合のみです。クライアントは、APIキー、委任トークン、セキュリティ・トークン、リソース・プリンシパル、サービス・プリンシパルまたはインスタンス・プリンシパルのIAMデータベース・トークンはリクエストできません。

また、オプションのOCI_COMPARTMENTパラメータとOCI_DATABASEパラメータを設定して、トークン・リクエストのスコープを指定することもできます。OCI_COMPARTMENTおよびOCI_DATABASEパラメータ値を設定しない場合は、テナンシ全体がトークン・リクエストのスコープになります。

このパラメータは、tnsnames.oraファイルまたはsqlnet.oraファイルのSECURITYセクションの下で使用するか、コマンドライン接続文字列の一部として直接使用します。接続文字列で指定されたパラメータ値は、他で指定された値より優先されます。

デフォルト

なし

ユーザーのテナンシのOCID。OCIコンソールの「テナンシ情報」ページから、テナンシのOCID値を取得できます。

テナンシOCIDは、次の構文を使用します:

OCI_TENANCY=tenancy_OCID

構文オプションの詳細は、Oracle Cloud Identifier (OCID)ドキュメントを参照してください。

tnsnames.oraファイル:
net_service_name=
  (DESCRIPTION=
     (ADDRESS=(PROTOCOL=tcps)(HOST=salesserver1)(PORT=1522))
     (SECURITY=
        (SSL_SERVER_DN_MATCH=TRUE)
        (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
        (PASSWORD_AUTH=OCI_TOKEN)
        (OCI_IAM_URL=https://auth.us-region-1.example.com/v1/actions/generateScopedAccessBearerToken)
        (OCI_TENANCY=ocid1.tenancy..12345))
     (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))  
  )
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
PASSWORD_AUTH=OCI_TOKEN
OCI_IAM_URL=https://auth.us-region-1.example.com/v1/actions/generateScopedAccessBearerToken
OCI_TENANCY=ocid1.tenancy..12345

これらの例では、オプションのOCI_COMPARTMENTパラメータとOCI_DATABASEパラメータが指定されていません。そのため、テナンシ全体がトークン・リクエストのスコープとして設定されます。

5.2.29 PASSWORD_AUTH

PASSWORD_AUTHパラメータは、OCI Database as a Service (DBaaS)上のOracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)ユーザーの認証方法の構成に使用します。この設定では、クライアント接続で、データベースへのユーザーのログインにIAMユーザー名およびIAMデータベース・パスワードが使用されます。

用途

アクセスにIAMユーザー名およびIAMデータベース・パスワードを使用して、IAMデータベース・パスワード・ベリファイアの認証またはIAMトークンベースの認証のいずれかを構成します。

パスワード・ベリファイア認証の場合、データベース・サーバーはIAMから、IAMデータベースのパスワード・ベリファイアを取得します。トークン・ベース認証の場合、データベース・クライアントはIAMから、データベース・トークン(db-token)をリクエストします。

使用上のノート

  • このパラメータは、tnsnames.oraファイルまたはsqlnet.oraファイルのSECURITYセクションの下で使用するか、コマンドライン接続文字列の一部として直接使用します。接続文字列で指定されたパラメータ値は、他で指定された値より優先されます。

  • この設定は、データベース・クライアントに対して、データベース・サーバーで既存のパスワード・ログイン・プロセスを使用(パスワード・ベリファイア認証)するか、IAMユーザー名とIAMデータベース・パスワードを使用(トークンベース認証)してトークンを取得するように指示します。このIAMデータベース・パスワードはOCIコンソール・パスワードとは異なります。IAMユーザーは、このパスワードをOCIコンソールから設定できます。

    Autonomous Databaseのユーザー認証と認可に使用するOCI IAMパスワードの作成を参照してください。

  • デフォルトでは、このパラメータはPASSWORD_VERIFIERに設定されています。PASSWORD_AUTH=PASSWORD_VERIFIER設定は、IAMデータベースのパスワード・ベリファイア認証を構成します。データベース・サーバーは、IAMからIAMデータベースのパスワード・ベリファイア(パスワードの暗号化されたハッシュ)を取得して、ユーザーを認証します。

    IAMユーザーが@connect_identifierを使用してIAMユーザー名とIAMデータベース・パスワードでログインすると、PASSWORD_AUTH=PASSWORD_VERIFIER設定と@connect_identifierはデータベース・クライアントに対して、データベース・サーバーとの既存のユーザー名およびパスワード・ログイン・プロセスに従うように指示します。

    PASSWORD_AUTHパラメータを使用すると、接続文字列に別の値を指定することで、tnsnames.oraまたはsqlnet.ora設定をオーバーライドできます。

  • IAMユーザー名とIAMデータベース・パスワードでIAMトークンベース認証を構成するには、PASSWORD_AUTH=OCI_TOKENを設定します。データベース・クライアントは、ユーザーがデータベースにアクセスするためのデータベース・トークン(db-token)を、IAMに要求します。

    クライアントによって取得される、このdb-tokenは、有効期限とスコープがあるベアラー・トークンであり、秘密キーは付属していません。これらのトークンは、セキュアなチャネルを経由して送信されます。TCP/IPプロトコルとTransport Layer Security (TLS)のみを使用する必要があり、そうしないと、TLS以外の接続が許可されていないことを示すエラー・メッセージが表示されます。

    IAMユーザーが/@connect_identifierを使用してIAMユーザー名とIAMデータベース・パスワードでログインすると、/@connect_identifierとともにPASSWORD_AUTH=OCI_TOKENを使用する設定は、REST APIリクエストを使用してOCI IAMエンドポイントから直接トークンを取得するように、データベース・クライアントに指示します。IAMユーザーがデータベース・スキーマにマップされている場合(排他的または共有)は、ログインが完了します。

    データベース・クライアントがIAMからトークンを取得するには、追加のパラメータを設定して、データベース・クライアントが追加のメタデータとIAMエンドポイントを検索できるようにする必要があります。追加パラメータは、OCI_IAM_URLOCI_TENANCY、およびオプションのOCI_COMPARTMENTOCI_DATABASEです。これらの値により、データベース・クライアントは指定されたエンドポイントに対して、適切なコールを行うことができます。

    OCI_IAM_URLパラメータは、データベース・クライアントが接続する必要があるAPIエンドポイントのURLを指定します。OCI_TENANCYパラメータは、ユーザーのテナンシのOCID (Oracle Cloud Identifier)を指定します。オプションのOCI_COMPARTMENTパラメータとOCI_DATABASEパラメータは、リクエストのスコープを制限します。

    この認証方法は、パスワード検証が機密であると見なされるため、パスワード検証を使用するよりも安全です。また、データベース・クライアントだけがデータベース・トークンを取得できます。アプリケーションやツールは、データベース・クライアントAPIを通じてこれらのタイプのトークンを渡すことはできません。

ノート:

別のIAMユーザー認証情報(APIキー、セキュリティ・トークン、リソース・プリンシパル、サービス・プリンシパル、インスタンス・プリンシパル、委任トークンなど)を使用して、db-tokenを取得することもできます。このdb-tokenは、proof-of-possession (PoP)トークンです。この場合は、別のパラメータ設定(TOKEN_AUTH=OCI_TOKEN)を使用します。

トークンの取得にデータベース・クライアントだけが使用できるIAMデータベース・パスワードとは異なり、これらの資格証明には、トークンを取得するためのアプリケーションかツールが必要です。「TOKEN_AUTH」を参照してください。

デフォルト

PASSWORD_VERIFIER

値および例

IAMデータベース・パスワード・ベリファイア認証の場合:

PASSWORD_AUTH=PASSWORD_VERIFIER

ノート: IAMデータベース・パスワード・ベリファイアでのIAMユーザー名とIAMデータベース・パスワードの使用はデフォルト設定であり、クライアントに追加のパラメータを設定する必要はありません。

ただし、クライアント側のsqlnet.oraファイルでPASSWORD_AUTHOCI_TOKENに設定されている場合、クライアントはOCI IAMに接続し、IAMユーザー名およびIAMデータベース・パスワードを使用して、データベース・トークンを取得しようとします。この場合は、PASSWORD_AUTH=PASSWORD_VERIFIERを使用して、特定の接続に対してこの設定をオーバーライドできます。

tnsnames.oraファイル:
net_service_name=
  (DESCRIPTION =
     (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521))
     (SECURITY=
        (SSL_SERVER_DN_MATCH=TRUE)
        (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
        (PASSWORD_AUTH=PASSWORD_VERIFIER))
     (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
  ) 
sqlnet.oraファイル:
PASSWORD_AUTH=PASSWORD_VERIFIER

IAMユーザー名とIAMデータベース・パスワードによるIAMトークンベース認証の場合:

PASSWORD_AUTH=OCI_TOKEN

ノート: トークンベースの認証では、TCPSプロトコル(PROTOCOL=TCPS)を構成し、SSL_SERVER_DN_MATCHパラメータをTRUEに設定する必要があります。

tnsnames.oraファイル:
net_service_name=
  (DESCRIPTION=
     (ADDRESS=(PROTOCOL=tcps)(HOST=salesserver1)(PORT=1522))
     (SECURITY=
        (SSL_SERVER_DN_MATCH=TRUE)
        (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
        (PASSWORD_AUTH=OCI_TOKEN)
        (OCI_IAM_URL=https://auth.us-region-1.example.com/v1/actions/generateScopedAccessBearerToken)
        (OCI_TENANCY=ocid1.tenancy..12345))
     (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))  
  )
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
PASSWORD_AUTH=OCI_TOKEN
OCI_IAM_URL=https://auth.us-region-1.example.com/v1/actions/generateScopedAccessBearerToken
OCI_TENANCY=ocid1.tenancy..12345

これらの例では、オプションのOCI_COMPARTMENTパラメータとOCI_DATABASEパラメータが指定されていません。そのため、テナンシ全体がトークン・リクエストのスコープとして設定されます。

5.2.30 RECV_BUF_SIZE

sqlnetのパラメータRECV_BUF_SIZEは、セッションの受信操作用バッファ領域に上限を指定するために使用します。

用途

セッションの受信操作に使用するバッファ領域の制限を指定します。

使用上のノート

特定のクライアント接続に対してこのパラメータを上書きするには、クライアントの接続記述子にRECV_BUF_SIZEパラメータを指定します。

このパラメータは、TCP/IP、TLS付きTCP/IP、SDPの各プロトコルでサポートされます。

ノート:

オペレーティング・システムによっては、他のプロトコルもこのパラメータをサポートしている場合があります。このパラメータをサポートしている他のプロトコルの詳細は、オペレーティング・システムのマニュアルを参照してください。

デフォルト

このパラメータのデフォルト値は、オペレーティング・システムによって異なります。Linux 2.6オペレーティング・システムのデフォルト値は87380バイトです。

RECV_BUF_SIZE=11784

5.2.31 REDIRECT_URI

REDIRECT_URIパラメータは、Microsoft Entra IDクライアント・アプリケーション用に登録されているリダイレクトURIを指定するために使用します。

用途

Entra IDクライアント・アプリケーション用に登録されている、リダイレクトURI (または返信URL)を指定します。これは、AZURE_INTERACTIVEトークンベースの認証フローに使用されます。このURLは、Entra認証エンドポイントから認可コードを取得し、認可コードを受信するために使用するポートを決定します。

使用上のノート

これはオプションのパラメータです。このパラメータを指定しない場合は、最も一般的なリダイレクトURLである、デフォルト値http://localhostが使用されます。

このパラメータは、ご自分のユースケースに必要な場合にのみ指定します。認可サーバーでは、Oracle Databaseセキュリティ・ガイドで示しているように、クライアント・アプリケーション用のリダイレクトURIをAzureポータルで登録してある場合のみ、指定したアドレスにユーザーがリダイレクトされます。

このパラメータは、接続文字列、簡易接続構文またはtnsnames.oraファイルでTOKEN_AUTH=AZURE_INTERACTIVE設定とともに指定できます。接続文字列で指定したパラメータ値が優先されます。

デフォルト

すべてのクライアント用のデフォルトのリダイレクトURIは次のとおりです:
http://localhost

Azureポータルにログインすることで、リダイレクトURI値を取得できます。すべてのURI値は、Entra IDサービスの「アプリの登録」 - 「認証」ページでリダイレクトURIとしてリストされます。

なお、これは、データベース・クライアント・アプリケーションをEntra IDに登録する間に指定した値です。

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION =
       (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521))
       (SECURITY=
          (SSL_SERVER_DN_MATCH=TRUE)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=AZURE_INTERACTIVE)
          (AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3)
          (REDIRECT_URI=http://localhost:1575))
       (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
     ) 
簡易接続文字列:
tcps:sales-svr:1521/sales.us.example.com?TOKEN_AUTH=AZURE_INTERACTIVE&AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3&REDIRECT_URI=http://localhost:1575

これらの例では、CLIENT_IDおよびTENANT_IDパラメータは指定されていません。CLIENT_IDおよびTENANT_IDは、シック・クライアント(OCIとInstant Client)を使用する場合の必須パラメータです。これらのパラメータは、JDBCシン、ODP.NETコアおよび管理対象データベース・クライアントの場合はオプションです。それらではAzure SDK構成からこれらの値を自動的に取得できます。

5.2.32 SDP.PF_INET_SDP

sqlnetのパラメータSDP.PF_INET_SDPは、システムのSDPプロトコルにプロトコル・ファミリ定数またはアドレス・ファミリ定数を指定するために使用します。

用途

システム上のSDPプロトコルのプロトコル・ファミリ定数またはアドレス・ファミリ定数を指定します。

デフォルト

27

任意の正の整数

SDP.PF_INET_SDP=30

5.2.33 SEC_USER_AUDIT_ACTION_BANNER。

sqlnetのパラメータSEC_USER_AUDIT_ACTION_BANNERは、ユーザー・アクション監査についてユーザーに警告するバナー・コンテンツが含まれているテキスト・ファイルの指定に使用します。

用途

ユーザー・アクション監査の可能性についてユーザーに警告するバナー・コンテンツを含むテキスト・ファイルを指定します。

使用上のノート

このテキスト・ファイルの完全パスは、サーバー側のsqlnet.oraファイルで指定する必要があります。Oracle Call Interface (OCI)アプリケーションでは、このバナーを取得してユーザーに表示するためのOCI機能を使用できます。

デフォルト

なし

データベース所有者が読取り権限を持つファイルの名前

SEC_USER_AUDIT_ACTION_BANNER=/opt/oracle/admin/data/auditwarning.txt

5.2.34 SEC_USER_UNAUTHORIZED_ACCESS_BANNER。

sqlnetのパラメータSEC_USER_UNAUTHORIZED_ACCESS_BANNERは、無認可のデータベース・アクセスについてユーザーに警告するバナー・コンテンツが含まれているファイルの指定に使用します。

用途

データベースへの無認可アクセスについてユーザーに警告するバナー・コンテンツが含まれているテキスト・ファイルを指定します。

使用上のノート

このテキスト・ファイルの完全パスは、サーバー側のsqlnet.oraファイルで指定する必要があります。OCIアプリケーションでは、このバナーを取得してユーザーに表示するためのOCI機能を使用できます。

デフォルト

なし

データベース所有者が読取り権限を持つバナー・ファイルの名前。

SEC_USER_UNAUTHORIZED_ACCESS_BANNER=/opt/oracle/admin/data/unauthwarning.txt

5.2.35 SEND_BUF_SIZE

sqlnetのパラメータSEND_BUF_SIZEは、セッションの送信操作用のバッファ領域に上限を指定するために使用します。

用途

セッションの送信操作に使用するバッファ領域の制限を指定します。

使用上のノート

特定のクライアント接続に対してこのパラメータを上書きするには、クライアントの接続記述子にSEND_BUF_SIZEパラメータを指定します。

このパラメータは、TCP/IP、TLS付きTCP/IP、SDPの各プロトコルでサポートされます。

ノート:

オペレーティング・システムによっては、他のプロトコルもこのパラメータをサポートしている場合があります。このパラメータをサポートしている他のプロトコルの詳細は、オペレーティング・システムのマニュアルを参照してください。

デフォルト

このパラメータのデフォルト値は、オペレーティング・システムによって異なります。Linux 2.6オペレーティング・システムのデフォルト値は16KBです。

SEND_BUF_SIZE=11784

5.2.36 SQLNET.ALLOW_WEAK_CRYPTO

指定されている暗号化アルゴリズムおよび暗号チェックサム・アルゴリズムを確認することで、sqlnet.ora互換性パラメータSQLNET.ALLOW_WEAK_CRYPTOを使用してクライアント側のネットワーク接続を構成します。

用途

クライアントおよびサーバーで有効になっている暗号化アルゴリズムおよび暗号チェックサム・アルゴリズムを確認することで、クライアント側のネットワーク接続を構成します。これにより、接続で互換性の問題が発生せず、サポートされている強力なアルゴリズムが構成で使用されるようになります。

使用上のノート

  • DESDES403DES1123DES168RC4_40RC4_56RC4_128RC4_256およびMD5アルゴリズムは、このリリースでは非推奨です。

    この非推奨化に伴い、ネットワーク暗号化および整合性の構成を確認して、非推奨になった脆弱なアルゴリズムのいずれかを使用するように指定されているかどうかを確認することをお薦めします。

    より強力なアルゴリズムを使用するようにOracle Database環境を移行するには、My Oracle Supportノート2118136.2で説明されているパッチをダウンロードしてインストールします。

  • このパラメータをTRUEに設定すると、下位互換性のために、非推奨アルゴリズムを指定できます。この構成では、パッチ適用済のクライアントがパッチ未適用のサーバーに接続できますが、そのような接続は安全性が低くなります。

  • このパラメータをFALSEに設定した場合は、クライアントとサーバーがすべてのパッチが適用された環境で通信できるように、サポートされているアルゴリズムのみを指定できます。サーバーは、すべてのKerberosおよびJDBCシン・クライアントに対してキー・フォールドインを強制します。この構成では、強力なネイティブ・ネットワーク暗号化および整合性の機能の使用によって、クライアントとサーバーとの接続が強化されます。

    この設定を使用した場合、ネイティブのネットワーク暗号化またはチェックサムが有効になっているときに、パッチ適用済のサーバーまたはクライアントがパッチ未適用の古いクライアントまたはサーバーと通信しようとすると、接続が失敗し、エラー・メッセージが表示されます。

  • TRUE
  • FALSE

デフォルト値

TRUE

推奨値

FALSE

ノート:

このパラメータをFALSEに設定する前に、サーバーおよびクライアントのsqlnet.oraファイルにリストされているすべての非推奨アルゴリズムを削除する必要があります。

SQLNET.ALLOW_WEAK_CRYPTO = FALSE

5.2.37 SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS

指定されている暗号化アルゴリズムおよび暗号チェックサム・アルゴリズムを確認することで、sqlnet.ora互換性パラメータSQLNET.ALLOW_WEAK_CRYPTO_CLIENTSを使用してサーバー側のネットワーク接続を構成します。

用途

クライアントおよびサーバーで有効になっている暗号化アルゴリズムおよび暗号チェックサム・アルゴリズムを確認することで、サーバー側のネットワーク接続を構成します。これにより、接続で互換性の問題が発生せず、サポートされている強力なアルゴリズムが構成で使用されるようになります。

使用上のノート

  • DESDES403DES1123DES168RC4_40RC4_56RC4_128RC4_256およびMD5アルゴリズムは、このリリースでは非推奨です。

    この非推奨化に伴い、ネットワーク暗号化および整合性の構成を確認して、非推奨になった脆弱なアルゴリズムのいずれかを使用するように指定されているかどうかを確認することをお薦めします。

    より強力なアルゴリズムを使用するようにOracle Database環境を移行するには、My Oracle Supportノート2118136.2で説明されているパッチをダウンロードしてインストールします。

  • このパラメータをTRUEに設定すると、下位互換性のために、非推奨アルゴリズムを指定できます。この構成では、パッチ適用済のサーバーがパッチ未適用のクライアントに接続できますが、そのような接続は安全性が低くなります。

  • このパラメータをFALSEに設定した場合は、クライアントとサーバーがすべてのパッチが適用された環境で通信できるように、サポートされているアルゴリズムのみを指定できます。サーバーは、すべてのKerberosおよびJDBCシン・クライアントに対してキー・フォールドインを強制します。この構成では、強力なネイティブ・ネットワーク暗号化および整合性の機能の使用によって、クライアントとサーバーとの接続が強化されます。

    この設定を使用した場合、ネイティブのネットワーク暗号化またはチェックサムが有効になっているときに、パッチ適用済のサーバーまたはクライアントがパッチ未適用の古いクライアントまたはサーバーと通信しようとすると、接続が失敗し、エラー・メッセージが表示されます。

  • TRUE
  • FALSE

デフォルト値

TRUE

推奨値

FALSE

ノート:

このパラメータをFALSEに設定する前に、サーバーおよびクライアントのsqlnet.oraファイルにリストされているすべての非推奨アルゴリズムを削除する必要があります。

SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS = FALSE

5.2.38 SQLNET.ALLOWED_LOGON_VERSION_CLIENT

sqlnetのパラメータSQLNET.ALLOWED_LOGON_VERSION_CLIENTは、別のサーバーに対するクライアントとして動作するサーバーがOracle Databaseインスタンスへの接続に使用できる最低限の認証プロトコルを定義するために使用します。

用途

Oracle Databaseインスタンスへの接続時に、サーバーがクライアントの役割を果している場合(データベース・リンクでの接続など)、クライアントに許容される最低限の認証プロトコルを設定します。

使用上のノート

パラメータ名のVERSIONは、Oracle Databaseリリースのバージョンではなく、認証プロトコルのバージョンのことを指します。

バージョンがこのパラメータで定義された値を満たしていないか超えていない場合、認証はORA-28040: 「データベースでクライアントの認証プロトコルが受け入れられません。ログインが拒否されました。」エラーを表示して失敗します。

Oracle Database 10gのデータベース・パスワード検証機能10Gは、Oracle Database 23aiでサポートされなくなったか、使用できなくなりました。Oracle Database 10Gデータベース・パスワード検証機能を識別する方法、および最新の最も安全なデータベース・パスワード検証機能の暗号化を使用するようにデータベース・ユーザーを更新する方法の詳細は、『データベース・アップグレード・ガイド』のインストール前の章を参照してください。

  • 12a: Oracle Database 12cリリース1 (12.1.0.2)以降(最も強力な保護)

    ノート:

    この設定を使用すると、クライアントでは、最適化を解除したパスワード・バージョンを使用した認証のみが可能です。たとえば、12Cパスワード・バージョンはその例です。
  • 12: クリティカル・パッチ・アップデートCPUOct2012以降のOracle Database 11g認証プロトコル(デフォルト設定)

    ノート:

    この設定を使用した場合、クライアントでは、ソルトを使用するベリファイアを使用した認証のみが可能です。たとえば、11Gまたは12Cのパスワード・バージョンはその例です。

デフォルト

12

Oracle Database 23aiデータベースが、Oracle Database 19gデータベースへのデータベース・リンクのホストである場合、SQLNET.ALLOWED_LOGON_VERSION_CLIENTパラメータは、次のように設定してデータベース・リンク接続を先に進めます:
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=12

この場合、Oracle Database 19gデータベース上のアカウントでそのパスワードが変更されていないことにより11Gベリファイアのみになることがあるため、そのデータベース・リンクをホストしている23aiサーバーで、12aの、よりセキュアなSQLNET.ALLOWED_LOGON_VERSION_CLIENT設定を構成することはできません。

5.2.39 SQLNET.ALLOWED_LOGON_VERSION_SERVER

sqlnet.oraのパラメータSQLNET.ALLOWED_LOGON_VERSION_SERVERは、Oracle Databaseのインスタンスへの接続時に許可される最小限の認証プロトコルを設定するために使用します。

用途

Oracle Databaseインスタンスへの接続時に対する最低限の認証プロトコルを設定します。

使用上のノート

  • 認証プロトコルのバージョン:

    パラメータ名のVERSIONは、Oracle Databaseのリリースではなく、認証プロトコルのバージョンを指します。

    表5-1で上位に示されている値は、互換性が低くなりますが(クライアントが認証のために理解する必要があるプロトコルの観点から)、同時に、下位に示されている値よりも安全性が高くなります。任意の特定アカウントを認証するために必要なパスワードのバージョンという点では、サーバーも制限が厳しくなります。クライアントが特定のアカウントに対して認証されるかどうかは、そのSQLNET.ALLOWED_LOGON_VERSION_SERVERパラメータのサーバーの設定と、指定したアカウントに存在するパスワード・バージョンの両方によって決まります。パスワード・バージョンのリストについては、ファイルDBA_USERS.PASSWORD_VERSIONSで確認できます。

    クライアントに、表5-1SQLNET.ALLOWED_LOGON_VERSION_SERVERパラメータの値と一致する行に対応する"クライアントに必要な機能"列にリストされている機能がない場合、認証はORA-28040: 「データベースでクライアントの認証プロトコルが受け入れられません。ログインが拒否されました。」またはORA-03134: 「このバージョンのサーバーへの接続は、サポートされていません。」エラーを表示して失敗します。

    12 (デフォルト)に設定すると、11Gおよび12Cパスワード・バージョンのみが使用可能になります。12aに設定すると、12Cパスワード・バージョンのみが使用可能になります。

    値を12または12aに設定することには、次のような意味があることに注意してください。

    • Oracle Database 10gより前のOCIクライアントの各リリースでは、パスワードベース認証を使用してOracle Databaseに対して認証することができません。

    • 古いクライアント(クリティカル・パッチ更新CPUOct2012があり、O5L_NP機能を持つOracle Database 10gなど)が、より新しいサーバーに対する認証を試行し、認証対象のサーバーに必要な11Gパスワード・バージョン(このような古いクライアントに対する認証に必要)がない場合、クライアントはORA-03134: 「このバージョンのサーバーへの接続は、サポートされていません。」エラー・メッセージを受信します。

      サーバーがデフォルトのSQLNET.ALLOWED_LOGON_VERSION_SERVER=12設定を使用しているときに、古いOracle Database 10gクライアントが認証できるようにするには、アカウントのPASSWORD_VERSIONS値(DBA_USERSで検出)に値11Gが含まれている(つまり、アカウントに対してSHA-1ベリファイアがプロビジョニングされている)ことを確認します。11Gがアカウントのパスワード・バージョンのリストに表示されない場合は、アカウントのパスワードのリセットが必要になることがあります。アカウントのパスワードをリセットすると、サーバーは古いクライアント(O5L_NP機能を持つ)の認証に必要な11Gパスワード・バージョンを自動的にプロビジョニングします。

    • Oracle Databaseリリース12.2で導入された12Cパスワード・バージョンを活用するには、ユーザー・パスワードに期限を設定して、ユーザーに各自のパスワードの変更を促し、パスワード変更によりそのアカウントに新しい12Cパスワード・バージョンが生成されるようにする必要があります。デフォルトでは、新しいパスワードは大/小文字を区別して処理されます。アカウント・パスワードが変更されると、大/小文字が区別されない以前の10Gパスワード・バージョン、および11Gパスワード・バージョンが自動的に削除され、新しい12Cパスワード・バージョンが生成されます。

    • JDBCシン・クライアント・サポート:

      Oracle Databaseリリース12.1.0.2以降、sqlnet.oraパラメータSQLNET.ALLOWED_LOGON_VERSION_SERVER12aに設定し、新しいアカウントを作成、または既存のアカウントのパスワードを変更すると、新しい12Cパスワード・バージョンのみが生成されます。12Cパスワード・バージョンは、PBKDF2 (パスワードベースのキー導出関数2)アルゴリズムを使用して最適化を解除したSHA-2 (Secure Hash Algorithm) SHA-512のソルト付き暗号化ハッシュに基づいています。ALLOWED_LOGON_VERSION_SERVER12aに設定してデータベース・サーバーが稼働している場合は、排他モードで稼働しています。このモードでJDBCクライアントを使用してログインするには、JREバージョンがバージョン8以上である必要があります。JDBCクライアントがJREバージョン8以上で稼働中の場合は、O7L_MR機能フラグのみが有効になります。

      ノート:

      『Oracle Databaseリファレンス』DBA_USERSカタログ・ビューのPASSWORD_VERSIONS列をチェックして、指定のアカウントのパスワード・バージョンのリストを確認します。

      sqlnet.oraパラメータSQLNET.ALLOWED_LOGON_VERSION_SERVER12に設定していると、サーバーは排他モードで稼働し、11Gおよび12Cパスワード・バージョン(それぞれSHA-1およびPBKDF2 SHA-2ベースのパスワードのハッシュ)のみが生成され、使用できるようになります。このような場合、CPUOct2012パッチが完全に適用されたJDBCクライアントは、これらのJDBCクライアントからO5L_NPクライアント機能が提供されるために接続が可能です。

      以前のJDBCクライアントには、ステルス・パスワード・クラッキングの脆弱性CVE-2012-3132に対するフィックスを含むCPUOct2012がないため、O5L_NPクライアント機能は提供されません。そのため、すべてのJDBCクライアントに適切なパッチが適用されていることを確認してください。

  • Oracle Database 10Gパスワード検証機能のサポート終了

    Oracle Database 10gのデータベース・パスワード検証機能10Gは、Oracle Database 23aiでサポートされなくなったか、使用できなくなりました。Oracle Database 10Gデータベース・パスワード検証機能を識別する方法、および最新の最も安全なデータベース・パスワード検証機能の暗号化を使用するようにデータベース・ユーザーを更新する方法の詳細は、『データベース・アップグレード・ガイド』のインストール前の章を参照してください。

    これらのサーバーはALLOWED_LOGON_VERSION_SERVER=12のデフォルト構成を使用し、10Gベリファイアをサポートしていないため、古いクライアント機能は、より最新のサーバーで認証するには十分ではないことに注意してください。認証に12Cパスワード・バージョンを排他的に使用するには、すべてのクライアントをOracle Databaseリリース12cにアップグレードする必要があります。デフォルトでは、Oracle Databaseリリース11.2.0.3以上のクライアントにO5L_NP機能があります。これにより、11Gパスワード・バージョンを排他的に使用できるようになります。以前のOracle Databaseクライアントがある場合は、CPUOct2012パッチをインストールする必要があります。

  • クライアント機能:

    サーバーによる認証を行うには、クライアントで認証プロトコルの特定の機能がサポートされている必要があります。クライアントが指定された認証機能をサポートしていない場合、サーバーはORA-28040「データベースでクライアントの認証プロトコルが受け入れられません。ログインが拒否されました。」エラー・メッセージを表示して接続を拒否します。

    次に、すべてのクライアント機能のリストを示します。リストされているすべての機能が備わっていないクライアントもあります。新しいクライアントには古いクライアントの機能がすべて備わっていますが、古いクライアントに備わっている機能は新しいクライアントの機能より少ない傾向があります。このリストで上位に示されている機能ほど新しく、下位に示されている機能よりも安全です。

    • O8L_LI: 長い識別子(ユーザー名は最大128バイト)をサポートする機能。

    • O7L_MR: 12Cのパスワード・バージョンを使用して、Oracle Database 10gの認証プロトコルを実行する機能。JDBCクライアントの場合は、JREバージョン8以上で稼働中の場合にのみO7L_MR機能が提供されます。

    • O5L_NP: 11Gパスワード・バージョンを使用して、クリティカル・パッチ更新CPUOct2012用に暗号化されたセッション・キーを生成し、Oracle Database 10gの認証プロトコルを実行する機能。

    • O5L (Oracle Database 23aiでサポートが終了): 10Gのパスワード・バージョンを使用して、Oracle Database 10gの認証プロトコルを実行する機能。

    • O4L (Oracle Database 23aiでサポートが終了): 10Gのパスワード・バージョンを使用して、Oracle9iデータベース認証プロトコルを実行する機能。

    • O3L (Oracle Database 23aiでサポートが終了): 10Gのパスワード・バージョンを使用して、Oracle8iデータベース認証プロトコルを実行する機能。

  • 段階的データベース・パスワード・ロールオーバー機能の使用

    アカウントに対して段階的データベース・パスワード・ロールオーバー機能が有効になっている場合は、監査レコードでLOGON_INFO句を使用すると、ユーザーが古いパスワードでログインしたかどうか、または新しいパスワードを使用してログインするようにアプリケーションがまだ更新されていないかどうかを確認できます。

    たとえば:
    (TYPE=(DATABASE));
    (CLIENT ADDRESS=((PROTOCOL=ipc)(HOST=0.0.0.0)));
    (LOGON_INFO=((VERIFIER=11G-OLD)(CLIENT_CAPABILITIES=O5L_NP,O7L_MR,O8L_LI)));
  • 許可されるパラメータ設定:

    次の表では、SQLNET.ALLOWED_LOGON_VERSION_SERVERパラメータで許可される設定、アカウントの作成時またはパスワードの変更時に生成されるパスワード・バージョンに与える影響、サーバーにこの設定がある場合にクライアントが認証するために必要な機能フラグ、および設定が排他モードとみなされるかどうかについて説明します。

    表5-1 SQLNET.ALLOWED_LOGON_VERSION_SERVERの設定

    ALLOWED_LOGON_VERSION_SERVERパラメータの値 生成されるパスワード・バージョン クライアントに必要な機能 クライアントに対する意味 サーバーを排他モードで実行しているか

    12a

    12C

    O7L_MR

    Oracle Database 12cリリース1 (12.1.0.2以上)のクライアントのみがサーバーに接続できます。

    はい。これは11Gパスワード・バージョンの使用が除外されているためです。

    12

    11G12C

    O5L_NP

    Oracle Database 11gリリース2 (11.2.0.3以上)のクライアントがサーバーに接続できます。

    古いクライアントでO5L_NP機能を使用するには、クリティカル・パッチ・アップデートCPUOct2012以上が必要です。

    クリティカル・パッチ・アップデートCPUOct2012以降が適用されている古いクライアントのみがサーバーに接続できます。

    はい。これは 10Gパスワード・バージョンの使用が除外されているためです。

  • 12a: Oracle Database 12cリリース12.1.0.2以上の認証プロトコル(最も強力な保護)

  • 12: Oracle Database 12c リリース12.1の認証プロトコル(デフォルトおよび推奨値)

ノート:

  • Oracle Database 12cリリース2 (12.2)以上では、デフォルト値は12です。

  • 以前のリリースでは、クリティカル・パッチ・アップデートCPUOct2012以上を適用した後に値12を使用できます。

デフォルト

12

SQLNET.ALLOWED_LOGON_VERSION_SERVER=12

5.2.40 SQLNET.AUTHENTICATION_SERVICES

sqlnet.oraのパラメータSQLNET.AUTHENTICATION_SERVICESは、1つ以上の認証サービスを有効化するために使用します。

用途

1つ以上の認証サービスを使用可能にします。認証をインストールした場合は、SQLNET.AUTHENTICATION_SERVICESNONEに設定するか、リストに示した認証方法のいずれかに設定することをお薦めします。

使用上のノート

  • このパラメータは、sqlnet.oraファイル内で設定できます。

    この値は、tnsnames.oraファイル内で設定することも、接続文字列の一部として直接設定することもできます。SQLNET.AUTHENTICATION_SERVICESパラメータは、tnsnames.oraのパラメータAUTHENTICATION_SERVICEと同等です。接続文字列で指定したパラメータ値が優先されます。

  • SQLNET.AUTHENTICATION_SERVICESALLに設定した場合は、サーバーにより、次の各方法を使用して認証が試みられます。

    1. ネットワーク層上のサービス、KerberosまたはRADIUSなどの、データベース外部のサービスに基づく認証。

    2. 管理オペレーティング・システム・グループ内のオペレーティング・システム・ユーザーのメンバーシップに基づく認証。グループ名はプラットフォーム固有です。この認証は管理接続にのみ適用されます。

    3. データベースによって実行される認証。

    4. ディレクトリ・サーバー内に保管された資格証明に基づく認証。

    サーバーはリストの上位に示された認証方法を使用しようとして失敗した場合、それより下位にリストされた認証方法にフォールバックします。

  • ローカル・データベース・パスワード認証(外部認証なし)を使用する場合は、クライアント・パフォーマンスを向上させるためにSQLNET.AUTHENTICATION_SERVICES=(NONE)を設定します。

  • オペレーティング・システム認証では、SQL*Plusを使用した接続時にAS SYSDBA句を使用するなど、CDBルートに対して管理接続を試みたときに、任意のユーザー名およびパスワードを使用してデータベースにアクセスできます。

    CDBルートへの接続の例を次に示します。

    sqlplus ignored_username/ignored_password AS SYSDBA

    先行するコマンドを発行したオペレーティング・システム・ユーザーがすでに適切な管理オペレーティング・システム・グループのメンバーである場合、接続は成功します。これは、Oracleによって最初にグループ・メンバーシップが確認されることで、サーバーでユーザー名とパスワードが無視されるためです。

Oracle Net Servicesで使用可能な認証方式:

  • NONE: Microsoft Windowsオペレーティング・システム固有の認証を含め、認証方式を使用しません。SQLNET.AUTHENTICATION_SERVICESNONEに設定すると、ユーザーは有効なユーザー名とパスワードを使用することでデータベースにアクセスできます。

  • ALL: すべての認証方式を採用します。

  • BEQ: Microsoft Windows以外のオペレーティング・システムに対する固有のオペレーティング・システム認証を採用します。

  • KERBEROS5: Kerberos認証を採用します。

  • RADIUS: リモート認証ダイアルイン・ユーザー・サービス(RADIUS)認証を採用します。

  • TCPS: TLS認証を採用します。

  • NTS: Microsoft Windowsオペレーティング・システム固有の認証を採用します。この場合、ユーザーは、Windowsネイティブ認証を使用してOS資格証明によりデータベース(CDBルート)に対して認証する必要があります。外部パスワードは必要ありません。NTSは、OSユーザーのグループ・メンバーシップを確認します。たとえば、OSユーザーがORA_DBAグループのメンバーである場合、このユーザーはSYSDBAとしてデータベースにログインできます。

    ノート:

    SQLNET.AUTHENTICATION_SERVICESの値がNTSの場合は、NTS認証を使用してSQL*Plusを介して接続し、外部パスワード(SQL*Plus SYSTEM/passwordなど)を指定しようとすると、接続が失敗してORA-12638、00000、「adapter_nameの資格証明の取得に失敗しました。」というエラー・メッセージが表示されます。ユーザー名とパスワードに基づいた通常の認証の場合は、この値をNONEに設定します。

デフォルト

TCPS

ノート:

Database Configuration Assistant (DBCA)とともにOracle Databaseをインストールすると、このパラメータはsqlnet.oraファイルでNTSに設定できます。

複数の認証サービスを指定する場合は、次のように値をカッコで囲む必要があります:

SQLNET.AUTHENTICATION_SERVICES=(BEQ,KERBEROS5)

単一の認証サービスのみを指定する場合、カッコは不要です:

SQLNET.AUTHENTICATION_SERVICES=KERBEROS5

5.2.41 SQLNET.BREAK_RESET_TIMEOUT

sqlnet.oraのパラメータSQLNET.BREAK_RESET_TIMEOUTは、データベース・クライアントまたはサーバーがブレーク/リセット操作の完了を待機する必要がある期間の指定に使用します。

用途

データベース・クライアントまたはサーバーがブレーク/リセット操作が完了するのを待機する時間を指定します。指定した期間内にブレーク/リセット操作が完了しないと、接続がクローズされます。

時間、分、秒またはミリ秒単位で指定するには、それぞれhrminsecまたはmsキーワードを使用します。測定単位を指定してない場合、デフォルトの単位はsecになります。

使用上のノート

このパラメータを設定すると、ブレーク/リセット操作が完了するまでピアが無期限に待機したままになることがなくなります。指定したBREAK_RESET_TIMEOUT時間隔内にピアがレスポンス・データを受信しないと、接続がクローズされます。この期間を設定する場合は、値を最初は小さく設定し、システムとネットワークの容量に応じて調整します。

デフォルト

なし

最小値

1 ms

許容範囲

最小値1 msから4294967295 msまでの任意の数値

SQLNET.BREAK_RESET_TIMEOUT=10 ms

5.2.42 SQLNET.CLIENT_REGISTRATION

sqlnet.oraのパラメータSQLNET.CLIENT_REGISTRATIONは、クライアント・コンピュータの一意識別子を設定するために使用します。

用途

クライアント・コンピュータに一意の識別子を設定します。

使用上のノート

この識別子は、接続リクエストとともにリスナーに渡されて監査証跡に組み込まれます。識別子は、128文字までの長さの英数文字列にできます。

デフォルト

なし

SQLNET.CLIENT_REGISTRATION=1432

5.2.43 SQLNET.CLOUD_USER

sqlnet.oraのパラメータSQLNET.CLOUD_USERは、WebサーバーのHTTP Basic認証のユーザー名を指定するために使用します。

用途

WebサーバーのHTTP Basic認証のためのユーザー名を指定します。

使用上のノート

セキュアなwebsocketプロトコルを使用すると、クライアントでは、このユーザーが認証用のユーザー名として使用されます。このユーザーのパスワードは、mkstoreコマンドを使用してウォレットに格納する必要があります。

次の構成ステップを実行して、セキュアなwebsocketでHTTP Basic認証を使用するようにします。

  1. orapkiユーティリティを使用して、ウォレットを作成します。

    orapki wallet create -wallet wallet_directory

    orapki wallet create -wallet /app/wallet
  2. Webサーバーのパブリック証明書を追加します。

    orapki wallet -wallet  wallet_directory  -trusted_cert -cert  web_server_public_certificate_in_pem_format

    orapki wallet -wallet  /app/wallet  -trusted_cert -cert  server_cert.txt
  3. Webサーバーのユーザー名をsqlnet.oraに追加します。このユーザー名は、Webサーバーの認証にのみ使用されます。これはデータベース・ユーザー名ではありません。Webサーバー認証の後、Webサーバーはバックエンド・データベース・サーバーに接続して、データベース認証が完了します。

    sqlnet.cloud_user = dbuser1
  4. Webサーバーのユーザー・パスワードをウォレットに追加します。

    mkstore -wrl wallet_location  -createEntry username password

    mkstore -wrl  /app/wallet  -createEntry  dbuser1  Secretdb#
  5. ウォレットが自動的にログインするようにして、オペレーティング・システムのファイル権限などの手段を使用することで、このウォレット・ディレクトリを保護します。そうすることで、データベース・クライアントのみが読取りアクセスできるようにします。ファイル権限の変更の詳細は、オペレーティング・システムのユーティリティを参照してください。

    orapki wallet create -wallet wallet_directory -auto_login

    orapki wallet create -wallet /app/wallet -auto_login

    ノート:

    Oracle Database 23aiでは、新しい自動ログイン・ウォレット・バージョン(7)が導入されました。Oracleローカル自動ログイン・ウォレットのバージョン6は、非推奨です。

    ローカル自動ログイン・ウォレットは、orapkiを使用して変更することで更新できます。

  6. ウォレット・エントリで、sqlnet.oraファイルを更新します。

    wallet_location=(SOURCE=(METHOD=file)(METHOD_DATA=(DIRECTORY=/app/wallet)))

ノート:

  • パラメータWALLET_LOCATIONは、Oracle DatabaseサーバーのOracle Database 23aiでの使用は非推奨です。Oracle Databaseクライアントおよびリスナーでの使用は非推奨ではありません。

    Oracle Databaseサーバーの場合、WALLET_LOCATIONを使用するかわりに、WALLET_ROOTシステム・パラメータを使用することをお薦めします。

  • mkstoreウォレット管理コマンドライン・ツールは、Oracle Database 23aiでは非推奨であり、将来のリリースで削除される可能性があります。

    ウォレットの管理には、orapkiコマンドライン・ツールの使用をお薦めします。

デフォルト

なし

5.2.44 SQLNET.COMPRESSION

sqlnet.oraのパラメータSQLNET.COMPRESSIONは、データ圧縮を有効化または無効化するために使用します。

用途

データ圧縮を有効または無効にします。サーバー、クライアントの両方ともこのパラメータをONに設定している場合、接続に圧縮が使用されます。

ノート:

SQLNET.COMPRESSIONパラメータは、Oracle Data GuardストリーミングREDOとSecureFilesラージ・オブジェクト(LOB)を除く、すべてのデータベース接続に適用されます。

デフォルト

off

  • on: データ圧縮を有効にします。

  • off: データ圧縮を無効にします。

SQLNET.COMPRESSION=on

5.2.45 SQLNET.COMPRESSION_ACCELERATION

sqlnet.oraのパラメータSQLNET.COMPRESSION_ACCELERATIONは、ハードウェア・アクセラレータによる圧縮の使用を指定するために使用します(このパラメータは、そのハードウェア機能がプラットフォームで使用可能な場合に使用します)。

用途

プラットフォームで使用可能な場合に、このパラメータを使用して、ハードウェア・アクセラレータを使用した圧縮の使用を指定します。

使用上のノート

このパラメータは、Oracle Connection Managerの別名の説明で設定できます。

デフォルト

on

  • on

  • off

  • 0

  • 1

例5-4 例

compression_acceleration = on

5.2.46 SQLNET.COMPRESSION_LEVELS

sqlnet.oraのパラメータSQLNET.COMPRESSION_LEVELSは、圧縮レベルを指定するために使用します。

用途

圧縮レベルを指定します。

使用上のノート

圧縮レベルは、どのレベルを使用するかを両端で確認して、1つのレベルを選択するためのネゴシエーション時に使用されます。

データベース常駐接続プーリング(DRCP)の場合、圧縮レベルlowのみがサポートされます。

デフォルト

low

  • low: 低CPU使用率と低圧縮率を使用します

  • high: 高CPU使用率および高圧縮率を使用します

SQLNET.COMPRESSION_LEVELS=(high)

5.2.47 SQLNET.COMPRESSION_THRESHOLD

sqlnet.oraのパラメータSQLNET.COMPRESSION_THRESHOLDは、圧縮が必要になる最小のデータ・サイズを指定するために使用します。

用途

圧縮が必要なデータの最小サイズをバイト数で指定します。

使用上のノート

この値よりも小さいサイズのデータを送信した場合、圧縮は実行されません。

デフォルト

1024バイト

SQLNET.COMPRESSION_THRESHOLD=1024

5.2.48 SQLNET.CRYPTO_CHECKSUM_CLIENT

sqlnet.oraのパラメータSQLNET.CRYPTO_CHECKSUM_CLIENTを使用して、このクライアント、またはクライアントとして機能しているサーバーがサーバーに接続する際の必要なデータ整合性動作を指定します。

用途

クライアントのチェックサム動作を指定します。動作は、接続の相手側のSQLNET.CRYPTO_CHECKSUM_SERVERの設定に部分的に依存します。

デフォルト

accepted

  • accepted: 相手側にセキュリティ・サービスが必要な場合または相手側からリクエストされた場合は、セキュリティ・サービスを使用可能にします

  • rejected: 相手側からセキュリティ・サービスを要求されても、セキュリティ・サービスを使用禁止にします

  • requested: 相手側がセキュリティ・サービスを許可している場合は、セキュリティ・サービスを使用可能にします

  • required: 相手側がセキュリティ・サービスに対応できない場合は、セキュリティ・サービスを使用可能にし、接続を禁止します

SQLNET.CRYPTO_CHECKSUM_CLIENT=accepted

5.2.49 SQLNET.CRYPTO_CHECKSUM_SERVER

sqlnet.oraのパラメータSQLNET.CRYPTO_CHECKSUM_SERVERを使用して、クライアント、またはクライアントとして機能している別のサーバーがこのサーバーに接続する際のデータ整合性動作を指定します。

用途

データベースのチェックサム動作を指定します。動作は、接続の相手側のSQLNET.CRYPTO_CHECKSUM_CLIENTの設定に部分的に依存します。

デフォルト

accepted

  • accepted: 相手側にセキュリティ・サービスが必要な場合または相手側からリクエストされた場合は、セキュリティ・サービスを使用可能にします

  • rejected: 相手側からセキュリティ・サービスを要求されても、セキュリティ・サービスを使用禁止にします

  • requested: 相手側がセキュリティ・サービスを許可している場合は、セキュリティ・サービスを使用可能にします

  • required: 相手側がセキュリティ・サービスに対応できない場合は、セキュリティ・サービスを使用可能にし、接続を禁止します

SQLNET.CRYPTO_CHECKSUM_SERVER=accepted

5.2.50 SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT

sqlnet.oraのパラメータSQLNET.CRYPTO_CHECKSUM_TYPES_CLIENTを使用して、このクライアント、またはクライアントとして機能しているサーバーで使用するデータ整合性アルゴリズムのリストを指定します。

用途

クライアントが使用する暗号チェックサム・アルゴリズムのリストを指定します。

このリストは、相互に使用可能なアルゴリズムを接続の相手側とネゴシエートする際に使用されます。インストールされていないアルゴリズムをこの側で指定した場合、接続はORA-12650: 共通の暗号化またはデータ整合性アルゴリズムがありません。のエラー・メッセージで終了します。

デフォルト

使用可能なすべてのアルゴリズム

  • MD5: RSA Data SecurityのMD5アルゴリズム

    MD5アルゴリズムは、このリリースでは非推奨です。より強力なアルゴリズムを使用するようにOracle Database環境を移行するには、My Oracle Supportノート2118136.2で説明されているパッチをダウンロードしてインストールします。

  • SHA1: Secure Hashアルゴリズム

    DBMS_CRYPTOSQLNET.CRYPTO_CHECKSUM_TYPES_CLIENTおよびSQLNET.CRYPTO_CHECKSUM_TYPES_SERVERでのSHA-1の使用は非推奨になりました。

    パラメータSQLNET.CRYPTO_CHECKSUM_TYPES_CLIENTおよびSQLNET.CRYPTO_CHECKSUM_TYPES_SERVERでのSHA-1 (Secure Hash Algorithm 1)の使用は、このリリースでは非推奨となり、将来のリリースではサポートされなくなる可能性があります。DBMS_CRYPTOでのSHA-1暗号の使用も非推奨になりました(HASH_SH1HMAC_SH1)。SHA1を使用するのではなく、SHA-1暗号のかわりにより強力なSHA-2暗号の使用を開始することをお薦めします。

  • SHA256: ハッシュ・アルゴリズムで256ビットを使用するSHA-2

  • SHA384: ハッシュ・アルゴリズムで384ビットを使用するSHA-2

  • SHA512: ハッシュ・アルゴリズムで512ビットを使用するSHA-2

SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT=(SHA256, MD5)

5.2.51 SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER

sqlnet.oraのパラメータSQLNET.CRYPTO_CHECKSUM_TYPES_SERVERを使用して、このサーバー、または別のサーバーのクライアントで使用するデータ整合性アルゴリズムを使用順で指定します。

用途

データベースが使用する暗号チェックサム・アルゴリズムのリストを指定します。

このリストは、相互に使用可能なアルゴリズムを接続の相手側とネゴシエートする際に使用されます。各アルゴリズムは、一致するものが見つかるまで、使用可能なクライアント・アルゴリズムのタイプのリストに対してチェックされます。インストールされていないアルゴリズムをこちら側で指定した場合、接続は、「ORA-12650: 共通の暗号化またはデータ整合性アルゴリズムがありません」というエラー・メッセージが表示されて終了します。

デフォルト

使用可能なすべてのアルゴリズム

  • MD5: RSA Data SecurityのMD5アルゴリズム。

    MD5アルゴリズムは、このリリースでは非推奨です。より強力なアルゴリズムを使用するようにOracle Database環境を移行するには、My Oracle Supportノート2118136.2で説明されているパッチをダウンロードしてインストールします。

  • SHA1: Secure Hashアルゴリズム

    DBMS_CRYPTOSQLNET.CRYPTO_CHECKSUM_TYPES_CLIENTおよびSQLNET.CRYPTO_CHECKSUM_TYPES_SERVERでのSHA-1の使用は非推奨になりました。

    パラメータSQLNET.CRYPTO_CHECKSUM_TYPES_CLIENTおよびSQLNET.CRYPTO_CHECKSUM_TYPES_SERVERでのSHA-1 (Secure Hash Algorithm 1)の使用は、このリリースでは非推奨となり、将来のリリースではサポートされなくなる可能性があります。DBMS_CRYPTOでのSHA-1暗号の使用も非推奨になりました(HASH_SH1HMAC_SH1)。SHA1を使用するのではなく、SHA-1暗号のかわりにより強力なSHA-2暗号の使用を開始することをお薦めします。

  • SHA256: ハッシュ・アルゴリズムで256ビットを使用するSHA-2

  • SHA384: ハッシュ・アルゴリズムで384ビットを使用するSHA-2

  • SHA512: ハッシュ・アルゴリズムで512ビットを使用するSHA-2

SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA256, MD5)

5.2.52 SQLNET.DBFW_PUBLIC_KEY

sqlnet.oraのパラメータSQLNET.DBFW_PUBLIC_KEYは、Oracle Database Firewall公開キーが格納されているファイルを指定することで、その公開キーをアドバンスト・セキュリティ・オプション(ASO)に提示するために使用します。

用途

Oracle Database Firewall公開キーが格納されているファイルの名前を指定することで、その公開キーをアドバンスト・セキュリティ・オプション(ASO)に提示します。

デフォルト

なし

公開キーを持つオペレーティング・システム・ファイルのフルパス名

SQLNET.DBFW_PUBLIC_KEY="/path_to_file/dbfw_public_key_file.txt"

5.2.53 SQLNET.DOWN_HOSTS_TIMEOUT

sqlnet.oraのパラメータSQLNET.DOWN_HOSTS_TIMEOUTは、サーバー・ホストのdown状態情報がクライアントのキャッシュに保持される時間を秒単位で指定するために使用します。

用途

サーバー・ホストのdown状態に関する情報がクライアント・プロセス・キャッシュに保持される時間を秒単位で指定します。

使用上のノート

クライアントは接続の試行時にサーバー・ホストのdown状態を検出します。接続の試行が失敗すると、サーバー・ホストのdown状態に関する情報がクライアント・プロセス・キャッシュに追加されます。それ以降の同じクライアント・プロセスによる接続の試行では、downホストのアドレスがアドレス・リストの最後に移動されるため、downホストの優先度が下がります。SQLNET.DOWN_HOSTS_TIMEOUTパラメータで指定した時間が経過すると、ホストはプロセス・キャッシュからパージされ、そのホストのアドレス・リスト内の優先度が元に戻されます。

デフォルト

600秒(10分)

任意の正の整数

SQLNET.DOWN_HOSTS_TIMEOUT=60

5.2.54 SQLNET.ENCRYPTION_CLIENT

sqlnet.oraのパラメータSQLNET.ENCRYPTION_CLIENTを使用して、このクライアント、またはクライアントとして機能しているサーバーがサーバーに接続する際の暗号化動作を指定します。

用途

クライアントの暗号化を有効にします。tnsnames.oraパラメータIGNORE_ANO_ENCRYPTION_FOR_TCPSTRUEに設定すると、SQLNET.ENCRYPTION_CLIENTは無効になります。

クライアントの動作は、接続の相手側のSQLNET.ENCRYPTION_SERVERの設定値に部分的に依存します。

デフォルト

accepted

  • accepted: 相手側にセキュリティ・サービスが必要な場合または相手側からリクエストされた場合は、セキュリティ・サービスを使用可能にします

  • rejected: 相手側からセキュリティ・サービスを要求されても、セキュリティ・サービスを使用禁止にします

  • requested: 相手側がセキュリティ・サービスを許可している場合は、セキュリティ・サービスを使用可能にします

  • required: 相手側がセキュリティ・サービスに対応できない場合は、セキュリティ・サービスを使用可能にし、接続を禁止します

SQLNET.ENCRYPTION_CLIENT=accepted

5.2.55 SQLNET.ENCRYPTION_SERVER

sqlnet.oraのパラメータSQLNET.ENCRYPTION_SERVERでは、クライアント、またはクライアントとして機能しているサーバーがこのサーバーに接続する際の暗号化動作を指定します。

用途

データベースの暗号化を有効にします。SQLNET.IGNORE_ANO_ENCRYPTION_FOR_TCPSFALSEに設定すると、SQLNET.ENCRYPTION_SERVERが無効になります。

サーバーの動作は、接続の相手側のSQLNET.ENCRYPTION_CLIENTの設定に部分的に依存します。

デフォルト

accepted

  • accepted: 相手側にセキュリティ・サービスが必要な場合または相手側からリクエストされた場合は、セキュリティ・サービスを使用可能にします

  • rejected: 相手側からセキュリティ・サービスを要求されても、セキュリティ・サービスを使用禁止にします

  • requested: 相手側がセキュリティ・サービスを許可している場合は、セキュリティ・サービスを使用可能にします

  • required: 相手側がセキュリティ・サービスに対応できない場合は、セキュリティ・サービスを使用可能にし、接続を禁止します

SQLNET.ENCRYPTION_SERVER=accepted

5.2.56 SQLNET.ENCRYPTION_TYPES_CLIENT

sqlnet.oraのパラメータSQLNET.ENCRYPTION_TYPES_CLIENTは、このクライアントまたはクライアントとして機能しているサーバーで使用する暗号化アルゴリズムを指定するために使用します。

用途

このリストは、相互に使用可能なアルゴリズムを接続の相手側とネゴシエートする際に使用されます。インストールされていないアルゴリズムがこの側に指定されている場合、接続はORA-12650: No common encryption or data integrity algorithmエラー・メッセージで終了します。

使用上のノート

Oracle Database 21c以降、古い暗号化およびハッシュ・アルゴリズムは非推奨になりました。

非推奨のアルゴリズムには、DBMS_CRYPTOおよびネイティブ・ネットワーク暗号化の場合はMD4、MD5、DES、3DESおよびRC4関連アルゴリズム、透過的データ暗号化(TDE)の場合は3DESがあります。安全性の低い古い暗号化アルゴリズムを削除すると、これらのアルゴリズムを誤って使用することがなくなります。セキュリティ要件を満たすために、Advanced Encryption Standard (AES)などの最新の暗号化アルゴリズムを使用することをお薦めします。

この非推奨化に伴い、ネットワーク暗号化構成を確認して、非推奨になったアルゴリズムのいずれかを使用するように指定されているかどうかを確認することをお薦めします。見つかった場合は、AESなどの最新の暗号を使用するように切り替えてください。また、現在TDEデプロイメントに3DES暗号化を使用している場合は、AESなどの最新のアルゴリズムへの移行を計画する必要があります。詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください

より強力なアルゴリズムを使用するようにOracle Database環境を移行するには、My Oracle Supportノート2118136.2で説明されているパッチをダウンロードしてインストールします。

デフォルト

使用可能なすべてのアルゴリズム

承認されたアルゴリズム:
  • AES128: AES (128ビット・キー・サイズ)

  • AES192: AES (192ビット・キー・サイズ)

  • AES256: AES (256ビット・キー・サイズ)

非推奨のアルゴリズム:
  • 3DES112: 2キー(112ビット)オプション付きTriple-DES

  • 3DES168: 3キー(168ビット)オプション付きTriple-DES

  • DES: 標準DES (56ビット・キー・サイズ)

  • DES40: DES (40ビット・キー・サイズ)

  • RC4_40: RSA RC4 (40ビット・キー・サイズ)

  • RC4_56: RSA RC4 (56ビット・キー・サイズ)

  • RC4_128: RSA RC4 (128ビット・キー・サイズ)

  • RC4_256: RSA RC4 (256ビット・キー・サイズ)

SQLNET.ENCRYPTION_TYPES_CLIENT=(AES256)

5.2.57 SQLNET.ENCRYPTION_TYPES_SERVER

sqlnet.oraのパラメータSQLNET.ENCRYPTION_TYPES_SERVERは、このサーバーで使用する暗号化アルゴリズムを目的の用途の順序で指定するために使用します。

用途

このリストは、相互に使用可能なアルゴリズムを接続のクライアント側とネゴシエートする際に使用されます。各アルゴリズムは、一致するものが見つかるまで、使用可能なクライアント・アルゴリズムのタイプのリストに対してチェックされます。インストールされていないアルゴリズムがこの側に指定されている場合、接続はORA-12650: No common encryption or data integrity algorithmエラー・メッセージで終了します。

デフォルト

使用可能なすべてのアルゴリズム

承認されたアルゴリズム:
  • AES128: AES (128ビット・キー・サイズ)

  • AES192: AES (192ビット・キー・サイズ)

  • AES256: AES (256ビット・キー・サイズ)

非推奨のアルゴリズム:
  • 3DES112: 2キー(112ビット)オプション付きTriple-DES

  • 3DES168: 3キー(168ビット)オプション付きTriple-DES

  • DES: 標準DES (56ビット・キー・サイズ)

  • DES40: DES40 (40ビット・キー・サイズ)

  • RC4_40: RSA RC4 (40ビット・キー・サイズ)

  • RC4_56: RSA RC4 (56ビット・キー・サイズ)

  • RC4_128: RSA RC4 (128ビット・キー・サイズ)

  • RC4_256: RSA RC4 (256ビット・キー・サイズ)

Oracle Database 21c以降、古い暗号化およびハッシュ・アルゴリズムは非推奨になりました。

非推奨のアルゴリズムには、DBMS_CRYPTOおよびネイティブ・ネットワーク暗号化の場合はMD4、MD5、DES、3DESおよびRC4関連アルゴリズム、透過的データ暗号化(TDE)の場合は3DESがあります。安全性の低い古い暗号化アルゴリズムを削除すると、これらのアルゴリズムを誤って使用することがなくなります。セキュリティ要件を満たすために、Advanced Encryption Standard (AES)などの最新の暗号化アルゴリズムを使用することをお薦めします。

この非推奨化に伴い、ネットワーク暗号化構成を確認して、非推奨になったアルゴリズムのいずれかを使用するように指定されているかどうかを確認することをお薦めします。見つかった場合は、AESなどの最新の暗号を使用するように切り替えてください。また、現在TDEデプロイメントに3DES暗号化を使用している場合は、AESなどの最新のアルゴリズムへの移行を計画する必要があります。詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください

より強力なアルゴリズムを使用するようにOracle Database環境を移行するには、My Oracle Supportノート2118136.2で説明されているパッチをダウンロードしてインストールします。

SQLNET.ENCRYPTION_TYPES_SERVER=(AES256, AES192, ...)

5.2.58 SQLNET.EXPIRE_TIME

sqlnet.oraのパラメータSQLNET.EXPIRE_TIMEは、クライアントとサーバーの接続がアクティブになっていることを確認する頻度(分単位)を指定するために使用します。

用途

クライアントとサーバーの接続がアクティブになっていることを確認する頻度(分単位の時間間隔)を指定します。

使用上のノート

0より大きい値を設定すると、クライアントの異常終了によって接続がいつまでも開かれたままにならないようにできます。目的の環境でTCPのキープアライブ設定のチューニングがサポートされている場合、Oracle Net Servicesでは自動的に強化された検出モデルを使用して、TCPのキープアライブ設定のパラメータをチューニングします。

検証チェックによって、終了した接続や使用しなくなった接続が識別されると、エラーが返されてサーバー・プロセスが終了します。

sqlnet.oraのパラメータSQLNET.EXPIRE_TIMEは、一般に複数の接続を同時に処理するデータベース・サーバーが主な対象になります。

また、このパラメータは、サーバー接続がアクティブかどうかを確認するためにデータベース・クライアントに対して使用することもできます。

終了した接続の検出機能の使用に関する制限は、次のとおりです。

  • Bequeathed接続には使用できません。

  • プローブ・パケットにより通信量がわずかに増加するため、ネットワーク・パフォーマンスが低下する可能性があります。

  • オペレーティング・システムによっては、その他のイベントと接続プローブ・イベントを区別するために、サーバーで追加の処理が必要になる場合があります。これも、ネットワーク・パフォーマンスの低下につながる可能性があります。

デフォルト

0

最小値

0

推奨値

10

SQLNET.EXPIRE_TIME=10

5.2.59 SQLNET.IGNORE_ANO_ENCRYPTION_FOR_TCPS

sqlnet.oraのパラメータSQLNET.IGNORE_ANO_ENCRYPTION_FOR_TCPSは、TCPS接続のパラメータSQLNET.ENCRYPTION_SERVERに設定されている値を無視するために使用します。これにより、TCPSリスナーでのANO暗号化は無効になります。

用途

サーバー側でSQLNET.IGNORE_ANO_ENCRYPTION_FOR_TCPSを使用すると、TCPS接続のためのSQLNET.ENCRYPTION_SERVERに設定されている値が無視されます。これにより、TCPSリスナーでのANO暗号化が無効になります。

デフォルト

FALSE

例5-5 例

SQLNET.IGNORE_ANO_ENCRYPTION_FOR_TCPS=TRUE

5.2.60 SQLNET.INBOUND_CONNECT_TIMEOUT

sqlnet.oraのパラメータSQLNET.INBOUND_CONNECT_TIMEOUTは、クライアントがデータベースに接続して認証するまでに許容される時間を指定します。

用途

パラメータSQLNET.INBOUND_CONNECT_TIMEOUTは、mssecまたはminで制限時間を指定するために使用します。クライアントは、この時間内にデータベースに接続して認証情報を指定する必要があります。

使用上のノート

指定した時間内にクライアントが接続と認証を完了できなかった場合、データベースは接続を終了します。さらに、データベースはクライアントのIPアドレスをログに記録し、ORA-12170エラー・メッセージをデータベース・アラート・ログ・ファイルに書き込みます。

クライアントは、「ORA-12547: TNS: 接続を失いました。」または「ORA-12637: パケット受信に失敗しました。」エラー・メッセージのいずれかを受信します。

SQLNET.INBOUND_CONNECT_TIMEOUTのデフォルト値は、ほとんどのシナリオに適しています。ただし、別の値を設定する必要がある場合は、このパラメータをlistener.oraファイル内のINBOUND_CONNECT_TIMEOUT_listener_nameパラメータと組み合せて設定することをお薦めします。これらのパラメータに値を指定する場合、次の推奨事項に注意してください。

  • 最初は、両方のパラメータに小さい値を設定します。

  • INBOUND_CONNECT_TIMEOUT_listener_nameパラメータの値は、SQLNET.INBOUND_CONNECT_TIMEOUTパラメータに設定した値よりも小さい値に設定してください。

値とユニットの間のスペースあり、なしにかかわらず、様々なタイムアウトを受け入れます。SQLNET.INBOUND_CONNECT_TIMEOUTに測定単位を設定してない場合、デフォルトの単位はsecになります。たとえば、INBOUND_CONNECT_TIMEOUT_listener_nameパラメータを2秒に設定して、SQLNET.INBOUND_CONNECT_TIMEOUTパラメータを3秒に設定します。特定の環境におけるシステムやネットワークの通常の遅延によって、指定の時間内にクライアントが接続を完了できない場合は、SQLNET.INBOUND_CONNECT_TIMEOUTの値を必要に応じて増やします。

デフォルト

60秒

SQLNET.INBOUND_CONNECT_TIMEOUT=3ms

5.2.61 SQLNET.FALLBACK_AUTHENTICATION

sqlnet.oraのパラメータSQLNET.FALLBACK_AUTHENTICATIONは、Kerberos認証に失敗したときに、パスワード・ベースの認証を試行するかどうかを指定するために使用します。

用途

Kerberos認証に失敗したときに、パスワード・ベースの認証を試行するかどうかを指定します。これは、直接リンクの接続およびデータベース・リンク接続にあてはまります。

デフォルト

FALSE

SQLNET.FALLBACK_AUTHENTICATION=TRUE

5.2.62 SQLNET.KERBEROS5_CC_NAME

sqlnet.oraのパラメータSQLNET.KERBEROS5_CC_NAMEは、Kerberos資格証明キャッシュ(CC)ファイルへの完全パス名を指定するために使用します。

用途

Kerberos CCファイルへの完全パス名を指定します。

使用上のノート

  • このパラメータは、sqlnet.oraファイル内で設定できます。

    この値は、tnsnames.oraファイル内で設定することも、接続文字列の一部として直接設定することもできます。SQLNET.KERBEROS5_CC_NAMEパラメータは、tnsnames.oraのパラメータKERBEROS5_CC_NAMEと同等です。接続文字列で指定したパラメータ値が優先されます。

  • このパラメータは、KDCによって戻される資格証明を暗号化形式で格納するために複数のプリンシパルをサポートします。

    okinitoklistokdstryユーティリティを使用して、すべてのKerberosプリンシパルの暗号化キャッシュ・ファイルを構成できます。これらのユーティリティは、SQLNET.KERBEROS5_CC_NAMEを使用してキャッシュ・パスを指定した場合にのみ、暗号化されたキャッシュ・ファイルで使用できます。

  • SQLNET.KERBEROS5_CC_NAMEは、すべての追加Kerberosユーザーおよびプリンシパルに必須です。オプションで、KERBEROS5_PRINCIPALパラメータを設定して、資格証明キャッシュ(SQLNET.KERBEROS5_CC_NAMEで指定)に関連付けられたKerberosプリンシパル名を指定できます。KERBEROS5_PRINCIPALは、接続文字列、sqlnet.oraファイルまたはtnsnames.oraファイルで設定できます。

    Oracle Databaseでは、資格証明キャッシュから取得された値に対してKERBEROS5_PRINCIPALがチェックされます。2つの値が一致しない場合、ユーザーは認証されません。

値および例

SQLNET.KERBEROS5_CC_NAMEの値は、次の形式を使用して指定できます。
  • Oracleデータベースでディレクトリ・キャッシュが使用されている場合:
    • SQLNET.KERBEROS5_CC_NAME=complete_path_to_cc_file

      たとえば:

      SQLNET.KERBEROS5_CC_NAME=/tmp/kcache

      SQLNET.KERBEROS5_CC_NAME=D:\tmp\kcache

    • SQLNET.KERBEROS5_CC_NAME=FILE:complete_path_to_cc_ file

      たとえば:

      SQLNET.KERBEROS5_CC_NAME=FILE:/tmp/kcache

  • OracleデータベースでネイティブWindowsキャッシュが使用されている場合:
    • SQLNET.KERBEROS5_CC_NAME=OSMSFT://

    • SQLNET.KERBEROS5_CC_NAME=MSLSA:

    OSMSFTオプションとMSLSAオプションは、ファイルがMicrosoft Windows上にありMicrosoft Kerberos Key Distribution Center (KDC)を実行していることを示しています。

デフォルト

デフォルト値は、次のように、オペレーティング・システムによって異なります。
  • LinuxおよびUNIXオペレーティング・システムの場合: /tmp/krb5cc_userid

  • Microsoft Windowsオペレーティング・システムの場合: c:\tmp\krbcache

5.2.63 SQLNET.KERBEROS5_CLOCKSKEW

sqlnet.oraのパラメータSQLNET.KERBEROS5_CLOCKSKEWは、Kerberos資格証明が期限切れと見なされるまでの経過時間を指定するために使用します。

用途

Kerberos資格証明が期限切れと見なされるまでの経過秒数を指定します。

デフォルト

300

SQLNET.KERBEROS5_CLOCKSKEW=1200

5.2.64 SQLNET.KERBEROS5_CONF

sqlnet.oraのパラメータSQLNET.KERBEROS5_CONFは、Kerberos構成ファイルの完全パス名を指定するために使用します。この構成ファイルにはKDC (Key Distribution Center)のレルムが含まれていて、レルムはKDCホストにマップされています。

用途

Kerberos構成ファイルへの完全パス名を指定します。このファイルには、デフォルトのKey Distribution Center (KDC)のレルムが含まれていて、レルムはKDCホストにマッピングされています。

使用上のノート

KDCには、ユーザー・プリンシパルのリストが保持されています。ユーザーの初期チケットについての問合せには、kinitプログラムを使用します。

AUTO_DISCOVERオプションにより、KDCとそのレルムの自動検出が可能になります。これはKerberosクライアントのデフォルト構成です。指定するレルムが複数ある場合、AUTO_DISCOVERオプションを使用するかわりに、構成ファイルを作成することをお薦めします。このオプションは、そのような機能を持つすべてのオペレーティング・システム用にサポートされています。

デフォルト

LinuxおよびUNIXオペレーティング・システムでは、/krb5/krb.conf

Microsoft Windowsオペレーティング・システムでは、c:\krb5\krb.conf

  • krb.confファイルへのディレクトリ・パス

  • AUTO_DISCOVER

SQLNET.KERBEROS5_CONF=/krb5/krb.conf

5.2.65 SQLNET.KERBEROS5_CONF_LOCATION

sqlnet.oraのパラメータ SQLNET.KERBEROS5_CONF_LOCATIONは、Kerberos構成ファイルのディレクトリを指定するために使用します。また、SQLNET.KERBEROS5_CONF_LOCATIONパラメータでは、このファイルがクライアントではなくシステムによって作成されることも指定します。

用途

Kerberos構成ファイルのディレクトリを指定します。また、このパラメータでは、そのファイルがクライアントではなくシステムによって作成されることも指定します。

使用上のノート

構成ファイルでは、DNS参照を使用して、デフォルトのKDCのレルムを取得し、レルムをKDCホストにマップします。このオプションは、その機能をサポートするすべてのオペレーティング・システムでサポートされます。

デフォルト

LinuxおよびUNIXオペレーティング・システムでは、/krb5

Microsoft Windowsオペレーティング・システムでは、c:\krb5

SQLNET.KERBEROS5_CONF_LOCATION=/krb5

5.2.66 SQLNET.KERBEROS5_KEYTAB

sqlnet.oraのパラメータSQLNET.KERBEROS5_KEYTABは、Kerberosプリンシパルまたはシークレット、キー・マッピング・ファイルへのパス名を指定するために使用します。このファイルによって、キーを抽出して着信認証情報を復号化します。

用途

Kerberosプリンシパルまたはシークレット、キー・マッピング・ファイルへの完全パス名を指定します。このファイルによって、キーを抽出して着信認証情報を復号化します。

デフォルト

LinuxおよびUNIXオペレーティング・システムでは、/etc/v5srvtab

Microsoft Windowsオペレーティング・システムでは、c:\krb5\v5srvtab

SQLNET.KERBEROS5_KEYTAB=/etc/v5srvtab

5.2.67 SQLNET.KERBEROS5_REALMS

sqlnet.oraのパラメータSQLNET.KERBEROS5_REALMSは、Kerberos変換ファイルへの完全パス名を指定するために使用します。この変換ファイルにより、ホスト名またはドメイン名がレルムにマップされます。

用途

Kerberos変換ファイルへの完全パス名を指定します。この変換ファイルにより、ホスト名またはドメイン名がレルムにマップされます。

デフォルト

LinuxおよびUNIXオペレーティング・システムでは、/krb5/krb.realms

Microsoft Windowsオペレーティング・システムでは、c:\krb5\krb.realms

SQLNET.KERBEROS5_REALMS=/krb5/krb.realms

5.2.68 SQLNET.KERBEROS5_REPLAY_CACHE

sqlnet.oraのパラメータSQLNET.KERBEROS5_REPLAY_CACHEは、リプレイ・キャッシュがサーバーのオペレーティング・システム管理対象メモリーに格納されること(ファイルベースのリプレイ・キャッシュは使用されないこと)を指定するために使用します。

用途

リプレイ・キャッシュがサーバーのオペレーティング・システム管理対象メモリーに格納されること(ファイルベースのリプレイ・キャッシュは使用されないこと)を指定します。

使用上のノート

OS_MEMORYオプションでは、リプレイ・キャッシュがサーバーのオペレーティング・システム管理対象メモリーに格納されること(ファイルベースのリプレイ・キャッシュは使用されないこと)を指定します。

SQLNET_KERBEROS5_REPLAY_CACHE=OS_MEMORY

5.2.69 SQLNET.OUTBOUND_CONNECT_TIMEOUT

sqlnet.oraのパラメータSQLNET.OUTBOUND_CONNECT_TIMEOUTは、クライアントがデータベース・インスタンスへのOracle Net接続を確立するまでに許容される時間をミリ秒単位、秒単位、または分単位で指定するために使用します。

用途

クライアントがデータベース・インスタンスへのOracle Net接続を確立するまでの時間をミリ秒単位、秒単位または分単位で指定します。

使用上のノート

指定した時間内にOracle Net接続が確立されないと、接続の試行は終了します。次のエラーがクライアントに表示されます。

ORA-12170: Cannot connect. Outbound connect timeout of time_interval for host_port or key. (CONNECTION_ID=ID_string).

発信接続のタイムアウト間隔は、TCP接続の確立に要する時間の制限を指定する、TCP接続のタイムアウト間隔のスーパーセットです。また、発信接続のタイムアウト間隔には、サービスを提供するOracleインスタンスへの接続に要する時間も含まれます。値とユニットの間のスペースあり、なしにかかわらず、様々なタイムアウトを受け入れます。

このパラメータが指定されていない場合、データベース・サーバーへのクライアント接続リクエストは、データベース・サーバーのホスト・システムが到達不能のとき、デフォルトのTCP接続タイムアウト期間(60 seconds)ブロックされる可能性があります。この場合は単位の指定がなく、デフォルトの単位がsecになります。

発信接続タイムアウト間隔は、TCP、TLS付きTCPおよびIPCトランスポート接続にのみ適用できます。

このパラメータは、アドレス記述内のCONNECT_TIMEOUTパラメータによって上書きされます。

デフォルト

なし

SQLNET.OUTBOUND_CONNECT_TIMEOUT=10 ms

関連トピック

5.2.70 SQLNET.RADIUS_ALLOW_WEAK_CLIENTS

クライアント側のsqlnet.oraのパラメータSQLNET.RADIUS_ALLOW_WEAK_CLIENTSは、Oracle DatabaseクライアントがOracle Databaseサーバーとの通信に使用するトランスポート・プロトコルを制御するために使用します。

用途

データベース・クライアントがRADIUS認証を使用する場合、Oracle Databaseクライアントがデータベース・クライアントとデータベース・サーバー間の通信に使用する必要があるトランスポート・プロトコルを制御します。

デフォルト値はFALSEで、使用される接続プロトコルがTCPSの場合にのみデータベース・クライアントが(RADIUS認証を使用するために)データベース・サーバーに接続できます。

使用上のノート

  • Oracle Database 23ai以降では、Request for Comments (RFC) 2138に基づく古いRADIUS APIは非推奨です。

    Oracle Database 23aiでは、RFC 6613とRFC 6614に基づく更新済のRADIUS APIが導入されています。新しいRADIUS APIをできるだけ早く使用するために、移行を計画することをお薦めします。新しいAPIは、デフォルトで有効になっています。古いRADIUS APIに関連付けられた、次のパラメータも非推奨です: SQLNET.RADIUS_ALTERNATESQLNET.RADIUS_ALTERNATE_PORTSQLNET.RADIUS_AUTHENTICATIONSQLNET.RADIUS_AUTHENTICATION_PORT。古いRADIUS APIを使用するようにデフォルトを変更する方法は、RADIUS APIのドキュメントを参照してください。

    更新されたRADIUS APIは、セキュアな通信のプロトコルとしてTCPSを使用します。

  • Oracle Database 23ai以降、レガシーRADIUS APIを使用してデータベースに対して認証を行うユーザーには、管理権限が付与されなくなりました。

    以前のリリースでは、RADIUS APIで認証するユーザーにSYSDBASYSBACKUPなどの管理権限を付与できました。Oracle Database 23aiでは、最新の標準を使用する新しいRADIUS APIが導入されています。ユーザーに管理権限を付与するには、データベースへのデータベース接続で新しいRADIUS APIが使用されていることと、Oracle Database 23aiクライアントを使用してOracle Database 23aiサーバーに接続していることを確認します。

  • TRUE: データベース・クライアントがユーザー・データグラム・プロトコル(UDP)などの弱いプロトコルを使用して接続するのを許可します。

  • FALSE: データベース・クライアントがTCPSなどの強力なプロトコルのみを使用して接続するのを許可します。

デフォルト

FALSE

SQLNET.RADIUS_ALLOW_WEAK_CLIENTS=FALSE

5.2.71 SQLNET.RADIUS_ALLOW_WEAK_PROTOCOL

サーバー側のsqlnet.oraのパラメータSQLNET.RADIUS_ALLOW_WEAK_PROTOCOLを使用すると、弱いOracle DatabaseクライアントがRADIUS認証を使用するのを許可できます。

用途

Oracle Databaseサーバーへの接続にTCPS以外のプロトコルを使用する弱いOracle DatabaseクライアントがRADIUS認証を使用するのを許可します。

デフォルト値はFALSEで、強力なクライアントのみ(データベース・サーバーへの接続にTCPSを使用)がRADIUS認証を使用できます。

使用上のノート

  • Oracle Database 23ai以降では、Request for Comments (RFC) 2138に基づく古いRADIUS APIは非推奨です。

    Oracle Database 23aiでは、RFC 6613とRFC 6614に基づく更新済のRADIUS APIが導入されています。新しいRADIUS APIをできるだけ早く使用するために、移行を計画することをお薦めします。新しいAPIは、デフォルトで有効になっています。古いRADIUS APIに関連付けられた、次のパラメータも非推奨です: SQLNET.RADIUS_ALTERNATESQLNET.RADIUS_ALTERNATE_PORTSQLNET.RADIUS_AUTHENTICATIONSQLNET.RADIUS_AUTHENTICATION_PORT。古いRADIUS APIを使用するようにデフォルトを変更する方法は、RADIUS APIのドキュメントを参照してください。

    更新されたRADIUS APIは、セキュアな通信のプロトコルとしてTCPSを使用します。

  • Oracle Database 23ai以降、レガシーRADIUS APIを使用してデータベースに対して認証を行うユーザーには、管理権限が付与されなくなりました。

    以前のリリースでは、RADIUS APIで認証するユーザーにSYSDBASYSBACKUPなどの管理権限を付与できました。Oracle Database 23aiでは、最新の標準を使用する新しいRADIUS APIが導入されています。ユーザーに管理権限を付与するには、データベースへのデータベース接続で新しいRADIUS APIが使用されていることと、Oracle Database 23aiクライアントを使用してOracle Database 23aiサーバーに接続していることを確認します。

  • TRUE: 弱いデータベース・クライアントがRADIUS認証を使用するのを許可します。

  • FALSE: 強力なデータベース・クライアントのみがRADIUS認証を使用するのを許可します(弱いクライアントをブロック)。

デフォルト

FALSE

SQLNET.RADIUS_ALLOW_WEAK_PROTOCOL=FALSE

5.2.72 SQLNET.RADIUS_ALTERNATE

sqlnet.oraのパラメータSQLNET.RADIUS_ALTERNATEは、プライマリ・サーバーが使用できない場合に使用される代替RADIUSサーバーを指定するために使用します。

用途

プライマリ・サーバーが使用できない場合のフォルト・トレランスに使用される代替RADIUSサーバーの場所を指定します。値は、IPアドレスまたはサーバーのホスト名のいずれかです。

使用上のノート

Oracle Database 23ai以降では、Request for Comments (RFC) 2138に基づく古いRADIUS APIは非推奨です。

Oracle Database 23aiでは、RFC 6613とRFC 6614に基づく更新済のRADIUS APIが導入されています。新しいRADIUS APIをできるだけ早く使用するために、移行を計画することをお薦めします。新しいAPIは、デフォルトで有効になっています。古いRADIUS APIに関連付けられた、次のパラメータも非推奨です: SQLNET.RADIUS_ALTERNATESQLNET.RADIUS_ALTERNATE_PORTSQLNET.RADIUS_AUTHENTICATIONSQLNET.RADIUS_AUTHENTICATION_PORT。古いRADIUS APIを使用するようにデフォルトを変更する方法は、RADIUS APIのドキュメントを参照してください。

データベース・サーバーが更新されたRADIUS標準をサポートしている場合は、非推奨のSQLNET.RADIUS_ALTERNATEパラメータのかわりにSQLNET.RADIUS_ALTERNATE_TLS_HOSTパラメータを使用します。

リリース23aiより前のクライアントが、古いRADIUS標準(デフォルトでブロックされている)を使用してRADIUSユーザーを接続できるようにする必要がある場合は、SQLNET.RADIUS_ALLOW_WEAK_CLIENTSおよびSQLNET.RADIUS_ALLOW_WEAK_PROTOCOLパラメータのいずれかまたは両方を設定する必要があります。

構文

SQLNET.RADIUS_ALTERNATE=(hostname_or_IP_address_of_alternate_RADIUS_server)

デフォルト

なし

SQLNET.RADIUS_ALTERNATE=(radius-server2)

5.2.73 SQLNET.RADIUS_ALTERNATE_PORT

sqlnet.oraのパラメータSQLNET.RADIUS_ALTERNATE_PORTは、代替RADIUSサーバーのリスニング・ポートを指定するために使用します。

用途

代替RADIUSサーバーのリスニング・ポートを指定します。

使用上のノート

Oracle Database 23ai以降では、Request for Comments (RFC) 2138に基づく古いRADIUS APIは非推奨です。

Oracle Database 23aiでは、RFC 6613とRFC 6614に基づく更新済のRADIUS APIが導入されています。新しいRADIUS APIをできるだけ早く使用するために、移行を計画することをお薦めします。新しいAPIは、デフォルトで有効になっています。古いRADIUS APIに関連付けられた、次のパラメータも非推奨です: SQLNET.RADIUS_ALTERNATESQLNET.RADIUS_ALTERNATE_PORTSQLNET.RADIUS_AUTHENTICATIONSQLNET.RADIUS_AUTHENTICATION_PORT。古いRADIUS APIを使用するようにデフォルトを変更する方法は、RADIUS APIのドキュメントを参照してください。

データベース・サーバーが更新されたRADIUS標準をサポートしている場合は、非推奨のSQLNET.RADIUS_ALTERNATE_PORTパラメータのかわりにSQLNET.RADIUS_ALTERNATE_TLS_PORTパラメータを使用します。

リリース23aiより前のクライアントが、古いRADIUS標準(デフォルトでブロックされている)を使用してRADIUSユーザーを接続できるようにする必要がある場合は、SQLNET.RADIUS_ALLOW_WEAK_CLIENTSおよびSQLNET.RADIUS_ALLOW_WEAK_PROTOCOLパラメータのいずれかまたは両方を設定する必要があります。

構文

SQLNET.RADIUS_ALTERNATE_PORT=(listening_port_of_alternate_RADIUS_server)

デフォルト

1812

SQLNET.RADIUS_ALTERNATE_PORT=(1667)

5.2.74 SQLNET.RADIUS_ALTERNATE_RETRIES

sqlnet.oraのパラメータSQLNET.RADIUS_ALTERNATE_RETRIESは、データベースが代替RADIUSサーバーにメッセージを再送する回数を指定する場合に使用します。

用途

データベース・サーバーがメッセージを代替RADIUSサーバーに再送する回数を指定します。

デフォルト

3

SQLNET.RADIUS_ALTERNATE_RETRIES=4

5.2.75 SQLNET.RADIUS_ALTERNATE_TIMEOUT

sqlnet.oraのパラメータSQLNET.RADIUS_ALTERNATE_TIMEOUTは、代替RADIUSサーバーで応答を待機する時間を設定するために使用します。

用途

代替RADIUSサーバーが応答を待機する時間を秒単位で設定します。

構文

SQLNET.RADIUS_ALTERNATE_TIMEOUT=time_in_seconds

デフォルト

5

SQLNET.RADIUS_ALTERNATE_TIMEOUT=5

5.2.76 SQLNET.RADIUS_ALTERNATE_TLS_HOST

sqlnet.oraのパラメータSQLNET.RADIUS_ALTERNATE_TLS_HOSTは、プライマリ・サーバーが使用できない場合に使用される代替RADIUSサーバーのホスト名を指定するために使用します。

用途

代替RADIUSサーバーのホスト名を指定します。これは、プライマリ・サーバーが使用できない場合のフォルト・トレランスに使用されます。

使用上のノート

このパラメータは、RADIUSサーバーがRADIUS with TLS over TCPを実装している場合にのみ使用します。

構文

SQLNET.RADIUS_ALTERNATE_TLS_HOST=(TLS_hostname_of_alternate_RADIUS_server)

デフォルト

なし

SQLNET.RADIUS_ALTERNATE_TLS_HOST=(radius-server2)

5.2.77 SQLNET.RADIUS_ALTERNATE_TLS_PORT

sqlnet.oraのパラメータSQLNET.RADIUS_ALTERNATE_TLS_PORTは、代替RADIUSサーバーのリスニング・ポートを指定するために使用します。

用途

代替RADIUSサーバーのリスニング・ポートを指定します。デフォルト・ポートは2083です代替サーバーが異なるポートを使用する場合は、その値を指定します。

使用上のノート

このパラメータは、RADIUSサーバーがRADIUS with TLS over TCPを実装している場合にのみ使用します。

構文

SQLNET.RADIUS_ALTERNATE_TLS_PORT=(listening_TLS_port_of_alternate_RADIUS_server)

デフォルト

2083

SQLNET.RADIUS_ALTERNATE_TLS_PORT=(5530)

5.2.78 SQLNET.RADIUS_AUTHENTICATION

sqlnet.oraのパラメータSQLNET.RADIUS_AUTHENTICATIONは、プライマリRADIUSサーバーの場所を指定するために使用します。

用途

プライマリRADIUSサーバーの場所を指定します。値は、IPアドレスまたはサーバーのホスト名のいずれかです。

使用上のノート

Oracle Database 23ai以降では、Request for Comments (RFC) 2138に基づく古いRADIUS APIは非推奨です。

Oracle Database 23aiでは、RFC 6613とRFC 6614に基づく更新済のRADIUS APIが導入されています。新しいRADIUS APIをできるだけ早く使用するために、移行を計画することをお薦めします。新しいAPIは、デフォルトで有効になっています。古いRADIUS APIに関連付けられた、次のパラメータも非推奨です: SQLNET.RADIUS_ALTERNATESQLNET.RADIUS_ALTERNATE_PORTSQLNET.RADIUS_AUTHENTICATIONSQLNET.RADIUS_AUTHENTICATION_PORT。古いRADIUS APIを使用するようにデフォルトを変更する方法は、RADIUS APIのドキュメントを参照してください。

データベース・サーバーが更新されたRADIUS標準をサポートしている場合は、非推奨のSQLNET.RADIUS_AUTHENTICATIONパラメータのかわりにSQLNET.RADIUS_AUTHENTICATION_TLS_HOSTパラメータを使用します。

リリース23aiより前のクライアントが、古いRADIUS標準(デフォルトでブロックされている)を使用してRADIUSユーザーを接続できるようにする必要がある場合は、SQLNET.RADIUS_ALLOW_WEAK_CLIENTSおよびSQLNET.RADIUS_ALLOW_WEAK_PROTOCOLパラメータのいずれかまたは両方を設定する必要があります。

構文

SQLNET.RADIUS_AUTHENTICATION=(hostname_or_IP_address_of_primary_RADIUS_server)

デフォルト

ローカル・ホスト

SQLNET.RADIUS_AUTHENETICATION=(radius-server1)

5.2.79 SQLNET.RADIUS_AUTHENTICATION_INTERFACE

sqlnet.oraのパラメータSQLNET.RADIUS_AUTHENTICATION_INTERFACEは、ユーザーとの対話操作用ユーザー・インタフェースが含まれているクラスを指定するために使用します。

用途

ユーザーとの対話に使用するユーザー・インタフェースが含まれているクラスを指定します。

デフォルト

DefaultRadiusInterface

SQLNET.RADIUS_AUTHENTICATION_INTERFACE=DefaultRadiusInterface

5.2.80 SQLNET.RADIUS_AUTHENTICATION_PORT

sqlnet.oraのパラメータSQLNET.RADIUS_AUTHENTICATION_PORTは、プライマリRADIUSサーバーのリスニング・ポートを指定するために使用します。

用途

プライマリRADIUSサーバーのリスニング・ポートを指定します。

使用上のノート

Oracle Database 23ai以降では、Request for Comments (RFC) 2138に基づく古いRADIUS APIは非推奨です。

Oracle Database 23aiでは、RFC 6613とRFC 6614に基づく更新済のRADIUS APIが導入されています。新しいRADIUS APIをできるだけ早く使用するために、移行を計画することをお薦めします。新しいAPIは、デフォルトで有効になっています。古いRADIUS APIに関連付けられた、次のパラメータも非推奨です: SQLNET.RADIUS_ALTERNATESQLNET.RADIUS_ALTERNATE_PORTSQLNET.RADIUS_AUTHENTICATIONSQLNET.RADIUS_AUTHENTICATION_PORT。古いRADIUS APIを使用するようにデフォルトを変更する方法は、RADIUS APIのドキュメントを参照してください。

データベース・サーバーが更新されたRADIUS標準をサポートしている場合は、非推奨のSQLNET.RADIUS_AUTHENTICATION_PORTパラメータのかわりにSQLNET.RADIUS_AUTHENTICATION_TLS_PORTパラメータを使用します。

リリース23aiより前のクライアントが、古いRADIUS標準(デフォルトでブロックされている)を使用してRADIUSユーザーを接続できるようにする必要がある場合は、SQLNET.RADIUS_ALLOW_WEAK_CLIENTSおよびSQLNET.RADIUS_ALLOW_WEAK_PROTOCOLパラメータのいずれかまたは両方を設定する必要があります。

構文

SQLNET.RADIUS_AUTHENTICATION_PORT=(listening_port_of_primary_RADIUS_server)

デフォルト

1645

SQLNET.RADIUS_AUTHENTICATION_PORT=(1667)

5.2.81 SQLNET.RADIUS_AUTHENTICATION_RETRIES

sqlnet.oraのパラメータSQLNET.RADIUS_AUTHENTICATION_RETRIESは、データベースがプライマリRADIUSサーバーにメッセージを再送する回数を指定するために使用します。

用途

データベースがプライマリRADIUSサーバーにメッセージを再送する回数を指定します。

デフォルト

3

SQLNET.RADIUS_AUTHENTICATION_RETRIES=4

5.2.82 SQLNET.RADIUS_AUTHENTICATION_TIMEOUT

sqlnet.oraのパラメータSQLNET.RADIUS_AUTHENTICATION_TIMEOUTは、データベースがプライマリRADIUSサーバーからの応答を待機する時間を指定するために使用します。

用途

データベースがプライマリRADIUSサーバーからの応答を待機する時間を秒単位で指定します。

デフォルト

5

SQLNET.RADIUS_AUTHENTICATION_TIMEOUT=10

5.2.83 SQLNET.RADIUS_AUTHENTICATION_TLS_HOST

sqlnet.oraのパラメータSQLNET.RADIUS_AUTHENTICATION_TLS_HOSTは、プライマリRADIUSサーバーのホスト名を指定するために使用します。

用途

プライマリRADIUSサーバーのホスト名を指定します。この値は必須です。このパラメータを設定しないと、認証は失敗します。

使用上のノート

このパラメータは、RADIUSサーバーがRADIUS with TLS over TCPを実装している場合にのみ使用します。

構文

SQLNET.RADIUS_AUTHENTICATION_TLS_HOST=(TLS_hostname_of_primary_RADIUS_server)

デフォルト

なし

SQLNET.RADIUS_AUTHENTICATION_TLS_HOST=(radius-server1)

5.2.84 SQLNET.RADIUS_AUTHENTICATION_TLS_PORT

sqlnet.oraのパラメータSQLNET.RADIUS_AUTHENTICATION_TLS_PORTは、プライマリRADIUSサーバーのリスニング・ポートを指定するために使用します。

用途

プライマリRADIUSサーバーのリスニング・ポートを指定します。デフォルト・ポートは2083ですサーバーが異なるポートを使用する場合は、その値を指定します。

使用上のノート

このパラメータは、RADIUSサーバーがRADIUS with TLS over TCPを実装している場合にのみ使用します。

構文

SQLNET.RADIUS_AUTHENTICATION_TLS_PORT=(listening_TLS_port_of_primary_RADIUS_server)

デフォルト

2083

SQLNET.RADIUS_AUTHENTICATION_TLS_PORT=(5530)

5.2.85 SQLNET.RADIUS_CHALLENGE_KEYWORD

sqlnet.oraのパラメータSQLNET.RADIUS_CHALLENGE_KEYWORDは、RADIUSサーバーからのチャレンジをリクエストするためのキーワードを指定するために使用します。

用途

RADIUSサーバーからチャレンジをリクエストするキーワードを設定します。チャレンジ・キーワードを設定することで、ユーザーはクライアントでパスワードを使用しなくても識別情報を証明できます。

構文

SQLNET.RADIUS_CHALLENGE_KEYWORD=keyword

デフォルト

challenge

SQLNET.RADIUS_CHALLENGE_KEYWORD=challenge

5.2.86 SQLNET.RADIUS_CHALLENGE_RESPONSE

sqlnet.oraのパラメータSQLNET.RADIUS_CHALLENGE_RESPONSEは、チャレンジ・レスポンスを有効または無効にするために使用します。

用途

チャレンジ・レスポンスをオンまたはオフに切り替えます。

デフォルト

off

on | off

SQLNET.RADIUS_CHALLENGE_RESPONSE=on

5.2.87 SQLNET.RADIUS_CLASSPATH

sqlnet.oraのパラメータSQLNET.RADIUS_CLASSPATHは、JavaクラスおよびJDK Javaライブラリのパスを設定するために使用します。

用途

グラフィカル・インタフェースのJavaクラスのパスを設定し、JDK Javaライブラリへのパスを設定します。

チャレンジ・レスポンス認証モードを使用する場合、RADIUSにはJavaベースのグラフィカル・インタフェースが表示されます。このインタフェースは、最初にパスワードを要求し、次に追加情報(ユーザーがトークン・カードから取得する動的パスワードなど)を要求します。

構文

SQLNET.RADIUS_CLASSPATH=path_to_GUI_Java_classes

デフォルト

$ORACLE_HOME/jlib/netradius.jar:$ORACLE_HOME/JRE/lib/sparc/native_threads

SQLNET.RADIUS_CLASSPATH=/jre1.1

5.2.88 SQLNET.RADIUS_SECRET

sqlnet.oraのパラメータSQLNET.RADIUS_SECRETは、RADIUSシークレット・キーの場所を指定するために使用します。

用途

RADIUSシークレット・キーの場所を指定します。

使用上のノート

RADIUS with TLS over TCPの場合、デフォルト値はradsecです。この値は、sqlnet.oraファイルでこのパラメータを設定しない場合に使用されます。

RADIUS with UDPのデフォルト値はありません。このパラメータは、シークレット・キーを含むファイルへのディレクトリ・パスで構成する必要があります。たとえば:

ORACLE_HOME/network/security/radius.key

SQLNET.RADIUS_SECRET=oracle/bin/admin/radiuskey

5.2.89 SQLNET.RADIUS_SEND_ACCOUNTING

sqlnet.oraのパラメータSQLNET.RADIUS_SEND_ACCOUNTINGは、アカウンティングを有効または無効にするために使用します。

用途

アカウンティングのONOFFを切り替えます。アカウンティングを有効にすると、リスニング・ポート番号に1を加えた値でアクティブなRADIUSサーバーにパケットが送信されます。

デフォルト

OFF

ON | OFF

SQLNET.RADIUS_SEND_ACCOUNTING=ON

5.2.90 SQLNET.RADIUS_TRANSPORT_PROTOCOL

サーバー側のsqlnet.oraのパラメータSQLNET.RADIUS_TRANSPORT_PROTOCOLは、Oracle DatabaseサーバーがRADIUSサーバーとの通信に使用するトランスポート・プロトコルを制御するために使用します。

用途

Oracle Databaseサーバー(RADIUSクライアントとして動作)とRADIUSサーバー間の通信のプロトコルとして、相互Transport Layer Security (mTLS)、Transport Layer Security (TLS)またはユーザー・データグラム・プロトコル(UDP)を指定します。

使用上のノート

  • Oracle Database 23ai以降では、Request for Comments (RFC) 2138に基づく古いRADIUS APIは非推奨です。

    Oracle Database 23aiでは、RFC 6613とRFC 6614に基づく更新済のRADIUS APIが導入されています。新しいRADIUS APIをできるだけ早く使用するために、移行を計画することをお薦めします。新しいAPIは、デフォルトで有効になっています。古いRADIUS APIに関連付けられた、次のパラメータも非推奨です: SQLNET.RADIUS_ALTERNATESQLNET.RADIUS_ALTERNATE_PORTSQLNET.RADIUS_AUTHENTICATIONSQLNET.RADIUS_AUTHENTICATION_PORT。古いRADIUS APIを使用するようにデフォルトを変更する方法は、RADIUS APIのドキュメントを参照してください。

  • mTLSプロトコルとTLSプロトコルは両方とも、最新のRADIUS API標準を実装し、より強力なセキュリティを適用します。

    MTLSに設定すると、Oracle DatabaseサーバーとRADIUSサーバー間に相互または双方向TLS接続が確立されます。mTLSを使用するには、データベース・サーバーでOracleウォレットを構成する必要があります。ウォレットに、RADIUSクライアント・ユーザー証明書、およびRADIUSクライアントとRADIUSサーバーの両方の信頼できるCA証明書が格納されていることを確認します。

    TLSに設定すると、Oracle DatabaseサーバーとRADIUSサーバー間に一方向TLS接続が確立されます。クライアント・ウォレットを使用しないウォレットレスTLS接続の場合、RADIUSクライアントは、システムのデフォルトの証明書ストアから共通ルート証明書を自動的に選択して、RADIUSサーバー証明書を検証します。この値は、RADIUSサーバーがTLS (RADIUS over TCP)、またはTCPS (RADIUS with TLS over TCP)をサポートしている場合に使用します。

  • 下位互換性のためにRADIUS with UDPを使用する必要がある場合は、このパラメータをUDPに設定します。ただし、RADIUS with UDPは古いRADIUS API標準を使用するため、セキュアでないとみなされることに注意してください。

  • このパラメータ値を省略すると、デフォルトのプロトコルのmTLSが使用されます。

MTLS | TLS | UDP

デフォルト

MTLS

SQLNET.RADIUS_TRANSPORT_PROTOCOL=MTLS

5.2.91 SQLNET.RECV_TIMEOUT

sqlnet.oraのパラメータSQLNET.RECV_TIMEOUTは、データベース・クライアントまたはサーバーが接続の確立後にピアからのデータを待機する時間を指定するために使用します。

用途

データベース・クライアントまたはサーバーが接続の確立後にピアからのデータを待機する時間を指定します。ピアは、指定の時間間隔内にデータを送信する必要があります。

時間、分、秒またはミリ秒単位で指定するには、それぞれhrminsecまたはmsキーワードを使用します。測定単位を指定してない場合、デフォルトの単位はsecになります。

使用上のノート

このパラメータをクライアントに設定すると、サーバー・プロセスの異常終了やサーバーのビジー状態によって受信操作が無期限または長時間待機したまま放置されることがなくなります。指定した時間内にクライアントが応答データを受信しない場合、クライアントは「ORA-12535: TNS: 操作はタイムアウトしました。」および「ORA-12609: TNS: 受信タイムアウトが発生しました」というメッセージをsqlnet.logファイルにロギングします。この値を設定する場合は、最初に小さい値を設定してから、システムとネットワークの容量に応じて調整してください。必要に応じて、SQLNET.SEND_TIMEOUTパラメータとともに使用します。

また、このパラメータをサーバー側で設定すると、接続の確立後にサーバーがクライアント・データを待機する時間をmssecまたはmin単位で指定できます。指定した時間内にクライアントがデータを送信しないと、データベース・サーバーは「ORA-12535:ORA-12535: TNS: 操作はタイムアウトしました。」および「ORA-12609: TNS: 受信タイムアウトが発生しました」というメッセージをsqlnet.logファイルにロギングします。このパラメータを指定しないと、データベース・サーバーは、ダウンしている可能性のあるクライアントや障害が発生しているクライアントからのデータを待機し続けることがあります。小さな値に設定すると、通常、サーバーはクライアントからの入力をブロックして、こうしたタイムアウトを頻繁に発生させます。

デフォルト

なし

最小値

1 ms

許容範囲

最小値1 msから4294967295 msまでの任意の数値。

SQLNET.RECV_TIMEOUT=10 ms

5.2.92 SQLNET.SEND_TIMEOUT

sqlnet.oraのパラメータSQLNET.SEND_TIMEOUTは、接続の確立後にデータベースがクライアントへの送信操作を完了するまでに許容される時間を指定するために使用します。

用途

接続が確立した後でデータベースがクライアントに対する送信操作を完了するまでの時間を指定します。

時間、分、秒またはミリ秒単位で指定するには、それぞれhrminsecまたはmsキーワードを使用します。測定単位を指定してない場合、デフォルトの単位はsecになります。

使用上のノート

クライアントが時々停止したり、異常終了する環境では、このパラメータを設定することをお薦めします。

指定した時間内に送信操作を完了できない場合、データベース・サーバーは「 ORA-12608: TNS: 送信タイムアウトが発生しました」というメッセージをsqlnet.logファイルにロギングします。このパラメータを指定しないと、データベース・サーバーはコンピュータの停止やビジー状態のためにデータを受信できないクライアントに向けて応答を送信し続けることがあります。

また、このパラメータをクライアント側で設定すると、接続の確立後にクライアントがデータベース・サーバーへの送信操作を完了するまでの時間をmssecまたはminで指定できます。値とユニットの間のスペースあり、なしにかかわらず、様々なタイムアウトを受け入れます。測定単位を指定していないと、デフォルトの単位はsecになります。このパラメータをクライアントに指定しない場合、クライアントは、リクエストで飽和状態になっているデータベース・サーバーにリクエストを送り続ける可能性があります。この値を設定する場合は、最初に小さい値を設定して、システムおよびネットワークの容量に応じて調整してください。

必要に応じて、このパラメータはSQLNET.RECV_TIMEOUTパラメータとともに使用します。

デフォルト

なし

最小値

1 ms

許容範囲

最小値1 msから4294967295 msまでの任意の数値。

SQLNET.SEND_TIMEOUT=3 ms

5.2.93 SQLNET.URI

sqlnet.oraのパラメータSQLNET.URIは、Webサーバーのデータベース・クライアントURIマッピングを指定するために使用します。

用途

Webサーバーのデータベース・クライアントURIマッピングを指定します。

使用上のノート

このパラメータは、Webサーバーに送信されるデータベースwebsocketリクエストをバックエンド・データベース・サーバーにマップするURIをカスタマイズするために使用します。セキュアなwebsocketハンドシェイク・リクエストはこのURIで送信されます。

デフォルト

/sqlnet

例5-6 例

sqlnet.uri="/my_uri_prefix/database/"

5.2.94 SQLNET.USE_HTTPS_PROXY

sqlnet.oraのパラメータSQLNET.USE_HTTPS_PROXYは、クライアント接続に対するフォワードHTTPプロキシ・トンネリングを有効にするために使用します。

用途

クライアント接続のフォワードHTTPプロキシ・トンネリングを有効にします。

使用上のノート

onに設定すると、クライアントは、HTTP CONNECTメソッドを使用して、フォワードHTTPプロキシ上にセキュアな接続をトンネリングできます。これにより、クライアント側のファイアウォールでアウトバウンド・ポートをオープンする要件がなくなるため、パブリック・クラウド・データベースにアクセスしやすくなります。

このパラメータはサーバー側のOracle Connection Managerに適用可能です。

デフォルト

on

SQLNET.USE_HTTPS_PROXY=on

5.2.95 SQLNET.WALLET_OVERRIDE

sqlnet.oraのパラメータ SQLNET.WALLET_OVERRIDEは、厳密認証資格証明書よりもウォレットに格納されているパスワード資格証明を優先するかどうかを決定するために使用します。

用途

厳密認証資格証明書よりもウォレットに格納されているパスワード資格証明を優先するかどうかを決定します。

ノート:

これはクライアント側のパラメータです。データベース・サーバーでのSQLNET.WALLET_OVERRIDE=TRUE設定により、外部プロシージャが破損する場合があります。

使用上のノート

  • 認証にウォレットを使用すると、ユーザー名とパスワードのデータベース資格証明がOracleウォレットに安全に格納されます。ウォレットの自動ログイン機能が有効化されるため、データベースからウォレットを開く際にパスワードは必要ありません。ウォレットから資格証明を取得して、データベースにアクセスします。

    Oracle Database 23aiでは、新しい自動ログイン・ウォレット・バージョン(7)が導入されました。Oracleローカル自動ログイン・ウォレットのバージョン6は、非推奨です。

    ローカル自動ログイン・ウォレットは、orapkiを使用して変更することで更新できます。

  • ウォレットの使用により、データベースへの接続の際にパスワード資格証明に依存する大規模なデプロイメントを簡素化できます。この機能が構成されている場合、アプリケーション・コード、バッチ・ジョブおよびスクリプトにユーザー名およびパスワードを埋め込む必要がありません。このようなパスワードは公開されなくなり、ユーザー名やパスワードが変更されるたびにアプリケーション・コードを変更することなくパスワード管理ポリシーが適用されるため、リスクが軽減されます。

    ユーザーは、ユーザー名とパスワードを明示的に指定するかわりに、connect /@database_nameコマンドを使用して接続します。これにより、スクリプトのメンテナンスが簡単になり、アプリケーションのパスワード管理の安全性が確保されます。

  • 中間層アプリケーションにより、Oracle Applicationsウォレットがインストール時に作成され、アプリケーションのIDが格納されます。パスワードは、ハードコードではなく、ランダムに生成できます。Oracleアプリケーションがデータベースにアクセスすると、SQLNET.AUTHENTICATION_SERVICESWALLET_LOCATIONに、適切な値が設定されます。新しいウォレット・ベースのパスワード認証コードでは、データベースへのログインにOracle Applicationsウォレットのパスワード資格証明を使用します。

    パラメータWALLET_LOCATIONは、Oracle DatabaseサーバーのOracle Database 23aiでの使用は非推奨です。Oracle Databaseクライアントおよびリスナーでの使用は非推奨ではありません。

    Oracle Databaseサーバーの場合、WALLET_LOCATIONを使用するかわりに、WALLET_ROOTシステム・パラメータを使用することをお薦めします。

true | false

SQLNET.WALLET_OVERRIDE=true

5.2.96 SSL_ALLOW_WEAK_DN_MATCH

sqlnet.oraのパラメータSSL_ALLOW_WEAK_DN_MATCHは、サーバー側証明書の検証中に、以前の弱い識別名(DN)一致動作を許可するために使用します。

用途

SSL_SERVER_DN_MATCHパラメータはDN一致動作を制御します。DN一致では、リスナー証明書とサーバー証明書の両方に別のクライアント側チェックが追加され、証明書がクライアントが期待する正しいものであることを確認します。

Oracle Database 23ai以降、セキュリティの向上のため、DN一致動作が拡張されています。SSL_ALLOW_WEAK_DN_MATCHパラメータを使用すると、以前のDN一致動作に戻すことができます。つまり、サーバー証明書のみをチェックし、部分的なDN一致のサービス名チェックを許可します。

使用上のノート

Oracle Database 23aiで導入された、このパラメータを使用すると、SSL_SERVER_DN_MATCHの新しいDN一致動作に調整する時間が長くなります。

SSL_ALLOW_WEAK_DN_MATCHパラメータはOracle Database 23aiの新機能ですが、非推奨であり、将来のリリースで削除される予定です。新しい証明書を取得するか、DN一致の方法を変更することをお薦めします。

  • TRUE | ON | YES | 1:

    SSL_SERVER_DN_MATCHは、以前(Oracle Databaseリリース23ai以前)のDN一致動作に戻すことができます。DN一致では、サーバー証明書だけがチェックされ(リスナー証明書はチェックされない)、サービス名の部分的なDN一致をチェックできます。

  • FALSE | OFF | NO | 0:

    拡張されたDN一致動作を使用するように、SSL_SERVER_DN_MATCHを強制します。DN一致はリスナーとサーバー証明書の両方をチェックし、サービス名の部分的なDN一致のチェックは許可しません。

デフォルト

FALSE

SSL_ALLOW_WEAK_DN_MATCH=FALSE

5.2.97 SSL_CERTIFICATE_ALIAS

sqlnet.oraまたはtnsnames.oraのパラメータSSL_CERTIFICATE_ALIASは、Transport Layer Security (TLS)接続で使用する証明書別名を指定するために使用します。

用途

Oracle Databaseウォレットにクライアントおよびサーバー証明書を格納するときに指定した、別名を指定します。

TLS接続を暗号化するときは、データベース・クライアントとデータベース・サーバーの両方で署名付き証明書を提供する必要があります。この証明書は、Oracle DatabaseウォレットまたはMicrosoft証明書ストア(MCS)に格納できます。使用できる証明書が複数ある場合は、ユーザーまたはアプリケーションの設定で、接続する特定の証明書を指定できます。この選択は、グラフィカル・ユーザー・インタフェース(GUI)を介してユーザーが手動で行うことも、サムプリントまたは別名を使用してアプリケーションによって自動的に行うこともできます。サムプリントまたは別名により、証明書を一意に識別できます。

このパラメータにより、指定された別名を使用して特定の証明書を自動的に選択するように、クライアントまたはサーバーに指示します。したがって、ユーザーは、ウォレットで使用可能なリストから正しいクライアント証明書を手動で選択する必要はありません。

使用上のノート

このパラメータは、tnsnames.oraファイルまたはsqlnet.oraファイルで使用するか、コマンドライン接続文字列の一部として直接使用します。接続文字列で指定されたパラメータ値は、他で指定された値より優先されます。

orapkiは、Oracle Databaseの証明書およびウォレットの管理に役立ちます。別名の値を取得するには、次のコマンドを実行します:
orapki wallet display -wallet <wallet directory> -pwd <wallet password> -complete

証明書別名

デフォルト

なし

  • tnsnames.oraファイル:

    net_service_name= 
      (DESCRIPTION=
        (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521)) 
        (SECURITY=(SSL_CERTIFICATE_ALIAS=my_cert))
      ) 
  • 簡易接続文字列:

    tcps://salesserver:1521/sales.us.example.com?SSL_CERTIFICATE_ALIAS=my_cert
  • sqlnet.oraファイル:

    SSL_CERTIFICATE_ALIAS=my_cert

5.2.98 SSL_CERTIFICATE_THUMBPRINT

sqlnet.oraまたはtnsnames.oraのパラメータSSL_CERTIFICATE_THUMBPRINTは、Transport Layer Security (TLS)接続で使用する証明書サムプリントを指定するために使用します。

用途

X509証明書のサムプリント署名を指定します。これらのサムプリントは証明書用に自動的に生成されます。

TLS接続を暗号化するときは、データベース・クライアントとデータベース・サーバーの両方で署名付き証明書を提供する必要があります。この証明書は、Oracle DatabaseウォレットまたはMicrosoft証明書ストア(MCS)に格納できます。使用できる証明書が複数ある場合は、ユーザーまたはアプリケーションの設定で、接続する特定の証明書を指定できます。この選択は、グラフィカル・ユーザー・インタフェース(GUI)を介してユーザーが手動で行うことも、サムプリントまたは別名を使用してアプリケーションによって自動的に行うこともできます。サムプリントまたは別名により、証明書を一意に識別できます。

このパラメータにより、指定されたサムプリントを使用して特定の証明書を自動的に選択するように、クライアントまたはサーバーに指示します。したがって、ユーザーが証明書ストア内の使用可能なリストから正しい証明書を手動で選択する必要はありません。

使用上のノート

このパラメータは、tnsnames.oraファイルまたはsqlnet.oraファイルで使用するか、コマンドライン接続文字列の一部として直接使用します。接続文字列で指定されたパラメータ値は、他で指定された値より優先されます。

クライアント証明書のSHA-1とSHA-256の両方のサムプリント情報を指定できます。

orapkiは、Oracle Databaseの証明書およびウォレットの管理に役立ちます。サムプリント値を取得するには、次のコマンドを実行します。
orapki wallet display -wallet <wallet directory> -pwd <wallet password> -complete

クライアント証明書のSHA-1またはSHA-256サムプリント(<Algorithm>:<Hash>形式)

たとえば:

SHA1:1B:11:01:5A:B1:2C:20:B2:12:34:3E:04:7B:83:47:DE:70:2E:4E:11
SHA256:B3:8A:5B:1A:03:63:83:92:2B:5D:E1:53:61:EE:03:94:0A:56:B4:56:41:7E:41:24:41:9B:88:EB:C6:1E:11:23

または

SHA1:1B11015AB12C20B212343E047B8347DE702E4E11
SHA256:B38A5B1A036383922B5DE15361EE03940A56B456417E4124419B88EBC61E1123

デフォルト

なし

  • tnsnames.oraファイル:

    net_service_name= 
      (DESCRIPTION=
        (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521)) 
        (SECURITY=(SSL_CERTIFICATE_THUMBPRINT=SHA1:1B:11:01:5A:B1:2C:20:B2:12:34:3E:04:7B:83:47:DE:70:2E:4E:11))
      ) 
    net_service_name= 
      (DESCRIPTION=
        (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521)) 
        (SECURITY=(SSL_CERTIFICATE_THUMBPRINT=SHA1:1B11015AB12C20B212343E047B8347DE702E4E11))
      ) 
  • 簡易接続文字列:

    tcps://salesserver:1521/sales.us.example.com?SSL_CERTIFICATE_THUMBPRINT=SHA1:1B11015AB12C20B212343E047B8347DE702E4E11
  • sqlnet.oraファイル:

    SSL_CERTIFICATE_THUMBPRINT=SHA256:B38A5B1A036383922B5DE15361EE03940A56B456417E4124419B88EBC61E1123

5.2.99 SSL_CERT_REVOCATION

sqlnet.oraのパラメータSSL_CERT_REVOCATIONは、証明書の失効確認を構成するために使用します。

用途

証明書の失効確認を構成します。

デフォルト

none

  • noneにすると、証明書失効ステータスのチェックが無効になります。これはデフォルト値です。

    ノート:

    SSL_CERT_REVOCATIONパラメータをnoneに設定した場合は証明書ベースの認証において重要なコンポーネントが削除されるため、そのように設定しないことをお薦めします。証明書失効ステータスのチェックを行わないと、盗まれた証明書が認証に使用されるのを防ぐことができません。none値を設定するのは、制御を緩和して認証用の証明書の使用を保護する場合のみです(ネットワーク・アクセス制御リストや、信頼できるクライアントのみにデータベース接続を限定するOracle Database Vaultポリシーなど)。
  • requested: 証明書失効リスト(Certificate Revocation List: CRL)が使用可能な場合に、証明書の失効処理を実行します。証明書が失効している場合は、TLS接続を拒否します。証明書の失効状態を判断できる適切なCRLが見つからず証明書が取り消されない場合は、TLS接続を受け入れてください。

  • required: 証明書が使用可能な場合は証明書の取消しを行います。証明書が取り消され、適切なCRLが見つからない場合はTLS接続を拒否してください。証明書の失効状態を判断できる適切なCRLが見つからず証明書が取り消されない場合は、TLS接続を受け入れてください。

SSL_CERT_REVOCATION=required

5.2.100 SSL_CRL_FILE

sqlnet.oraのパラメータSSL_CRL_FILEは、クライアント認証用の証明書失効リスト(CRL)を構築するファイルの名前を指定するために使用します。

用途

クライアント認証用のCRLを格納できるファイルの名前を指定します。

使用上のノート

このファイルには、PEMで暗号化されたCRLファイルが優先順に格納されています。このファイルは、SSL_CRL_PATHパラメータの代替または補助用に使用できます。このパラメータは、SSL_CERT_REVOCATIONrequestedまたはrequiredに設定されている場合のみ有効です。

構文

SSL_CRL_FILE=certificate_revocation_list_filename

デフォルト

なし

SSL_CRL_FILE=crl.txt

5.2.101 SSL_CRL_PATH

sqlnet.oraのパラメータSSL_CRL_PATHは、クライアント認証用の証明書失効リスト(CRL)の宛先ディレクトリを指定するために使用します。

用途

CRLが格納されるディレクトリ・パスを指定します。

使用上のノート

このパラメータは、SSL_CERT_REVOCATIONrequestedまたはrequiredに設定した場合のみ有効です。

DERエンコードされた(バイナリ形式) CRLおよびPEMエンコードされた(BASE64) CRLの両方がサポートされています。

CRLをローカル・ファイル・システム・ディレクトリに格納する場合は、orapkiユーティリティを使用して、システムがCRLを特定できるようにファイル・システム内のCRLの名前を変更する必要があります。

構文

SSL_CRL_PATH=certificate_revocation_list_path

デフォルト

なし

SSL_CRL_PATH=/home/user1/crldir

5.2.102 SSL_CIPHER_SUITES

SSL_CIPHER_SUITESパラメータは、Transport Layer Security (TLS)で使用される認証、暗号化およびデータ整合性アルゴリズムの組合せを制御するために使用します。

用途

TLSで使用される認証、暗号化およびデータ整合性アルゴリズムの組合せを制御します。デフォルトでは、最も強いプロトコルと暗号は、データベース・クライアントとサーバーの間でネゴシエートされます。このパラメータを設定すると、デフォルトの動作が上書きされます。このパラメータは、特定のプロトコル・バージョンの使用を決定する内部セキュリティ制御がある場合にのみ使用する必要があります。

使用上のノート

Database 23ai以降、Transport Layer Securityプロトコル・バージョン1.0および1.1の使用はサポートされなくなりました。

データベース・クライアントおよびサーバーは最も安全なプロトコルおよび暗号アルゴリズムの使用をネゴシエートするため、ほとんどの場合、この変更による影響はありません。ただし、TLS 1.0または1.1が指定されている場合は、これを削除してデータベース・サーバーおよびクライアントが最も安全なプロトコルを選択できるようにするか、プロトコルにTLS 1.2またはTLS 1.3、あるいはその両方を指定する必要があります。最も安全な最新のプロトコルを使用することをお薦めします。そのプロトコルはTLS 1.3で、Oracle Database 23aiで導入されています。

SSL_CIPHER_SUITESパラメータ値をカッコで囲みます。そうしないと、暗号スイート設定が正しく解析されません。

デフォルト

なし

TLS 1.3と互換性のある承認済暗号:
  • TLS_AES_256_GCM_SHA384

  • TLS_CHACHA20_POLY1305_SHA256 (FIPS以外のみ)

  • TLS_AES_128_CCM_SHA256

  • TLS_AES_128_GCM_SHA256

TLS 1.2と互換性のある承認済暗号:
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384

  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256

TLS 1.2と互換性のある非推奨の暗号:
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384

  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA

  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256

  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA

  • TLS_RSA_WITH_AES_256_GCM_SHA384

  • TLS_RSA_WITH_AES_256_CBC_SHA256

  • TLS_RSA_WITH_AES_256_CBC_SHA

  • TLS_RSA_WITH_AES_128_GCM_SHA256

  • TLS_RSA_WITH_AES_128_CBC_SHA256

  • TLS_RSA_WITH_AES_128_CBC_SHA

  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA256

  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA256

  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA

SSL_CIPHER_SUITES=(TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256)
SSL_CIPHER_SUITES=(TLS_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256)

5.2.103 SSL_CLIENT_AUTHENTICATION

SSL_CLIENT_AUTHENTICATIONパラメータは、データベース・クライアントがTransport Layer Security (TLS)を使用して認証されるかどうかを指定するために使用します。

用途

TLS接続でクライアント認証を有効にします。接続は一方向または双方向(相互TLSまたはmTLS)です。

使用上のノート

TRUEに設定すると、双方向TLS接続が開始されます。クライアントとサーバー(リスナーを含む)の両方が相互に認証します。たとえば、サーバー構成(サーバー側sqlnet.ora)でこのパラメータをTRUEに設定すると、サーバーはクライアントの認証を試みます。リスナー構成(listener.ora)でTRUEに設定すると、リスナーはクライアントの認証を試みます。

FALSEに設定すると、クライアントのみがサーバーおよびリスナーを一方向TLS接続として認証します。たとえば、サーバー構成でこのパラメータをFALSEに設定すると、サーバーはクライアントを認証しません。リスナー構成でFALSEに設定すると、リスナーはクライアントを認証しません。

OPTIONALに設定すると、サーバーは次のように動作します。
  • クライアントが証明書を送信すると、クライアントの認証後に接続は双方向TLS接続として完了します。

  • クライアントが証明書を送信しないと、接続は一方向TLS接続として完了します。

このパラメータ設定が、サーバーまたはリスナー(片側)とクライアント(もう一方側)で一貫していることを確認します。そうしないと、接続が失敗する可能性があります。たとえば、サーバーまたはリスナー構成でクライアント認証を有効にする場合は、クライアント構成でも有効にする必要があります。

デフォルト

TRUE

  • TRUE | ON | YES | 1: mTLSを有効にします

  • FALSE | OFF | NO | 0: 一方向TLSを有効にします

  • OPTIONAL: TLSとmTLSの両方を有効にします

SSL_CLIENT_AUTHENTICATION=FALSE

5.2.104 SSL_DISABLE_WEAK_EC_CURVES

SSL_DISABLE_WEAK_EC_CURVESパラメータは、弱い楕円曲線暗号(ECC)曲線の使用を無効にするために使用します。

用途

キー長が256ビット未満の弱いECC曲線の使用を無効にします。このパラメータは、データベース・サーバー(sqlnet.ora)、クライアント(sqlnet.oraまたはtnsnames.oraの接続文字列)またはリスナー(listener.ora)で設定できます。

使用上のノート

デフォルトでは、このパラメータはFALSEに設定され、すべてのECC曲線を使用できるようになります。ECC曲線のキー・サイズが256ビット以上である、オラクル社で承認されている曲線のみを使用できるようにする場合は、このパラメータをTRUEに設定します。

TRUEに設定した場合は、次のECC曲線のみを使用できます:
  • secp256r1

  • secp384r1

  • secp521r1

  • x25519

  • TRUE | ON | YES | 1: ECC曲線のキー長が256ビット以上である、オラクル社で承認されているECC曲線のみを有効にします

  • FALSE | OFF | NO | 0: すべてのECC曲線を有効にします

デフォルト

FALSE

  • tnsnames.oraファイル:

    net_service_name= 
      (DESCRIPTION=
        (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521)) 
        (SECURITY=(SSL_DISABLE_WEAK_EC_CURVES=TRUE))
      ) 
  • sqlnet.oraファイルまたはlistener.oraファイル内:

    SSL_DISABLE_WEAK_EC_CURVES=TRUE

5.2.105 SSL_ENABLE_WEAK_CIPHERS

sqlnet.oraのパラメータSSL_ENABLE_WEAK_CIPHERSは、弱いTransport Layer Security (TLS)暗号スイートの使用を有効にするために使用します。

用途

下位互換性のために弱いTLS暗号を使用できるようにします。このパラメータは、データベース・サーバーとクライアントの両方に設定できます。

使用上のノート

デフォルトでは、このパラメータはFALSEに設定され、弱い暗号の使用をブロックします。これにより、コンプライアンス監査の通過が簡素化され、データベースの全体的なセキュリティが向上します。弱い暗号の使用を有効にする場合は、このパラメータをTRUEに設定します。

FALSEに設定すると、次の強力な暗号のみを使用できます。
  • TLS_AES_128_CCM_SHA256

  • TLS_AES_128_GCM_SHA256

  • TLS_AES_256_GCM_SHA384

  • TLS_CHACHA20_POLY1305_SHA256

  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256

  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384

  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

SSL_ENABLE_WEAK_CIPHERS=FALSE設定では、弱い暗号を使用しようとすると、次のエラー・メッセージが表示されます。
  • データベース・サーバー上: ORA-28860: Fatal SSL error

  • データベース・クライアント上: ORA-29039: There are no matching cipher suites

  • TRUE | ON | YES | 1: 弱い暗号を有効にします

  • FALSE | OFF | NO | 0: 弱い暗号を無効にします

デフォルト

FALSE

SSL_ENABLE_WEAK_CIPHERS=FALSE

5.2.106 SSL_EXTENDED_KEY_USAGE

sqlnet.oraのパラメータSSL_EXTENDED_KEY_USAGEは、目的の証明書キーを指定するために使用します。

用途

証明書のキーの用途を指定します。

使用上のノート

このパラメータを指定すると、拡張キーが一致する証明書が使用されます。

client authentication

SSL_EXTENDED_KEY_USAGE="client authentication"

5.2.107 SSL_SERVER_DN_MATCH

SSL_SERVER_DN_MATCHパラメータは、識別名(DN)一致によるサーバー側の証明書検証を強制的に実施するために使用します。

用途

DN一致によるサーバー側証明書の検証を強制します。

このDN一致パラメータをクライアントに追加する目的は、Transport Layer Security (TLS)接続のセキュリティをさらに向上させることです。TLS接続はクライアントに依存して、データベース・サーバー証明書が有効であり、信頼できるルート証明書によって署名されているかどうかを検証します。リスナー証明書とサーバー証明書のDN一致では、リスナー証明書とサーバー証明書に別のクライアント側チェックが追加され、証明書がクライアントが期待する正しいものであることを確認します。

使用上のノート

  • このパラメータをTRUEに設定すると、サーバーの証明書チェーンの検証に加えて、クライアントはDN一致を通じてリスナーとサーバーに対して別のチェックを実行します。

  • 部分DN一致または完全DN一致のいずれかを構成できます。

    部分DN一致を通じて、クライアントはHOSTパラメータ(クライアントのsqlnet.oraファイル内または接続文字列内にある)を、証明書DNまたは証明書のサブジェクト代替名(SAN)フィールドにあるホスト名と照合します。クライアントはリスナーとサーバーの両方の証明書に対して、次の順序でHOSTをチェックします:
    1. まず、クライアントはHOSTをリスナー証明書のDNにあるホスト名と比較します。たとえば、DNのCN部分です。
      "c=us,o=examplecorporation,cn=sales.us.example.com"
    2. リスナー証明書のDNで一致が見つからない場合、クライアントはHOSTをリスナー証明書のSANフィールドにあるホスト名と比較します。たとえば:
      "DNS:sales.us.example.com"

      リスナー証明書のSANフィールドに一致が見つからない場合、クライアントはサーバーへ接続しようとせず、接続は失敗します。

    3. リスナー証明書のチェックが成功すると、クライアントはサーバー証明書に対して同様のチェックを実行します。つまり、クライアントはまずHOSTをサーバー証明書のDNにあるホスト名と比較します。

    4. サーバー証明書のDNで一致が見つからない場合、クライアントはHOSTをサーバー証明書のSANフィールドにあるホスト名と比較します。

    完全DN一致を通じて、クライアントはSSL_SERVER_CERT_DNの完全なDNを、リスナー証明書とサーバー証明書の両方の証明書DNと照合します。完全DN一致を強制するには、tnsnames.oraファイルか接続文字列のSSL_SERVER_CERT_DNパラメータを使用して、完全なDNを指定します。

  • リスナーとサーバーの両方に同じ証明書を使用することをお薦めします。

    リスナーとサーバーで異なるDNを持つ別の証明書を使用すると、完全DN一致は失敗します。この場合、同じDNで新しい証明書を取得するか(完全DN一致用に)、DN一致の方法を変更する必要があります。部分DN一致を構成してあるときは、リスナー証明書とサーバー証明書の両方の証明書DNまたはSANフィールドにHOSTが見つからない場合にもそれが失敗する可能性があります。

  • Oracle Database 23aiより前は、サーバー証明書のホスト名とSANに対してのみ、部分的なDN一致がチェックされていました。一致が見つからなかった場合は、ホスト名とSANとともに、SERVICE_NAMEパラメータもチェックされました。同様に、完全DN一致は、サーバー証明書内の完全なDNに対してのみチェックされました。

    以前の弱いDN一致動作(つまり、サーバー証明書だけをチェックし、DNの部分一致のサービス名チェックを許可する)に戻す場合は、SSL_ALLOW_WEAK_DN_MATCH=TRUEを設定します。ただし、SSL_ALLOW_WEAK_DN_MATCHパラメータは非推奨であり、将来のリリースで削除されるため、注意が必要です。新しい証明書を取得するか、DN一致の方法を変更することをお薦めします。

デフォルト

NO

  • YES | ON | TRUE | 1:

    部分または完全DN一致を強制します。DNがリスナー証明書とサーバー証明書の両方のホスト名またはSANと一致する場合、接続は成功します。DNがサーバーまたはリスナー証明書のホスト名またはSANと一致しない場合、接続は失敗します。

  • NO | OFF | FALSE | 0:

    DN一致は強制しません。DNがサーバーまたはリスナー証明書のホスト名またはSANと一致しない場合、接続は成功しますが、sqlnet.logファイルにエラーが記録されます。

SSL_SERVER_DN_MATCH=YES

5.2.108 SSL_VERSION

SSL_VERSIONパラメータは、接続に使用する有効なTransport Layer Security (TLS)バージョンを定義するために使用します。

用途

データベース・サーバーが通信するシステムで実行する必要があるTLSのバージョンを定義します。デフォルトでは、データベース・サーバーとクライアントは最も強いセキュリティ・プロトコルをネゴシエートします。セキュリティ要件によって特定のプロトコル・バージョンの使用が強制されていないかぎり、このパラメータを変更することはお薦めしません。

使用上のノート

  • クライアント、リスナーおよびデータベース・サーバーは、互換性のあるバージョンを使用する必要があります。このパラメータは、よりセキュアなTLSプロトコルの使用を強制し、古いTLSプロトコルのみで動作するクライアントを許可しないように、必要な場合にのみ変更してください。現行のデフォルトでは、複数のセキュリティ・コンプライアンス要件に必要なバージョンであるTLS 1.3を使用しています。TLS 1.2を指定する必要がある場合は、よりセキュアな接続を可能にするためにTLS 1.3も含めます。

  • sqlnet.oralistener.oraおよびcman.oraに加えて、このパラメータをtnsnames.oraSECURITYセクションで指定することも、接続文字列の一部として直接指定することもできます。接続文字列で指定されたパラメータ値は、他で指定された値より優先されます。

  • Database 23ai以降、Transport Layer Securityプロトコル・バージョン1.0および1.1の使用はサポートされなくなりました。

    データベース・クライアントおよびサーバーは最も安全なプロトコルおよび暗号アルゴリズムの使用をネゴシエートするため、ほとんどの場合、この変更による影響はありません。ただし、TLS 1.0または1.1が指定されている場合は、これを削除してデータベース・サーバーおよびクライアントが最も安全なプロトコルを選択できるようにするか、プロトコルにTLS 1.2またはTLS 1.3、あるいはその両方を指定する必要があります。最も安全な最新のプロトコルを使用することをお薦めします。そのプロトコルはTLS 1.3で、Oracle Database 23aiで導入されています。

  • Oracle Database 23ai以降では、データベースのサーバーとクライアントの接続でSecure Socket Layer v3プロトコル(SSLv3)がサポートされなくなり、sqlnet.oraのパラメータADD_SSLV3_TO_DEFAULTが削除されました。

    データベースのサーバーとクライアント間の接続を保護する上で、SSLv3はあまり安全ではないプロトコルです。SSLv3を使用するかわりに、サーバーとクライアント間で共通する最もセキュアなプロトコルを、データベースのサーバーとクライアントがネゴシエートできるようになります。Oracle Database 23aiには、証明書ベースのネットワーク暗号化用にTLS 1.2およびTLS 1.3プロトコルが用意されています。

  • SSL_VERSIONundeterminedに設定すると、最もセキュアなTLSプロトコル・バージョンが使用されます。特定の接続の接続文字列のSSL_VERSION=undetermined設定を使用して、sqlnet.oralistener.oraまたはcman.oraファイルで構成されたSSL_VERSION値をオーバーライドすることもできます。

  • SSL_VERSIONに値を設定しないと、サポートされているすべてのTLSプロトコル・バージョンが、最もセキュアなバージョンから試行されます。これは通常、最も一般的な構成で、TLSネゴシエーション中に最も強力なプロトコルが選択されます。

undetermined | TLSv1.2 | TLSv1.3

デフォルト

undetermined

構文と例

  • 単一のプロトコル・バージョンを指定するには:
    SSL_VERSION=TLS_protocol_version
    たとえば:
    SSL_VERSION=TLSv1.3
  • 複数のプロトコル・バージョンを指定するには、カッコで囲んだカンマ区切りの値文字列を使用します。
    SSL_VERSION=(TLS_protocol_version1,TLS_protocol_version2)
    たとえば:
    SSL_VERSION=(TLSv1.2,TLSv1.3)

    ノート:

    tnsnames.oraファイルまたは接続文字列の一部としてこのパラメータを指定するとき、プロトコル・バージョンをカッコで囲まないでください。そうしないと、設定が正しく解析されません。たとえば:

    net_service_name=
      (DESCRIPTION=
         (ADDRESS=(PROTOCOL=tcps)(HOST=salesserver)(PORT=1522))
         (SECURITY=(SSL_VERSION=TLSv1.2,TLSv1.3)) 
      )
    

5.2.109 TCP.ALLOWED_PROXIES

sqlnet.oraのパラメータTCP.ALLOWED_PROXIESは、クライアントIPアドレスをデータベース・サーバーに転送できるOracle Connection Manager (CMAN)アドレスのリストを指定するために使用します。

用途

クライアントIPアドレスをデータベース・サーバーに転送できるCMANアドレス(IPアドレスまたはホスト名)のリストを指定します。

使用上のノート

サーバー側のsqlnet.oraファイルでこのパラメータを使用して、許可されたCMANインスタンスをリストします。

TCP.ALLOWED_PROXIESパラメータに加えて、cman.oraファイルのENABLE_IP_FORWARDINGパラメータを設定してクライアント・アドレス転送を有効にする必要があります。CMANは、ENABLE_IP_FORWARDINGONに設定されている場合にのみクライアント・アドレスを転送します。

SYS_CONTEXT ('USERENV','IP_ADDRESS')関数を使用して、転送されたクライアント・アドレスの詳細を問い合せることができます。

デフォルト

なし

クライアント・アドレス転送を許可するIPアドレスまたはホスト名のカンマ区切りリスト。

TCP.ALLOWED_PROXIES=(10.1.1.1/24,cmanhost1.example.com)

5.2.110 TCP.CONNECT_TIMEOUT

sqlnet.oraのパラメータTCP.CONNECT_TIMEOUTは、クライアントがデータベース・サーバーへのTCP接続を確立するまでに許容される時間を指定するために使用します。

用途

クライアントがデータベース・サーバーへのTCP接続(TNS接続アドレスのPROTOCOL=tcp)を確立するまでの時間をmssecまたはminで指定します。

使用上のノート

データベースへのTCP接続が指定した時間内に確立しなかった場合、接続の試行は終了します。次のエラーがクライアントに表示されます。

ORA-12170: Cannot connect. TCP connect timeout of time_interval for host_port or key. (CONNECTION_ID=ID_string).

ホスト名に解決される各IPアドレスにタイムアウトが適用されます。値とユニットの間のスペースあり、なしにかかわらず、様々なタイムアウトを受け入れます。たとえば、ホスト名がIPv6およびIPv4アドレスに解決される場合、そしてホストにネットワークを介して到達できない場合、IPアドレスが2つあるため、接続リクエストは2倍の時間でタイムアウトになります。この例では、デフォルトのタイムアウト設定が60であるため、タイムアウトは120 で発生します。測定単位を指定していないと、デフォルトの単位はsecになります。

デフォルト

60

TCP.CONNECT_TIMEOUT=10 ms

5.2.111 TCP.EXCLUDED_NODES

sqlnet.oraのパラメータTCP.EXCLUDED_NODESは、データベースへの接続を拒否するクライアントを指定するために使用します。

用途

データベースへのアクセスを許可しないクライアントを指定します。

使用上のノート

このパラメータは、TCP.VALIDNODE_CHECKINGパラメータがyesに設定されている場合にのみ有効です。

このパラメータでは、IPv4アドレスにワイルドカードを使用でき、IPv4とIPv6アドレスにCIDR表記を使用できます。

構文

TCP.EXCLUDED_NODES=(hostname | ip_address, hostname | ip_address, ...)

TCP.EXCLUDED_NODES=(finance.us.example.com, mktg.us.example.com, 192.0.2.25,
 172.30.*, 2001:DB8:200C:417A/32)

5.2.112 TCP.INVITED_NODES

sqlnet.oraのパラメータTCP.INVITED_NODESは、データベースへの接続を許可するクライアントを指定するために使用します。

用途

データベースへのアクセスを許可するクライアントを指定します。両方のリストが存在する場合は、このリストがTCP.EXCLUDED_NODESパラメータよりも優先されます。

構文

TCP.INVITED_NODES=(hostname | ip_address, hostname | ip_address, ...)

使用上のノート

  • このパラメータは、TCP.VALIDNODE_CHECKINGパラメータがyesに設定されている場合にのみ有効です。

  • このパラメータでは、IPv4アドレスにワイルドカードを使用できます。また、IPv4とIPv6アドレスにはCIDR表記を使用できます。

TCP.INVITED_NODES=(sales.us.example.com, hr.us.example.com, 192.0.*,
 2001:DB8:200C:433B/32)

5.2.113 TCP.NODELAY

sqlnet.oraのパラメータTCP.NODELAYは、TCP/IPプロトコル・スタック内でバッファ・フラッシングの遅延を回避するために使用します。

用途

TCP/IPプロトコル・スタック内でバッファ・フラッシングの遅延を回避します。

デフォルト

yes

yes | no

TCP.NODELAY=yes

5.2.114 TCP.QUEUESIZE

sqlnet.oraのパラメータTCP.QUEUESIZEは、TCPリスニング・ソケットで保留中の接続用のキューの最大長を構成するために使用します。

用途

TCPリスニング・ソケットで保留中の接続用キューの最大長を構成します。

デフォルト

システムで定義された最大値。Linuxに定義された最大値は128です。

システム定義された最大値までの任意の整数値。

TCP.QUEUESIZE=100

5.2.115 TCP.VALIDNODE_CHECKING

sqlnet.oraのパラメータTCP.VALIDNODE_CHECKINGは、着信接続の有効ノード確認を有効化または無効化するために使用します。

用途

着信接続を確認して、有効なノードを有効または無効にします。

使用上のノート

このパラメータをyesに設定すると、TCP.INVITED_NODESまたはTCP.EXCLUDED_NODESパラメータで指定されているリストに適合しているノードから接続が発信されている場合にのみ、着信接続が許可されます。

TCP.INVITED_NODESおよびTCP.EXCLUDED_NODESパラメータは、TCP.VALIDNODE_CHECKINGパラメータをyesに設定した場合にのみ有効です。

このパラメータと、それに依存するパラメータ(TCP.INVITED_NODESおよびTCP.EXCLUDED_NODES)は、リスナーのsqlnet.oraファイルで設定する必要があります。これは、Oracle Grid Infrastructureホームからリスナーを実行するOracle RAC環境において重要です。このパラメータをデータベース・ホームで設定してもOracle RAC環境では反映されません。そのような環境では、TCP.INVITED_NODESリストにSingle Client Access Name (SCAN)、仮想IP (VIP)、ローカルIPのすべてのアドレスを含める必要があります。

VLAN環境では、Oracle Grid Infrastructureホーム内のsqlnet.oraファイルに、すべてのVLANのすべてのアドレスを含める必要があります。VLANはネットワークの分離を実施しますが、VLAN内のデータベースへのアクセスはINVITED_NODESに設定した値によって許可または制限します。

同じVLAN内の複数のデータベースに異なるINVITED_NODEリストが必要な場合は、個別のリスナーの構成が必要になります。

デフォルト

no

yes | no

TCP.VALIDNODE_CHECKING=yes

5.2.116 TENANT_ID

TENANT_IDパラメータは、Microsoft Entra IDテナントのIDを指定するために使用します。

用途

Entra IDアプリケーションが登録されている、Entra IDテナントのIDを指定します。これは、Entra ID内のデータベース・インスタンスを一意に識別する、AzureテナンシIDです。

使用上のノート

  • このパラメータは、AZURE_INTERACTIVEAZURE_SERVICE_PRINCIPALAZURE_MANAGED_IDENTITYおよびAZURE_DEVICE_CODEトークンベースの認証フローでは、TOKEN_AUTHパラメータとともに使用します。

  • このパラメータは、シック・クライアント(OCIとInstant Client)の場合は必須です。これは、JDBCシン・クライアントと、ODP.NETコアおよび管理対象データベース・クライアントの使用時はオプションです。

    JDBCシン・クライアントと、ODP.NETコアおよび管理対象データベース・クライアントの使用時は、Azure SDKを構成してあれば、クライアント・ドライバでSDK構成内のテナントIDが自動的に検索されます。SDKを構成していない場合は、このパラメータを設定する必要があります。

    OCIとInstant Client(それらではAzure SDKは使用されない)の使用時は、このパラメータを設定する必要があります(CLIENT_IDなどのその他の必須パラメータも設定する)。そうしないと、必須パラメータを構成するよう求めるエラー・メッセージが表示されます。

  • JDBCシン・クライアントの場合は、接続文字列、簡易接続構文、tnsnames.oraファイルまたはプロパティでこのパラメータを指定できます。シック・クライアント(OCIとInstant Client)と、ODP.NETコアおよび管理対象データベース・クライアントの場合は、接続文字列、sqlnet.oraファイル、簡易接続構文またはtnsnames.oraファイルでこのパラメータを指定できます。接続文字列で指定したパラメータ値が優先されます。

デフォルト

なし

Azureポータルにログインすることで、テナントID値を取得できます。これは、テナント・プロパティ・ページにテナントIDとしてリストされます。

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION =
       (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521))
       (SECURITY=
          (SSL_SERVER_DN_MATCH=TRUE)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=AZURE_INTERACTIVE)
          (AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3)
          (TENANT_ID=1a123ab1-a1b1-1a2b-a1b2-a12bcdab0123)
          (REDIRECT_URI=http://localhost:1575))
       (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
     ) 
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
TOKEN_AUTH=AZURE_INTERACTIVE
AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3
TENANT_ID=1a123ab1-a1b1-1a2b-a1b2-a12bcdab0123
REDIRECT_URI=http://localhost:1575
簡易接続文字列:
tcps:sales-svr:1521/sales.us.example.com?TOKEN_AUTH=AZURE_INTERACTIVE&AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3&TENANT_ID=1a123ab1-a1b1-1a2b-a1b2-a12bcdab0123&REDIRECT_URI=http://localhost:1575

これらの例では、CLIENT_IDパラメータは指定されていません。シック・クライアント(OCIとInstant Client)の使用時は、CLIENT_IDが必要です。このパラメータは、JDBCシンと、ODP.NETコアおよび管理対象データベース・クライアントの場合はオプションです。それらではAzure SDK構成からこの値を自動的に取得できます。

5.2.117 TNSPING.TRACE_DIRECTORY

sqlnet.oraのパラメータTNSPING.TRACE_DIRECTORYは、TNSPINGユーティリティのトレース・ファイル(tnsping.trc)の宛先ディレクトリを指定するために使用します。

用途

TNSPINGユーティリティのトレース・ファイル(tnsping.trc)の宛先ディレクトリを指定します。

デフォルト

ORACLE_HOME/network/traceディレクトリ

TNSPING.TRACE_DIRECTORY=/oracle/traces

5.2.118 TNSPING.TRACE_LEVEL

sqlnet.oraのパラメータTNSPING.TRACE_LEVELは、TNSPINGユーティリティのトレースを指定したレベルで有効化または無効化するために使用します。

用途

TNSPINGユーティリティのトレースを特定のレベルで有効または無効にします。

デフォルト

off

  • off: トレースを出力しません。

  • user: ユーザー用のトレース情報を出力します。

  • admin: 管理用のトレース情報を出力します。

  • support: Oracleサポート・サービス用のトレース情報を出力します。

TNSPING.TRACE_LEVEL=admin

5.2.119 TOKEN_AUTH

TOKEN_AUTHパラメータは、Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)ユーザー、またはMicrosoft Entra ID (旧称はMicrosoft Azure Active Directory)のMicrosoft Azureユーザーについて、トークンベースの認証を構成するために使用します。

用途

トークン・ベースのアクセスでは強力な認証が強制されるため、データベースへのより安全なアクセスが可能になります。IAMユーザーはOCI Database as a Service (DBaaS)データベースに接続でき、AzureユーザーはOracle Database (クラウドまたはオンプレミス)に接続できます。

この設定では、/ (スラッシュ)ログインを使用すると、Oracle Databaseクライアントによって、トークン・ファイルが検索されるか、シングル・サインオン(SSO)資格証明を使用してトークンが直接取得されます。

このパラメータは、tnsnames.oraファイルまたはsqlnet.oraファイルのSECURITYセクションの下で使用するか、コマンドライン接続文字列の一部として直接使用します。接続文字列で指定されたパラメータ値は、他で指定された値より優先されます。

IAMに関する使用上のノート

  • OCI IAMトークン:

    OCI IAMトークン(db-token)は、Oracle Cloud Infrastructure (OCI)コマンドライン・インタフェース(CLI)を使用するか、OCI Software Development Kit (SDK)からプログラムによってIAMから取得される、有効期限とスコープのあるproof-of-possession (PoP)トークンです。

    APIキー、セキュリティ・トークン、リソース・プリンシパル、インスタンス・プリンシパル、委任トークンなどのIAMユーザー資格証明のいずれかを使用して、IAMからdb-tokenおよび秘密キーを取得できます。

    これらのトークンは、セキュアなチャネルを経由して送信されます。TCP/IPプロトコルとTransport Layer Security (TLS)のみを使用する必要があり、そうしないと、TLS以外の接続が許可されていないことを示すエラー・メッセージが表示されます。

  • トークンベースの認証に必要な設定:

    トークンベースの認証では、TCPSプロトコル(PROTOCOL=TCPS)を構成し、SSL_SERVER_DN_MATCHパラメータをTRUEに設定する必要があります。

  • ファイルの場所を使用してトークンをOracle Databaseに送信する:

    IAMユーザーが/@connect_identifierを使用してログインすると(さらにTOKEN_AUTHOCI_TOKENに設定されていると)、TOKEN_AUTH=OCI_TOKEN設定および/@connect_identifierによって、db-tokenおよび秘密キーをデフォルト・ディレクトリまたはTOKEN_LOCATIONで指定された場所から取得するようデータベース・クライアントに指示されます。

  • クライアントAPIを使用してトークンをOracle Databaseに送信する:

    クライアント・アプリケーションがIAMからトークンを取得するように更新されている場合は、TOKEN_AUTH=OCI_TOKEN設定をオーバーライドできます。クライアント・アプリケーションは、IAMからdb-tokenと秘密キーを取得し、クライアントAPIを使用して、データベース・クライアントに属性として送信します。この場合、TOKEN_AUTHパラメータとTOKEN_LOCATIONパラメータを指定する必要はありません。

  • 一般的なIAMトークンベースの認証のプロセス:

    1. OCIのIAMユーザーまたはアプリケーションが、最初にAPIキー、セキュリティ・トークン、リソース・プリンシパル、サービス・プリンシパル、インスタンス・プリンシパルまたは委任トークンを使用して、IAMからdb-tokenをリクエストします(委任トークンはCloud Shellでのみ使用可能です)。

      セキュリティ・トークンを使用するには、ブラウザ認証プロセスを完了してセキュリティ・トークンを生成してから、そのセキュリティ・トークンを使用してdb-tokenをリクエストする必要があります。db-tokenの発行を認可するIAMポリシーが存在する場合は、db-tokenが返されます。

      OCI CLI (またはアプリケーションの場合はOCI SDK)を使用してdb-tokenをリクエストします。たとえば、次のOCI CLIコマンドを実行して、APIキー(apikey)を使用してdb-tokenをリクエストします。

      $ oci iam db-token get --profile scott

      profileオプションは、IAMユーザー資格証明にアクセスしてdb-tokenを取得するプロファイルを指定します。

      OCI CLIの使用方法の詳細は、Oracle Cloud Infrastructure CLIコマンド・リファレンスgetコマンドの詳細を参照してください。

    2. OCI CLIは、(プロファイルの一部としてIAMユーザー資格証明を格納する)configファイルを参照し、IAMを呼び出してdb-tokenを取得します。db-tokenおよび秘密キー・ファイルは、デフォルトまたは指定されたトークンの場所に書き込まれます。

    3. TOKEN_LOCATIONパラメータを指定して、db-tokenおよび秘密キー・ファイルが格納されるデフォルト・ディレクトリをオーバーライドできます。

      データベース・クライアントは、デフォルトのトークンの場所かTOKEN_LOCATIONで指定された場所からdb-tokenと秘密キーを取得し、秘密キーを使用してdb-tokenに署名して、データベース・サーバーに送信します。データベース・サーバーはdb-tokenを検証して、ユーザーのグループ・メンバーシップ情報を取得します。IAMユーザーがデータベース・スキーマにマップされている場合(排他的または共有)は、ログインが完了します。

  • Oracle Databaseクライアントを使用してトークンをOracle Databaseに直接送信する:

    この機能は、JDBCシン・クライアントと、ODP.NETコアおよび管理対象データベース・クライアントを使用する環境で使用できます。JDBCシン・クライアントの場合は、tnsnames.oraまたは簡易接続の接続文字列でこれを設定できます。ODP.NETコアおよび管理対象データベース・クライアントの場合は、sqlnet.oratnsnames.oraまたは簡易接続の接続文字列でこれを設定できます。接続文字列で指定したパラメータ値が優先されます。

    この機能の構成については、JDBCシン・クライアントの場合はOracle Database JDBC開発者ガイドを参照し、ODP.NETクライアントの場合はOracle Data Provider for .NET開発者ガイドを参照してください。

    次の認証フローにより、データベース・クライアントでIAM SSO資格証明を使用してdb-tokenを直接取得できます。

    • OCI対話型:

      TOKEN_AUTH=OCI_INTERACTIVEは、OCI対話型フローを指定します。これは、Webブラウザを使用して対話形式でトークン・リクエストを認証し、クライアント側のWebアプリケーションまたはデスクトップ・アプリケーションに役立ちます。

      データベース・クライアントは、デフォルト・ディレクトリまたはOCI_CONFIG_FILEパラメータで指定された場所に格納されているOCI構成ファイルから、デフォルト・プロファイル(DEFAULTという名前)を取得します。有効なリージョンのリストに対してユーザーのリージョンを検証した後、クライアントはWebブラウザでユーザーに対して認証リクエストを起動し、IAMのユーザー名とパスワード、およびIAMで必要な追加のファクタを使用してログインするように求めます。

      オプションで、OCI_PROFILEパラメータを指定して、構成ファイルで設定されたDEFAULTプロファイルをオーバーライドできます。

    • OCI APIキー:

      TOKEN_AUTH=OCI_API_KEYは、OCI APIキー・フローを指定します。これは、IAMで認識されるAPIキーを使用して、IAMでトークン・リクエストを認証します。

      データベース・クライアントは、デフォルトの構成ファイル・ディレクトリまたはOCI_CONFIG_FILEで指定された場所にあるOCI構成ファイル内のユーザーのDEFAULTプロファイルから、APIキーのファイル・システムの場所を読み取ります。

      オプションで、OCI_PROFILEパラメータを指定して、構成ファイルで設定されたユーザーのDEFAULTプロファイルをオーバーライドできます。

    • OCIインスタンス・プリンシパル:

      TOKEN_AUTH=OCI_INSTANCE_PRINCIPALは、OCIインスタンス・プリンシパル・フローを指定します。これは、OCIコンピュート・インスタンスで実行されているアプリケーションに対するOCIインスタンス・プリンシパルとして、IAMでトークン・リクエストを認証します。

    • OCI委任トークン:

      TOKEN_AUTH=OCI_DELEGATION_TOKENは、OCI委任トークン・フローを指定します。これは、OCI Cloud Shellで実行されているアプリケーションに対する委任トークンを使用して、IAMでトークン・リクエストを認証します。

    • OCIリソース・プリンシパル:

      TOKEN_AUTH=OCI_RESOURCE_PRINCIPALは、OCIリソース・プリンシパル・フローを指定します。これは、(OCIファンクションとして)コンテナで実行されているアプリケーションに対するOCIリソース・プリンシパルとして、IAMでトークン・リクエストを認証します。

    • デフォルト:

      TOKEN_AUTH=OCI_DEFAULTは、デフォルト・フローを指定します。この設定では、クライアント・ドライバは事前定義済の環境変数をSDK構成から読み取り、各認証フローを順番に評価し、アプリケーションが実行されている環境に基づいて最も適切なフローを割り当てます。

      ドライバでOCI_DEFAULTを使用して各認証フローが評価される順序:
      1. OCI APIキー: ドライバは最初に、OCI_CONFIG_FILEパラメータで指定された場所またはデフォルトの場所($HOME/.oci/config)に構成ファイルが存在するかどうかをチェックします。その後ドライバは、OCI_PROFILEパラメータで構成された名前またはデフォルト名(DEFAULT)と一致するプロファイルがファイルに含まれているかどうかをチェックします。最後に、ドライバはプロファイルがkey_fileという名前のエントリで構成されているかどうかをチェックします。これらのチェックがすべて成功した場合は、APIキーを使用した認証が使用されます。これらのチェックのいずれかが失敗した場合、ドライバは次のステップに進みます。

      2. OCI委任トークン: ドライバは最初に、OCI_CONFIG_FILE環境変数が設定されているかどうかをチェックします。その後ドライバは、OCI_CONFIG_FILE環境変数によって構成された場所にファイルが存在するかどうかをチェックします。次にドライバは、DEFAULTというプロファイルがファイルに含まれているかどうかをチェックします。最後に、ドライバはプロファイルがdelegation_token_fileというエントリで構成されているかどうかをチェックします。これらのチェックがすべて成功した場合は、委任トークンを使用した認証が使用されます。これらのチェックのいずれかが失敗した場合、ドライバは次のステップに進みます。

      3. OCIリソース・プリンシパル: ドライバは最初に、OCI_RESOURCE_PRINCIPAL_VERSION環境変数が設定されているかどうかをチェックします。その後ドライバは、変数がバージョン2.2または1.1に設定されているかどうかをチェックします。変数が2.2に設定されている場合、ドライバは、OCI_RESOURCE_PRINCIPAL_PRIVATE_PEMOCI_RESOURCE_PRINCIPAL_RPSTおよびOCI_RESOURCE_PRINCIPAL_REGION環境変数も設定されているかどうかをチェックします。それ以外の場合で、変数が1.1に設定されている場合、ドライバは、OCI_RESOURCE_PRINCIPAL_RPT_ENDPOINT環境変数も設定されているかどうかをチェックします。バージョンに必要な変数が設定されている場合は、リソース・プリンシパルとしての認証が使用されます。変数が設定されていない場合、ドライバは次のステップに進みます。

      4. OCIインスタンス・プリンシパル: ドライバは、インスタンス・メタデータ・サービスに証明書をリクエストします。サービスのベースURLはhttp://169.254.169.254/opc/v2/です。ただし、v2サービス・リクエストが失敗した場合は、http://169.254.169.254/opc/v1/のフォールバックURLが使用されます。v2またはv1サービスへのリクエストが成功した場合は、インスタンス・プリンシパルとしての認証が使用されます。リクエストが失敗した場合、ドライバは次のステップに進みます。

      5. 認証フローを使用して認証できないことを示すエラーがドライバからレポートされます。

    OCIデータベース・トークン・ポリシーによって、コンパートメント内の特定のデータベース(1つまたは複数)にのみアクセスするよう制限されている場合、これらすべての認証フローに対してOCI_DATABASEおよびOCI_COMPARTMENTパラメータも指定する必要があります。

ノート:

別のIAM資格証明とIAMデータベース・パスワードを使用して、IAMからdb-tokenをリクエストすることもできます。このdb-tokenはベアラー・トークンであり、秘密キーは付属していません。IAMユーザー名とIAMデータベース・パスワードを使用して、このトークンをリクエストするようにデータベース・クライアントを構成できます。アプリケーションは、このタイプのdb-tokenをクライアントに渡すことはできません。この場合は、別のパラメータ設定(PASSWORD_AUTH=OCI_TOKEN)を使用します。

トークンの取得にアプリケーションやツールを必要とするAPIキー、セキュリティ・トークン、リソース・プリンシパル、サービス・プリンシパル、インスタンス・プリンシパルおよび委任トークンとは異なり、データベース・クライアントがトークン取得のために使用できるのは、IAMデータベース・パスワードのみです。「PASSWORD_AUTH」を参照してください。

IAMのデフォルト設定

なし

表5-2 IAMの値と例

TOKEN_AUTH=OCI_TOKEN

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION =
       (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521))
       (SECURITY=
          (SSL_SERVER_DN_MATCH=TRUE)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=OCI_TOKEN))
       (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
     ) 
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
TOKEN_AUTH=OCI_TOKEN

これらの例では、オプションのTOKEN_LOCATIONパラメータが指定されていません。したがって、クライアントはデフォルトのトークンの場所から、自動的にdb-tokenと秘密キーを取得します。

TOKEN_AUTH=OCI_INTERACTIVE

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION =
       (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521))
       (SECURITY=
          (SSL_SERVER_DN_MATCH=TRUE)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=OCI_INTERACTIVE))
       (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
     ) 
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
TOKEN_AUTH=OCI_INTERACTIVE

これらの例では、オプションのOCI_CONFIGおよびOCI_PROFILEパラメータは指定されていません。したがって、クライアントはデフォルトの構成ファイル・ディレクトリからDEFAULTプロファイルを自動的に取得します。

TOKEN_AUTH=OCI_API_KEY

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION =
       (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521))
       (SECURITY=
          (SSL_SERVER_DN_MATCH=TRUE)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=OCI_API_KEY))
       (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
     ) 
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
TOKEN_AUTH=OCI_API_KEY

これらの例では、オプションのOCI_CONFIGおよびOCI_PROFILEパラメータは指定されていません。したがって、クライアントはデフォルトの構成ファイル・ディレクトリに格納されているDEFAULTプロファイルからAPIキー値を自動的に取得します。

TOKEN_AUTH=OCI_INSTANCE_PRINCIPAL

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION =
       (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521))
       (SECURITY=
          (SSL_SERVER_DN_MATCH=TRUE)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=OCI_INSTANCE_PRINCIPAL))
       (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
     ) 
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
TOKEN_AUTH=OCI_INSTANCE_PRINCIPAL

TOKEN_AUTH=OCI_DELEGATION_TOKEN

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION =
       (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521))
       (SECURITY=
          (SSL_SERVER_DN_MATCH=TRUE)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=OCI_DELEGATION_TOKEN))
       (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
     ) 
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
TOKEN_AUTH=OCI_DELEGATION_TOKEN

TOKEN_AUTH=OCI_RESOURCE_PRINCIPAL

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION =
       (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521))
       (SECURITY=
          (SSL_SERVER_DN_MATCH=TRUE)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=OCI_RESOURCE_PRINCIPAL))
       (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
     ) 
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
TOKEN_AUTH=OCI_RESOURCE_PRINCIPAL

Entra IDに関する使用上のノート

  • Entra IDアクセス・トークン:

    Entra ID OAuth2アクセス・トークンは、有効期限とスコープがあるベアラー・トークンです。このトークンは、Entra ID拡張機能によりOAuth2.0標準に準拠しています。これらのトークンは、Linux、Microsoft PowerShellまたはその他の環境で実行されるツールおよびスクリプトからリクエストできます。また、Microsoft SDKを使用してプログラム的にこれらのトークンをリクエストすることもできます。

    これらのトークンは、セキュアなチャネルを経由して送信されます。TCP/IPプロトコルとTransport Layer Security (TLS)のみを使用する必要があり、そうしないと、TLS以外の接続が許可されていないことを示すエラー・メッセージが表示されます。

  • トークンベースの認証に必要な設定:

    トークンベースの認証では、TCPSプロトコル(PROTOCOL=TCPS)を構成し、SSL_SERVER_DN_MATCHパラメータをTRUEに設定する必要があります。

  • ファイルの場所を使用してトークンをOracle Databaseに送信する:

    Azureユーザーが/@connect_identifierを使用してログインすると(また、TOKEN_AUTHOAUTHに設定されている場合)、TOKEN_AUTH=OAUTH設定により、データベース・クライアントが、トークン・ファイルがtokenという名前の場合はTOKEN_LOCATIONで指定されているディレクトリの場所からアクセス・トークンを取得するように指示されます。トークン・ファイル名がtokenと異なる場合は、TOKEN_LOCATIONパラメータを指定するときにファイル名とディレクトリの場所を使用する必要があります。

    TOKEN_LOCATIONパラメータは、Azureトークンベースの認証では必須です。データベース・クライアントはこの場所からトークンを取得して、データベース・サーバーに送信します。

  • クライアントAPIを使用してトークンをOracle Databaseに送信する:

    トークンをEntra IDから取得するようにクライアント・アプリケーションが更新されている場合は、TOKEN_AUTH=OAUTH設定をオーバーライドできます。Entra IDは、クライアントAPIを使用してデータベース・クライアントに属性としてdb-tokenを直接渡します。このリクエストをクライアントが受信すると、クライアントがデータベース・サーバーに送信します。

    この場合、TOKEN_AUTHパラメータとTOKEN_LOCATIONパラメータを指定する必要はありません。

  • 一般的なAzureトークンベースの認証のプロセス:

    1. Azureユーザーまたはアプリケーションが、最初に、サポートされている認証フローのいずれか(リソース所有者のパスワード資格証明、認可コード、on-behalf-of (OBO)フローまたはクライアント資格証明)を使用してEntra IDからアクセス・トークンをリクエストします。

      Azureユーザーは、サポートされている任意のユーティリティを使用して接続し、トークンを取得し、それをローカル・ファイル・ディレクトリに格納できます。

      トークンは、Linux、Microsoft PowerShellまたはその他の環境で実行されるツールおよびスクリプトからリクエストできます。Microsoft SDKを使用して、プログラム的にリクエストすることもできます。

      Entra ID OAuth2アクセス・トークンを取得する方法の詳細な例は、Oracle Databaseセキュリティ・ガイドを参照してください。

    2. 続いて、データベース・クライアントがトークンをデータベース・サーバーに送信します。データベース・サーバーは、トークンを検証し(Entra ID公開キーを使用)、ユーザー名、アプリケーション・ロール、オーディエンスなど、様々な要求をトークンから抽出します。Entra IDプリンシパルがデータベース・スキーマにマップされている場合(排他的または共有)、ログインは完了します。

  • Oracle Databaseクライアントを使用してトークンをOracle Databaseに直接送信する:

    この機能は、JDBCシン・クライアント、シック・クライアント(Oracle Call Interface (OCI)とOracle Database Instant Client、JDBCシック、ODP.NET管理対象外またはPythonシック)、ODP.NETコア・クラスまたはODP.NET管理対象ドライバ・クラスを使用する環境で使用できます。

    シック・クライアントの場合は、対話型フローのみがサポートされています(TOKEN_AUTH=AZURE_INTERACTIVE)。

    JDBCシン・クライアントの場合は、tnsnames.oraまたは簡易接続の接続文字列でこれを設定できます。シック・クライアントと、ODP.NETコアおよび管理対象データベース・クライアントの場合は、tnsnames.ora、接続文字列またはsqlnet.oraファイルでこれを設定できます(REDIRECT_URIおよびCLIENT_CERTIFICATEを除く)。接続文字列で指定したパラメータ値が優先されます。

    JDBCクライアントの場合のこの機能の構成方法については、Oracle Database JDBC開発者ガイドを参照してください。ODP.NETクライアントの場合は、Oracle Data Provider for .NET開発者ガイドを参照してください。OCIとInstant Clientの場合は、Oracle Call Interface開発者ガイドを参照してください。

    次の認証フローにより、データベース・クライアントでAzure SSO資格証明を使用してアクセス・トークンを直接取得できます。

    • Azure OAuth2対話型:

      TOKEN_AUTH=AZURE_INTERACTIVEは、Azure OAuth2対話型フローを指定します。これは、Webブラウザを使用して対話形式でトークン・リクエストを認証し、クライアント側のWebアプリケーションまたはデスクトップ・アプリケーションに役立ちます。

      Azureユーザーが/@connect_identifierを使用してログインすると(また、TOKEN_AUTHAZURE_INTERACTIVEに設定されている場合)、TOKEN_AUTH=AZURE_INTERACTIVE設定と/@connect_identifierにより、データベース・クライアント・ドライバが、Entra IDからアクセス・トークンを直接取得するように指示されます。これは、ツール(SQLclなど)にログインしている、各自の環境でブラウザ・ウィンドウを開いて認証を行うことができる人間のユーザー向けです。

      ユーザーがまだログインしていない場合は、データベース・クライアントにより、ユーザーに対して認証リクエストが開始され、Azureユーザー名およびパスワードを使用してログインするよう求められます(ユーザーがWebアプリケーションを使用している場合はダイアログ・ボックスが表示され、ユーザーがコマンドライン・シェルで作業している場合はプロンプトが表示されます)。Azureアカウントにログインすると、ユーザーはクライアント・アプリケーション(その登録されているリダイレクトURI)にリダイレクトされます。

      オプションで、デフォルトのリダイレクトURI値(http://localhost)をオーバーライドする必要がある場合にはREDIRECT_URIパラメータを設定できます。

      トークン・リクエストの認可スコープを構成するには、AZURE_DB_APP_ID_URIパラメータを設定する必要があります。

      CLIENT_IDパラメータとTENANT_IDパラメータは、JDBCシンと、ODP.NETコアおよび管理対象データベース・クライアントの場合はオプションです。それらではAzure SDK構成からこれらの値を自動的に取得できます。CLIENT_IDTENANT_IDは、OCIとInstant Clientの場合は必須パラメータです。

    • Azureサービス・プリンシパル:

      TOKEN_AUTH=AZURE_SERVICE_PRINCIPALは、Azureサービス・プリンシパル・フローを指定します。これは、クライアント・シークレットまたはクライアント証明書のいずれかを使用してトークン・リクエストをサービス・プリンシパルとして認証し、サーバー側アプリケーション(マイクロサービスやバックエンド・アプリケーションなど)に役立ちます。

      トークン・リクエストの認可スコープを構成するには、AZURE_DB_APP_ID_URIパラメータを設定する必要があります。

      CLIENT_IDTENANT_IDおよびCLIENT_CERTIFICATEパラメータは、JDBCシンと、ODP.NETコアおよび管理対象データベース・クライアントの場合はオプションです。それらではAzure SDK構成からこれらの値を自動的に取得できます。CLIENT_IDTENANT_IDは、OCIとInstant Clientの場合は必須パラメータです。

    • AzureマネージドID:

      TOKEN_AUTH=AZURE_MANAGED_IDENTITYは、Azure管理対象アイデンティティ・フローを指定します。これは、AzureマネージドIDとしてEntra IDを使用してトークン・リクエストを認証します。Azure環境(Azure App ServiceまたはAzure仮想マシンなど)でホストされているクライアント側またはサーバー側アプリケーションに役立ちます。

      トークン・リクエストの認可スコープを構成するには、AZURE_DB_APP_ID_URIパラメータを設定する必要があります。

      CLIENT_IDパラメータを設定すると、トークン・リクエストを認証するためのユーザー割り当てマネージドIDを構成できます。このパラメータは、JDBCシンと、ODP.NETコアおよび管理対象データベース・クライアントの場合はオプションです。それらではAzure SDK構成からこの値を自動的に取得できます。CLIENT_IDは、OCIとInstant Clientの場合は必須です。

    • Azureデバイス・コード:

      TOKEN_AUTH=AZURE_DEVICE_CODEは、Azureデバイス・コード・フローを指定します。これは、対話形式でトークン・リクエストを認証します。人間のユーザー用、またはブラウザ・サポート(たとえば、SQLclなどのコマンドライン環境)がないか制限されているプラットフォーム上で実行されているクライアント側アプリケーション用です。

      データベース・クライアントは、ツールの標準出力を介してデバイス・コードとEntra IDログインURLを表示し、ユーザーに、ブラウザをサポートしているデバイス(携帯電話やラップトップなど)にデバイス・コード、Azureユーザー名およびAzureパスワードを入力するよう求めます。Webブラウザでのログインが完了すると、Azure SDKによってクライアントにアクセス・トークンが返されます。クライアントは、アクセス・トークンをデータベースに送信し、データベース・ユーザー・セッションを認可します。

      トークン・リクエストの認可スコープを構成するには、AZURE_DB_APP_ID_URIパラメータを設定する必要があります。

      CLIENT_IDパラメータとTENANT_IDパラメータは、JDBCシンと、ODP.NETコアおよび管理対象データベース・クライアントの場合はオプションです。それらではAzure SDK構成からこれらの値を自動的に取得できます。CLIENT_IDTENANT_IDは、OCIとInstant Clientの場合は必須パラメータです。

      ノート:

      Azureポータルで、Entra IDアプリケーションに対してAzure OAuth2対話型フローおよびAzureデバイス・コード・フローを明示的に有効にする必要があります。これを行うには、アプリケーション登録- 認証ページの「詳細設定」で、パブリック・クライアント・フローの許可「はい」に設定します。
    • デフォルト:

      TOKEN_AUTH=AZURE_DEFAULTは、デフォルト・フローを指定します。この設定では、クライアント・ドライバは事前定義済の環境変数をSDK構成から読み取り、各認証フローを順番に評価し、アプリケーションが実行されている環境に基づいて最も適切なフローを割り当てます。

      ドライバでAZURE_DEFAULTを使用して各認証フローが評価される順序:
      1. クライアント・シークレット資格証明を使用したAzureサービス・プリンシパル: ドライバは、クライアントIDとクライアント・シークレットがドライバへのパラメータとして、またはSDK環境変数として構成されているかどうかをチェックします。どちらも構成されている場合、ドライバはクライアント・シークレットを使用したサービス・プリンシパルとして認証します。そうでない場合、ドライバは次のステップに進みます。

      2. クライアント証明書資格証明を使用したAzureサービス・プリンシパル: ドライバは、クライアントIDとクライアント証明書がドライバへのパラメータとして、またはSDK環境変数として構成されているかどうかをチェックします。どちらも構成されている場合、ドライバはクライアント証明書を使用したサービス・プリンシパルとして認証します。そうでない場合、ドライバは次のステップに進みます。

      3. Azureユーザー名資格証明: ドライバは、クライアントID、ユーザー名およびパスワードがドライバへのパラメータとして、またはSDK環境変数として構成されているかどうかをチェックします。すべてが構成されている場合、ドライバはユーザー名およびパスワードを使用したサービス・プリンシパルとして認証します。そうでない場合、ドライバは次のステップに進みます。

      4. Azure管理対象アイデンティティ: ドライバは、MSI_ENDPOINTまたはIDENTITY_ENDPOINT環境変数が設定されているかどうかをチェックします。いずれかが設定されている場合、ドライバは構成されたエンドポイントを使用して管理対象アイデンティティとして認証します。どちらも設定されていない場合、ドライバはAZURE_TENANT_IDおよびAZURE_FEDERATED_TOKEN_FILE環境変数が設定されているかどうかをチェックします。どちらも設定されている場合、ドライバは構成されたトークン・ファイルを使用して管理対象アイデンティティとして認証します。どちらも設定されていない場合、ドライバはAzure Instance Metadata Service (IMDS)エンドポイントにアクセス・トークンをリクエストします。リクエストが成功した場合、ドライバは管理対象アイデンティティとして認証します。そうでない場合、ドライバは次のステップに進みます。

      5. Visual Studio資格証明: ODP.NETコア・クラスおよびODP.NET管理対象ドライバ・クラスの場合、ドライバはVisual Studio資格証明認証フローを介してAzureユーザーをさらに評価します。ドライバは、TENANT_IDパラメータまたはAZURE_TENANT_ID環境変数が設定されているか、およびAzureユーザーがVisual Studioにログインしているかをチェックします。両方のチェックが成功した場合は、Visual Studio資格証明による認証が使用されます。そうでない場合、ドライバは次のステップに進みます。

      6. 認証フローを使用して認証できないことを示すエラーがドライバからレポートされます。

Entra IDの場合のデフォルト設定

なし

表5-3 Entra IDの場合の値と例

TOKEN_AUTH=OAUTH

  • トークン・ファイルがtokenTOKEN_AUTH=OAUTHおよびTOKEN_LOCATION="token_file_directory"という名前である場合:

    tnsnames.oraファイル:
    net_service_name=
        (DESCRIPTION=
          (ADDRESS=(PROTOCOL=tcps)(HOST=salesserver1)(PORT=1522))
          (SECURITY=
              (SSL_SERVER_DN_MATCH=TRUE)
              (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
              (TOKEN_AUTH=OAUTH)
              (TOKEN_LOCATION="/home/dbuser1/access-token"))
          (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
        )
    
    sqlnet.oraファイル:
    SSL_SERVER_DN_MATCH=TRUE
    TOKEN_AUTH=OAUTH 
    TOKEN_LOCATION="/home/dbuser1/access-token"
    

    これらの例では、トークン・ファイル名はtokenです。したがって、ディレクトリ・パス(/home/dbuser1/access-token)のみが指定されています。クライアントは指定されたパスのtokenファイルを自動的に検索して、アクセス・トークンを取得します。

  • トークン・ファイル名がtokenTOKEN_AUTH=OAUTHおよびTOKEN_LOCATION="token_file_directory/token_filename"と異なる場合:

    tnsnames.oraファイル:
    net_service_name=
        (DESCRIPTION=
          (ADDRESS=(PROTOCOL=tcps)(HOST=salesserver1)(PORT=1522))
          (SECURITY=
              (SSL_SERVER_DN_MATCH=TRUE)
              (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
              (TOKEN_AUTH=OAUTH)
              (TOKEN_LOCATION="/home/dbuser1/access-token/mytoken"))
          (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
        )
    
    sqlnet.oraファイル:
    SSL_SERVER_DN_MATCH=TRUE
    TOKEN_AUTH=OAUTH 
    TOKEN_LOCATION="/home/dbuser1/access-token/mytoken"
    

    これらの例では、トークン・ファイル名はmytokenです。したがって、ファイル名とディレクトリ・パス(/home/dbuser1/access-token)の両方が指定されています。クライアントは指定されたパスのmytokenファイルから、アクセス・トークンを取得します。

TOKEN_AUTH=AZURE_INTERACTIVE

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION =
       (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521))
       (SECURITY=
          (SSL_SERVER_DN_MATCH=TRUE)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=AZURE_INTERACTIVE)
          (AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3)
          (REDIRECT_URI=http://localhost:1575))
       (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
     ) 
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
TOKEN_AUTH=AZURE_INTERACTIVE
AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3
REDIRECT_URI=http://localhost:1575

これらの例では、CLIENT_IDおよびTENANT_IDパラメータは指定されていません。これらのパラメータは、JDBCシン、ODP.NETコアおよび管理対象データベース・クライアントの場合はオプションです。それらではAzure SDK構成からこれらの値を自動的に取得できます。シック・クライアント(OCIとInstant Client)では、これらのパラメータを指定する必要があります。

TOKEN_AUTH=AZURE_SERVICE_PRINCIPAL

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION =
       (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521))
       (SECURITY=
          (SSL_SERVER_DN_MATCH=TRUE)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=AZURE_SERVICE_PRINCIPAL)
          (AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3))
       (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
     ) 
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
TOKEN_AUTH=AZURE_SERVICE_PRINCIPAL
AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3

これらの例では、CLIENT_IDTENANT_IDおよびCLIENT_CERTIFICATEパラメータは指定されていません。CLIENT_IDTENANT_IDは、JDBCシンと、ODP.NETコアおよび管理対象データベース・クライアントの場合はオプションです。それらではAzure SDK構成からこれらの値を自動的に取得できます。シック・クライアント(OCIとInstant Client)では、これらのパラメータを指定する必要があります。

TOKEN_AUTH=AZURE_MANAGED_IDENTITY

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION =
       (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521))
       (SECURITY=
          (SSL_SERVER_DN_MATCH=TRUE)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=AZURE_MANAGED_IDENTITY)
          (AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3))
       (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
     ) 
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
TOKEN_AUTH=AZURE_MANAGED_IDENTITY
AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3

これらの例では、CLIENT_IDパラメータは指定されていません。このパラメータは、JDBCシンと、ODP.NETコアおよび管理対象データベース・クライアントの場合はオプションです。それらではAzure SDK構成からこの値を自動的に取得できます。シック・クライアント(OCIとInstant Client)では、このパラメータを指定する必要があります。

TOKEN_AUTH=AZURE_DEVICE_CODE

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION =
       (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521))
       (SECURITY=
          (SSL_SERVER_DN_MATCH=TRUE)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=AZURE_DEVICE_CODE)
          (AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3))
       (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
     ) 
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
TOKEN_AUTH=AZURE_DEVICE_CODE
AZURE_DB_APP_ID_URI=https://application.example.com/123ab4cd-1a2b-1234-a12b-aa00123b2cd3

これらの例では、CLIENT_IDおよびTENANT_IDパラメータは指定されていません。これらのパラメータは、JDBCシン、ODP.NETコアおよび管理対象データベース・クライアントの場合はオプションです。それらではAzure SDK構成からこれらの値を自動的に取得できます。シック・クライアント(OCIとInstant Client)では、これらのパラメータを指定する必要があります。

5.2.120 TOKEN_LOCATION

TOKEN_LOCATIONパラメータは、トークンベースの認証のためにトークン・ファイルが格納されるディレクトリの場所を指定するために使用します。

用途

トークン・ファイル・ディレクトリの場所を指定します。このパラメータは、Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)ユーザー、またはMicrosoft Entra IDのMicrosoft Azureユーザーに対してトークンベースの認証を構成する間に使用します。データベース・クライアントはこの場所からトークンを取得して、データベース・サーバーに送信します。Entra IDの場合は、ディレクトリの場所とともにトークン・ファイル名を指定することもできます。

このパラメータは、tnsnames.oraファイルまたはsqlnet.oraファイルでTOKEN_AUTHパラメータとともに使用するか、コマンドライン接続文字列の一部として直接使用します。接続文字列で指定されたパラメータ値は、他で指定された値より優先されます。

IAMに関する使用上のノート

TOKEN_LOCATIONパラメータは、IAMトークンベースの認証ではオプションです。このパラメータをTOKEN_AUTHパラメータとともに使用すると、db-tokenおよび秘密キーが格納されるデフォルトのディレクトリをオーバーライドできます。この場所は、db-tokenおよび秘密キーを取得するために、データベース・クライアントによって使用されます。

IAMユーザーが/@connect_identifier (およびTOKEN_AUTHOCI_TOKENに設定)を使用して接続を開始すると、データベース・クライアントは、デフォルト・ディレクトリかTOKEN_LOCATIONで指定された場所から、db-tokenと秘密キーを取得します。その後、クライアントは秘密キーを使用してdb-tokenに署名し、db-tokenをデータベース・サーバーに送信します。

IAMのデフォルト設定

  • Linuxの場合:

    /home/username/.oci/db-token

  • Windowsの場合:

    データベース・クライアントは、次の順序でデフォルト・ディレクトリを検索します:

    USERPROFILE環境変数が設定されている場合、クライアントはUSERPROFILEディレクトリ(例: C:\Users\username)を検索します。

    USERPROFILEが設定されていない場合、クライアントはHOMEPATH (例: \Users\username)を使用して、HOMEDRIVEディレクトリ(例: C:)を検索します。

    たとえば、Windowsにおけるデフォルトのトークンの場所ディレクトリは次のとおりです。

    C:\Users\username\.oci\db-token

IAMの値と例

TOKEN_LOCATION="token_file_directory"

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION =
       (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1521))
       (SECURITY=
          (SSL_SERVER_DN_MATCH=TRUE)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=OCI_TOKEN)
          (TOKEN_LOCATION="/home/oracle/.oci/db-token"))
       (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
     ) 
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
TOKEN_AUTH=OCI_TOKEN
TOKEN_LOCATION="/home/oracle/.oci/db-token"

Entra IDに関する使用上のノート

TOKEN_LOCATIONパラメータは、Azureトークンベースの認証では必須です。このパラメータをTOKEN_AUTHパラメータとともに使用して、Entra ID OAuth2アクセス・トークンの格納先であるディレクトリの場所を指定する必要があります。この場所は、アクセス・トークンを取得するために、データベース・クライアントによって使用されます。

トークン・ファイルがtokenという名前である場合は、ディレクトリ・パスのみを指定します。トークン・ファイル名がtokenと異なる場合は、ファイル名とディレクトリ・パスを使用する必要があります。

Azureユーザーが/@connect_identifierを使用して接続を開始すると、データベース・クライアントにより、TOKEN_LOCATIONで指定されている場所からアクセス・トークンが取得され、そのトークンがデータベース・サーバーに送信されます。

Entra IDの場合のデフォルト設定

なし

Entra IDの場合の値と例

トークン・ファイルがtokenという名前である場合:

TOKEN_LOCATION="token_file_directory"

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION=
      (ADDRESS=(PROTOCOL=tcps)(HOST=salesserver1)(PORT=1522))
      (SECURITY=
          (SSL_SERVER_DN_MATCH=TRUE)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=OAUTH)(TOKEN_LOCATION="/home/dbuser1/access-token"))
      (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
    )
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
TOKEN_AUTH=OAUTH 
TOKEN_LOCATION="/home/dbuser1/access-token"

これらの例では、トークン・ファイル名はtokenです。したがって、ディレクトリ・パス(/home/dbuser1/access-token)のみが指定されています。クライアントは指定されたパスのtokenファイルを自動的に検索して、アクセス・トークンを取得します。

トークン・ファイル名がtokenと異なる場合:

TOKEN_LOCATION="token_file_directory/token_filename"

tnsnames.oraファイル:
net_service_name=
    (DESCRIPTION=
      (ADDRESS=(PROTOCOL=tcps)(HOST=salesserver1)(PORT=1522))
      (SECURITY=
          (SSL_SERVER_DN_MATCH=ON)
          (SSL_SERVER_CERT_DN="C=US,O=example,CN=OracleContext")
          (TOKEN_AUTH=OAUTH)
          (TOKEN_LOCATION="/home/dbuser1/access-token/mytoken"))
      (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
    )
sqlnet.oraファイル:
SSL_SERVER_DN_MATCH=TRUE
TOKEN_AUTH=OAUTH 
TOKEN_LOCATION="/home/dbuser1/access-token/mytoken"

これらの例では、トークン・ファイル名はmytokenです。したがって、ファイル名とディレクトリ・パス(/home/dbuser1/access-token)の両方が指定されています。クライアントは指定されたパスのmytokenファイルから、アクセス・トークンを取得します。

5.2.121 USE_CMAN

sqlnet.oraのパラメータUSE_CMANは、Oracle Connection Managerへのクライアントのルーティングを指定するために使用します。

用途

クライアントのOracle Connection Managerへの経路指定に使用します。

使用上のノート

このパラメータをtrueに設定すると、クライアントはOracle Connection Managerのプロトコル・アドレスに経路指定されます。

falseに設定すると、クライアントはアドレス・リストの1つを無作為に選択しますが、選択したADDRESS_LISTに障害がある場合は、もう一方のアドレス・リストにフェイルオーバーします。USE_CMAN=trueの場合、クライアントは、常に最初のアドレス・リストを使用します。

Oracle Connection Managerのアドレスが使用可能でない場合、接続は使用可能なリスナー・アドレスを介して経路指定されます。

デフォルト

false

true | false

USE_CMAN=true

5.2.122 USE_DEDICATED_SERVER

sqlnet.oraのパラメータUSE_DEDICATED_SERVERは、クライアントが使用する接続記述子のCONNECT_DATAセクションに(SERVER=dedicated)を追加するために使用します。

用途

クライアントが使用する接続記述子のCONNECT_DATAセクションに(SERVER=dedicated)を追加します。

使用上のノート

このパラメータの値によって、tnsnames.oraファイルにあるSERVERパラメータの現在の値はオーバーライドされます。

onに設定すると、パラメータUSE_DEDICATED_SERVERによって(SERVER=dedicated)が接続記述子の接続データに自動的に追加されます。これにより、このクライアントからの接続では、shared serverが構成されていても、dedicated serverプロセスを使用できるようになります。

デフォルト

off

  • on: (SERVER=dedicated)が追加されます。

  • off: リクエストを既存のサーバー・プロセスに送ります。

USE_DEDICATED_SERVER=on

5.2.123 USE_SNI

CONNECT_DATAのパラメータを使用してServer Name Indication (SNI)値の設定を有効にするには、sqlnet.oraのパラメータUSE_SNIを使用します。

用途

TLS接続に対して、CONNECT_DATAのパラメータを使用してSNI値の設定を有効または無効にします。

使用上のノート

USE_SNIが設定されており、接続文字列でのCONNECT_DATAにSNI用のサポートされているパラメータのどれかが指定されている場合は、これらのパラメータを使用してSNI値が設定されます。このSNI値は、その後リスナーによって使用されて、クライアントとのTLSハンドシェイクを実行する必要なく、リクエストを処理するための適切なサービス・ハンドラが選択されます。SNIを設定するためのサポートされているCONNECT_DATAのパラメータには、SERVICE_NAMEINSTANCE_NAMESERVERおよびCOLOCATION_TAGがあります。

USE_SNIが設定されており、CONNECT_DATAに前述のサポートされているパラメータのどれかが含まれていない場合は、SNI値は設定されず、リスナーによって、クライアントとの通常のTLSハンドシェイクが実行されて接続リクエストがフェッチされます。

  • CONNECT_DATAを使用してSNI値を設定するには、ON | TRUE | YES
  • CONNECT_DATAを使用してSNI値を設定しない場合は、OFF | FALSE | NO

デフォルト値

OFF

USE_SNI=ON

ノート:

SNIのサポートは、23.7以降のすべてのバージョンで使用できますが、以前のバージョンでは使用できません。

5.2.124 WALLET_LOCATION

WALLET_LOCATIONパラメータは、Oracleウォレットの場所を指定するために使用します。

用途

Oracleウォレットを作成して格納するディレクトリ・パスを指定します。ウォレットには、Oracle Databaseで使用される証明書、シークレット、秘密キーおよびトラスト・ポイントが安全に含まれています。

使用上のノート

  • サーバー側設定の非推奨:

    パラメータWALLET_LOCATIONは、Oracle DatabaseサーバーのOracle Database 23aiでの使用は非推奨です。Oracle Databaseクライアントおよびリスナーでの使用は非推奨ではありません。

    Oracle Databaseサーバーの場合、WALLET_LOCATIONを使用するかわりに、WALLET_ROOTシステム・パラメータを使用することをお薦めします。

  • このパラメータの設定場所:

    sqlnet.oraファイルでWALLET_LOCATIONを設定して、すべての接続に共通のウォレットの場所を指定できます。これを接続文字列またはtnsnames.oraファイルに設定して、特定の接続に対して別のウォレットの場所を指定することもできます。

    接続文字列またはtnsnames.oraWALLET_LOCATIONを使用すると、特定のtnsnames.oraサービスのsqlnet.ora WALLET_LOCATION設定がオーバーライドされます。tnsnames.ora WALLET_LOCATION設定を使用すると、クライアントは、同じクライアント・プロセスで異なるTLS証明書を使用して複数のTLSセッションを開始できます。

  • クライアント側ウォレットのかわりにシステムのデフォルトの証明書ストアを使用する設定:

    LinuxおよびWindowsデータベース・クライアントは、ルート証明書を含むローカル・ウォレットを作成するかわりに、システムのデフォルトの証明書ストアを使用してOracle Databaseサーバー証明書を検証できます。デフォルトの証明書ストアは、Linuxの/etc/pki/tls/cert.pemおよびWindowsのMicrosoft Certificate Store (MCS)にあります。

    接続文字列(tnsnames.ora内またはコマンドラインに直接)にWALLET_LOCATION=SYSTEMを設定すると、データベース・クライアントはデフォルトの証明書ストアを使用してサーバー証明書を検証します。この場合、サーバー証明書は、デフォルトの証明書ストアにすでにインストールされている信頼できるルート証明書によって署名される必要があります。

    たとえば:
    net_service_name=
        (DESCRIPTION =
           (ADDRESS=(PROTOCOL=tcps)(HOST=sales-svr)(PORT=1234))
           (SECURITY=(WALLET_LOCATION=SYSTEM))
           (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
         )
  • データベース・クライアントがクライアントのウォレットを検索する順序:
    1. データベース・クライアントは、最初に、接続文字列で指定されたWALLET_LOCATIONディレクトリからウォレットを使用しようとします。

    2. ウォレットが存在しない場合、次に、クライアントはsqlnet.oraファイルでWALLET_LOCATIONパラメータ値を検索します。

    3. ウォレットが存在しない場合、次に、クライアントは$TNS_ADMIN環境変数ディレクトリでウォレットを検索します。

    4. ウォレットが存在しない場合、次に、クライアントはデフォルトのウォレットの場所(Linuxの場合は/etc/ORACLE/WALLETS/username、Windowsの場合はC:\Users\username\\ORACLE\WALLETS)を検索します。

    5. ウォレットが存在しない場合、次に、クライアントはシステムのデフォルトの証明書ストアからウォレットを使用します。

    接続文字列でWALLET_LOCATIONSYSTEMとして指定すると、すべてのウォレット構成を無視し、かわりにシステムのデフォルトの証明書ストアを使用できます。

  • ウォレットレスTLS接続の設定:

    WALLET_LOCATIONパラメータは、クライアント・ウォレットを使用しないTLS接続ではオプションです。WALLET_LOCATIONを接続文字列、tnsnames.oraまたはsqlnet.oraに含めない場合、ドライバは、システムのデフォルトの証明書ストア(システムがWindowsまたはLinuxの場合)から共通ルート証明書を自動的に選択します。

    ただし、次の場合は追加ステップの実行が必要になる場合があります。

    • すべての接続に対してWALLET_LOCATIONsqlnet.oraに設定されている場合、(接続文字列でWALLET_LOCATION=SYSTEMを使用して)クライアント・ウォレットを必要としない特定の接続に対してこの設定をオーバーライドできます。

    • ウォレットが$TNS_ADMIN環境変数ディレクトリに存在する場合、データベース・クライアントは$TNS_ADMINパスをデフォルトのウォレットの場所として使用します。この場合、WALLET_LOCATION設定をオーバーライドするか(接続文字列でWALLET_LOCATION=SYSTEMを使用)、そのウォレットを削除できます。

  • ウォレット・ファイルの格納:

    パスワードで保護されたウォレットは、ewallet.p12ファイルに格納されます。自動ログイン・ウォレットとローカルの自動ログイン・ウォレットは、cwallet.ssoファイルに格納されます。

    たとえば、OracleウォレットがMicrosoft Windowsレジストリに格納されており、そのウォレットのキー(KEY)SALESAPPの場合、パスワードで保護されたウォレットの格納場所は、HKEY_CURRENT_USER\SOFTWARE\ORACLE\WALLETS\SALESAPP\EWALLET.P12です。自動ログイン・ウォレットおよびローカルの自動ログイン・ウォレットの格納場所は、HKEY_CURRENT_USER\SOFTWARE\ORACLE\WALLETS\SALESAPP\CWALLET.SSOです。

追加のパラメータ

SOURCEを使用して、ウォレットの格納タイプおよび格納場所を次のように指定します。
  • METHOD: 格納タイプ

  • METHOD_DATA: 格納場所:
    • DIRECTORY: ファイル・システムでのウォレットの場所

    • KEY: ウォレット・タイプとMicrosoft Windowsレジストリ内の位置

構文と例

構文は、次のとおり、ウォレットによって異なります。

  • ファイル・システム上のウォレット:
    WALLET_LOCATION=
      (SOURCE=
        (METHOD=file)
        (METHOD_DATA=
           (DIRECTORY=directory)))
    たとえば:
    WALLET_LOCATION=  
      (SOURCE=
          (METHOD=file)
          (METHOD_DATA=  
             (DIRECTORY=/etc/oracle/wallets/databases)))
  • Microsoft証明ストア
    WALLET_LOCATION=
      (SOURCE=
         (METHOD=mcs))

    MCSはウォレットを使用しないため、MCSのキーと値のペアにはMETHOD_DATAパラメータがありません。かわりに、Oracle PKI (公開キー・インフラストラクチャ)アプリケーションは、証明書、トラスト・ポイントおよび秘密キーをユーザーのプロファイルから直接取得します。

  • Microsoft Windowsレジストリ内のウォレット:
    WALLET_LOCATION=
       (SOURCE=
          (METHOD=reg)
          (METHOD_DATA=
             (KEY=registry_key)))
    たとえば:
    WALLET_LOCATION=
       (SOURCE=
         (METHOD=reg)
         (METHOD_DATA=
            (KEY=SALESAPP)))

デフォルト

なし

5.3 sqlnet.oraファイルのADR診断パラメータ

クリティカル・エラーの診断データは、sqlnet.oraの自動診断リポジトリ(ADR)に保存されます。

5.3.1 ADR診断パラメータについて

ADRが有効な場合(デフォルト)は、自動診断リポジトリ(ADR)診断パラメータを使用できます。ADRを有効にすると、sqlnet.oraファイル内のADR以外のパラメータが無視されます。

Oracle Database 11g以降、Oracle Databaseには、問題の回避、検出、診断および解決のため高度な障害診断可能インフラストラクチャが組み込まれています。その対象の問題は、データベース・コードの不具合、メタデータの破損またはカスタマ・データの破損が原因で発生したエラーなどのクリティカル・エラーなどです。

クリティカル・エラーが発生すると、そのエラーにインシデント番号が割り当てられます。エラーの診断データ(トレースやダンプなど)が取得され、このインシデント番号でタグ付けされます。その後、データは自動診断リポジトリ(ADR)に格納されます(ADRはデータベースの外部にあるファイルベースのリポジトリです)。

ADRが有効な場合(DIAG_ADR_ENABLEDonに設定した場合)、次のsqlnet.oraのパラメータが使用されます。

5.3.2 ADR_BASE

sqlnet.oraのパラメータADR_BASEは、ADRファイルのベースの場所を指定するために使用します。

用途

ADRが有効の場合に、インシデントのトレースおよびログが格納される基本ディレクトリを指定します。

使用上のノート

このパラメータは、クライアントにのみ適用されます。サーバー側では、ADRベースの場所は、init.oraファイルのDIAGNOSTIC_DEST初期化パラメータによって定義されます。Oracle DatabaseリファレンスDIAGNOSTIC_DESTを参照してください。

デフォルト

ORACLE_BASEまたはORACLE_HOME/log (ORACLE_BASEが定義されていない場合)

書込み権限を持つディレクトリへの任意の有効なディレクトリ・パス

ADR_BASE=/oracle/network/trace

5.3.3 DIAG_ADR_ENABLED

sqlnet.oraのパラメータDIAG_ADR_ENABLEDは、ADRトレースを有効化または無効化するために使用します。

用途

ADRトレースが有効かどうかを指定します。

使用上のノート

DIAG_ADR_ENABLEDパラメータをOFFに設定すると、ADR以外のファイル・トレースが使用されます。

デフォルト

on

on | off

例5-7 例

DIAG_ADR_ENABLED=on

5.3.4 ENABLE_CONCISE_LOGS

sqlnet.oraのパラメータENABLE_CONCISE_LOGSは、簡潔な形式でのロギングを有効または無効にするために使用します。

用途

Oracle Networkログ(sqlnet.logファイル)でのエラー・スタック・メッセージの表示方法(簡潔な形式または長い形式)を制御します。

使用上のノート

TRUEに設定すると、ログは簡潔な形式で出力されます。簡潔な形式では、1つの障害の関連情報すべてが1行で表示されます。この設定では、ログ・ファイルのサイズが小さくなり、読みやすくなります。

FALSEに設定すると、ログが、より長く詳細な形式で出力されます。長い形式では、メッセージが複数行で表示され、バージョン情報などのその他の詳細が含まれます。

TRUE | FALSE

デフォルト

TRUE

ENABLE_CONCISE_LOGS=TRUE

5.3.5 LOG_SUPPRESSED_COUNT

sqlnet.oraのパラメータLOG_SUPPRESSED_COUNTは、出現回数に基づいてログ・メッセージの抑制を制御するために使用します。

用途

データベース・サーバー上で指定されている回数に基づいてOracle Networkログ・メッセージを抑制します。

繰り返されているレコードや重複しているレコードを抑制して、どのログでも表示されないようにすることができます。これにより、一部のディスク領域を節約でき、大量のデータを簡単に閲覧できるようになります。

ノート:

このパラメータは、データベース・サーバー側でのみ設定できます。

使用上のノート

  • sqlnet.oraのパラメータLOG_SUPPRESSED_COUNTおよびLOG_SUPPRESSED_TIMEの両方により、ログの抑制を指定します。これらのパラメータはデフォルトで有効になっていますが、そのデフォルト値をオーバーライドできます。

    • LOG_SUPPRESSED_COUNTにより、出現回数に基づいて、重複しているメッセージを抑制します。デフォルトの出現回数は50に設定されています。

    • LOG_SUPPRESSED_TIMEにより、時間間隔に基づいて、重複しているメッセージを抑制します。デフォルトの時間間隔は10秒に設定されています。

    条件のどちらか(出現回数か時間間隔)が満たされると、ロギングが抑制されます。

  • 重複しているメッセージは、最初は、出現回数が繰返しの内部デフォルトしきい値を超えるまで出力されます。つまり、ログの抑制が開始されるのは、このしきい値に達した後のみであり、LOG_SUPPRESSED_COUNTの回数かLOG_SUPPRESSED_TIMEの秒数をすぎるときです。

    たとえば、LOG_SUPPRESSED_COUNT20に設定されており、LOG_SUPPRESSED_TIME4秒に設定されているとします。メッセージが3秒で21回繰り返されている場合は、指定した出現回数である20回に基づいて、そのメッセージのロギングが抑制されます。

    しきい値になるたびに(たとえば、5回繰り返されるたび)、ステータス・メッセージがログに記録されて、ロギングが抑止されるまでの出現回数と時間が示されます。

    PID: numberのネットワーク・エラーのロギングは、ログがLOG_SUPPRESSED_COUNTの回数繰り返されるかLOG_SUPPRESSED_TIMEの秒数をすぎるとオフになります。

ロギングを抑制するまでの回数(最初の出現から開始)

許容範囲

最小値1から4294967295までの任意の数値

デフォルト

50

LOG_SUPPRESSED_COUNT=100

5.3.6 LOG_SUPPRESSED_TIME

sqlnet.oraのパラメータLOG_SUPPRESSED_TIMEは、時間間隔に基づいてログ・メッセージの抑制を制御するために使用します。

用途

指定されている時間間隔に基づいてOracle Networkログ・メッセージを抑制します。

繰り返されているレコードや重複しているレコードを抑制して、どのログでも表示されないようにすることができます。これにより、一部のディスク領域を節約でき、大量のデータを簡単に閲覧できるようになります。

ノート:

このパラメータは、データベース・サーバー側でのみ設定できます。

使用上のノート

  • sqlnet.oraのパラメータLOG_SUPPRESSED_COUNTおよびLOG_SUPPRESSED_TIMEの両方により、ログの抑制を指定します。これらのパラメータはデフォルトで有効になっていますが、そのデフォルト値をオーバーライドできます。

    • LOG_SUPPRESSED_COUNTにより、出現回数に基づいて、重複しているメッセージを抑制します。デフォルトの出現回数は50に設定されています。

    • LOG_SUPPRESSED_TIMEにより、時間間隔に基づいて、重複しているメッセージを抑制します。デフォルトの時間間隔は10秒に設定されています。

    条件のどちらか(出現回数か時間間隔)が満たされると、ロギングが抑制されます。

  • 重複しているメッセージは、最初は、出現回数が繰返しの内部デフォルトしきい値を超えるまで出力されます。つまり、ログの抑制が開始されるのは、このしきい値に達した後のみであり、LOG_SUPPRESSED_COUNTの回数かLOG_SUPPRESSED_TIMEの秒数をすぎるときです。

    たとえば、LOG_SUPPRESSED_COUNT20に設定されており、LOG_SUPPRESSED_TIME4秒に設定されているとします。メッセージが5秒で15回繰り返されている場合は、指定した時間間隔である4秒に基づいて、そのメッセージのロギングが抑制されます。

    しきい値になるたびに(たとえば、5回繰り返されるたび)、ステータス・メッセージがログに記録されて、ロギングが抑止されるまでの出現回数と時間が示されます。

    PID: numberのネットワーク・エラーのロギングは、ログがLOG_SUPPRESSED_COUNTの回数繰り返されるかLOG_SUPPRESSED_TIMEの秒数をすぎるとオフになります。

ロギングを抑制するまでの時間間隔の秒数(最初の出現から開始)

許容範囲

最小値1から4294967295までの任意の数値

デフォルト

10

LOG_SUPPRESSED_TIME=20

5.3.7 TRACE_LEVEL_CLIENT

sqlnet.oraのパラメータTRACE_LEVEL_CLIENTは、特定のレベルでクライアント・トレースを有効化または無効化するために使用します。

用途

クライアント・トレースを特定のレベルで有効化または無効化します。

使用上のノート

このパラメータは、ADR以外のトレースを使用している場合にも適用できます。

デフォルト

offまたは0

  • offまたは0: トレースを出力しません。

  • userまたは4: ユーザー用のトレース情報を出力します。

  • adminまたは10: 管理用のトレース情報を出力します。

  • supportまたは16: Oracleサポート・サービス用のトレース情報を出力します。

TRACE_LEVEL_CLIENT=user

5.3.8 TRACE_LEVEL_SERVER

sqlnet.oraのパラメータTRACE_LEVEL_SERVERは、特定のレベルでサーバー・トレースを有効化または無効化するために使用します。

用途

サーバーのトレースをオン(指定されたレベルで)またはオフに切り替えます。

使用上のノート

このパラメータは、ADR以外のトレースを使用している場合にも適用できます。

デフォルト

offまたは0

  • offまたは0: トレースを出力しません。

  • userまたは4: ユーザー用のトレース情報を出力します。

  • adminまたは10: 管理用のトレース情報を出力します。

  • supportまたは16: Oracleサポート・サービス用のトレース情報を出力します。

TRACE_LEVEL_SERVER=admin

5.3.9 TRACE_TIMESTAMP_CLIENT

sqlnet.oraのパラメータTRACE_TIMESTAMP_CLIENTは、クライアント・トレース・ファイル内のトレース・イベントにタイムスタンプを追加するために使用します。

用途

dd-mmm-yyyy hh:mm:ss:mil形式のタイムスタンプをクライアント・トレース・ファイル内の各トレース・イベントに追加します。このトレース・ファイルのデフォルトの名前はsqlnet.trcです。

使用上のノート

このパラメータは、ADR以外のトレースを使用している場合にも適用できます。

デフォルト

on

onまたはtrue | offまたはfalse

TRACE_TIMESTAMP_CLIENT=true

5.3.10 TRACE_TIMESTAMP_SERVER

sqlnet.oraのパラメータTRACE_TIMESTAMP_CLIENTは、データベース・トレース・ファイル内のトレース・イベントにタイムスタンプを追加するために使用します。

用途

dd-mmm-yyyy hh:mm:ss:mil形式のタイムスタンプをデータベース・サーバー・トレース・ファイル内の各トレース・イベントに追加します。このトレース・ファイルのデフォルトの名前はsvr_pid.trcです。

使用上のノート

このパラメータは、ADR以外のトレースを使用している場合にも適用できます。

デフォルト

on

onまたはtrue | offまたはfalse

TRACE_TIMESTAMP_SERVER=true

5.4 sqlnet.oraファイルのADR以外の診断パラメータ

ADRが無効なときに使用するsqlnet.oraのパラメータについて学習します。

この項では、ADRを無効にした場合に使用されるsqlnet.oraのパラメータについて説明します。

ノート:

DIAG_ADR_ENABLEDのデフォルト値はonです。そのため、ADR以外のトレースを使用する場合は、DIAG_ADR_ENABLEDパラメータを明示的にoffに設定する必要があります。

5.4.1 LOG_DIRECTORY_CLIENT

sqlnet.oraのADR以外の診断パラメータLOG_DIRECTORY_CLIENTは、クライアント・ログ・ファイルの宛先ディレクトリを指定するために使用します。

用途

クライアントのログ・ファイルの宛先ディレクトリを指定します。

使用上のノート

このパラメータは、ADRが有効でない場合に使用します。

デフォルト

ORACLE_HOME/network/log

任意の有効ディレクトリ・パス

LOG_DIRECTORY_CLIENT=/oracle/network/log

5.4.2 LOG_DIRECTORY_SERVER

sqlnet.oraのADR以外の診断パラメータLOG_DIRECTORY_SERVERは、データベース・ログ・ファイルの宛先ディレクトリを指定するために使用します。

用途

データベース・ログ・ファイルの宛先ディレクトリを指定します。

使用上のノート

このパラメータは、ADRが有効でない場合に使用します。

デフォルト

ORACLE_HOME/network/trace

書込み権限を持つディレクトリへの任意の有効なディレクトリ・パス

LOG_DIRECTORY_SERVER=/oracle/network/trace

5.4.3 LOG_FILE_CLIENT

sqlnet.oraのADR以外の診断パラメータLOG_FILE_CLIENTは、クライアント用のログ・ファイル名を指定するために使用します。

用途

クライアントのログ・ファイル名を指定します。

使用上のノート

このパラメータは、ADRが有効でない場合に使用します。

デフォルト

ORACLE_HOME/network/log/sqlnet.log

デフォルト値は変更できません。

5.4.4 LOG_FILE_SERVER

sqlnet.oraのADR以外の診断パラメータLOG_FILE_SERVERは、データベース用のログ・ファイル名を指定するために使用します。

用途

データベース用のログ・ファイル名を指定します。

使用上のノート

このパラメータは、ADRが有効でない場合に使用します。

デフォルト

sqlnet.log

LOG_FILE_SERVER=svr.log

5.4.5 TRACE_DIRECTORY_CLIENT

sqlnet.oraのADR以外の診断パラメータTRACE_DIRECTORY_CLIENTは、クライアント・トレース・ファイルの宛先ディレクトリを指定するために使用します。

用途

クライアントのトレース・ファイルの宛先ディレクトリを指定します。

使用上のノート

このパラメータは、ADRが有効でない場合に使用します。

デフォルト

ORACLE_HOME/network/trace

書込み権限を持つディレクトリへの任意の有効なディレクトリ・パス

TRACE_DIRECTORY_CLIENT=/oracle/traces

5.4.6 TRACE_DIRECTORY_SERVER

sqlnet.oraのADR以外の診断パラメータTRACE_DIRECTORY_SERVERは、データベース・トレース・ファイルの宛先ディレクトリを指定するために使用します。

用途

データベース・サーバーのトレース・ファイルの宛先ディレクトリを指定します。このパラメータは、ADRが有効でない場合に使用します。

デフォルト

 ORACLE_HOME/network/trace

書込み権限を持つディレクトリへの任意の有効なディレクトリ・パス

TRACE_DIRECTORY_SERVER=/oracle/traces

5.4.7 TRACE_FILE_CLIENT

sqlnet.oraのADR以外の診断パラメータTRACE_FILE_CLIENTは、クライアント・トレース・ファイルの名前を指定するために使用します。

用途

クライアント・トレース・ファイルの名前を指定します。

使用上のノート

このパラメータは、ADRが有効でない場合に使用します。

デフォルト

ORACLE_HOME/network/trace/cli.trc

任意の有効ファイル名

TRACE_FILE_CLIENT=clientsqlnet.trc

5.4.8 TRACE_FILE_SERVER

sqlnet.oraのADR以外の診断パラメータTRACE_FILE_SERVERは、データベース・トレース・ファイルの宛先ディレクトリを指定するために使用します。

用途

データベース・サーバー・トレース出力の出力先ディレクトリを指定します。

使用上のノート

このパラメータは、ADRが有効でない場合に使用します。

デフォルト

ORACLE_HOME/network/trace/svr_pid.trc

任意の有効ファイル名プロセス識別子(pid)が名前に自動的に付加されます。

TRACE_FILE_SERVER=svrsqlnet.trc

5.4.9 TRACE_FILEAGE_CLIENT

sqlnet.oraのADR以外の診断パラメータTRACE_FILEAGE_CLIENTは、クライアント・トレース・ファイルの最大経過期間を分単位で指定するために使用します。

用途

クライアント・トレース・ファイルの最大経過期間を分数で指定します。

使用上のノート

保持期間制限に達すると、トレース情報は次のファイルに書き込まれます。ファイルの数は、TRACE_FILENO_CLIENTパラメータで指定します。このパラメータは、ADRが有効でない場合に使用します。

デフォルト

無制限

これはパラメータを0に設定するのと同じです。

例5-8 例

TRACE_FILEAGE_CLIENT=60

5.4.10 TRACE_FILEAGE_SERVER

sqlnet.oraのADR以外の診断パラメータTRACE_FILEAGE_SERVERは、データベース・トレース・ファイルの最大経過期間を分単位で指定するために使用します。

用途

データベース・サーバー・トレース・ファイルの最大経過期間を分数で指定します。

使用上のノート

保持期間制限に達すると、トレース情報は次のファイルに書き込まれます。ファイルの数は、TRACE_FILENO_SERVERパラメータで指定します。このパラメータは、ADRが有効でない場合に使用します。

デフォルト

無制限

これはパラメータを0に設定するのと同じです。

例5-9 例

TRACE_FILEAGE_SERVER=60

5.4.11 TRACE_FILELEN_CLIENT

sqlnet.oraのADR以外の診断パラメータTRACE_FILELEN_CLIENTは、クライアント・トレース・ファイルのサイズをKB単位で指定するために使用します。

用途

ファイルが指定のサイズにまで増大すると、その次のファイルにトレース情報が書き込まれます。ファイルの数は、TRACE_FILENO_CLIENTパラメータで指定します。このパラメータは、ADRが有効でない場合に使用します。

クライアントのトレース・ファイルのサイズをキロバイト(KB)で指定します。

使用上のノート

TRACE_FILELEN_CLIENT=100

5.4.12 TRACE_FILELEN_SERVER

sqlnet.oraのADR以外の診断パラメータ TRACE_FILELEN_SERVERは、データベース・トレース・ファイルのサイズをKB単位で指定するために使用します。

用途

データベース・サーバーのトレース・ファイルのサイズをキロバイト(KB)で指定します。

使用上のノート

ファイルが指定のサイズにまで増大すると、その次のファイルにトレース情報が書き込まれます。ファイルの数は、TRACE_FILENO_SERVERパラメータで指定します。このパラメータは、ADRが有効でない場合に使用します。

TRACE_FILELEN_SERVER=100

5.4.13 TRACE_FILENO_CLIENT

sqlnet.oraのADR以外の診断パラメータTRACE_FILENO_CLIENTは、クライアント・トレースのトレース・ファイルの数を指定するために使用します。

用途

クライアント・トレースのためのトレース・ファイルの数を指定します。

使用上のノート

このパラメータがTRACE_FILELEN_CLIENTパラメータとともに設定されている場合、トレース・ファイルは循環方式で使用されます。最初のファイルが満杯になると、2番目のファイルを使用します(その後、同様に続きます)。最後のファイルが満杯になると、最初のファイルが再利用されます(その後、同様に続きます)。

このパラメータがTRACE_FILEAGE_CLIENTパラメータとともに設定されている場合、トレース・ファイルは経過期間に基づいて循環使用されます。最初のファイルが経過期間制限に達するまで使用されてから、2番目のファイルが使用され、その後、同様に続きます。最後のファイルの経過期間期限に達すると、最初のファイルが再利用されます。

このパラメータをTRACE_FILELEN_CLIENTおよびTRACE_FILEAGE_CLIENTの両方のパラメータとともに設定すると、サイズ制限または経過期間制限のいずれかに達したときにトレース・ファイルが置き換えられます。

トレース・ファイル名は、順序番号によって識別されます。たとえば、デフォルトのトレース・ファイルsqlnet.trcが使用されている場合に、このパラメータを3に設定すると、トレース・ファイル名はsqlnet1.trcsqlnet2.trcおよびsqlnet3.trcとなります。

また、トレース・ファイル内のトレース・イベントの前には、そのファイルの順序番号が付きます。このパラメータは、ADRが有効でない場合に使用します。

デフォルト

なし

TRACE_FILENO_CLIENT=3

5.4.14 TRACE_FILENO_SERVER

sqlnet.oraのADR以外の診断パラメータTRACE_FILENO_SERVERは、データベース・トレースのトレース・ファイルの数を指定するために使用します。

用途

データベース・サーバー・トレースのためのトレース・ファイルの数を指定します。

使用上のノート

このパラメータをTRACE_FILELEN_SERVERパラメータとともに設定すると、トレース・ファイルは循環方式で使用されるようになります。最初のファイルが満杯になると、2番目のファイルを使用します(その後、同様に続きます)。最後のファイルが満杯になると、最初のファイルが再利用されます。

このパラメータをTRACE_FILEAGE_SERVERパラメータとともに設定すると、トレース・ファイルの経過期間に基づいてトレース・ファイルが循環使用されます。最初のファイルが経過期間制限に達するまで使用されてから、2番目のファイルが使用され、その後、同様に続きます。最後のファイルの経過期間期限に達すると、最初のファイルが再利用されます。

このパラメータがTRACE_FILELEN_SERVERおよびTRACE_FILEAGE_SERVERの両方のパラメータとともに設定されている場合、トレース・ファイルはサイズ制限または経過期間制限に達したときに循環されます。

トレース・ファイル名は、順序番号によって識別されます。たとえば、デフォルトのトレース・ファイルsvr_pid.trcを使用し、このパラメータを3に設定すると、トレース・ファイル名はsvr1_pid.trcsvr2_pid.trcおよびsvr3_pid.trcになります。

また、トレース・ファイル内のトレース・イベントの前には、そのファイルの順序番号が付きます。このパラメータは、ADRが有効でない場合に使用します。

デフォルト

なし

TRACE_FILENO_SERVER=3

5.4.15 TRACE_UNIQUE_CLIENT

sqlnet.oraのADR以外の診断パラメータTRACE_UNIQUE_CLIENTは、Oracleでクライアント・トレース・セッションごとに固有のトレース・ファイルを作成するかどうかを指定する場合に使用します。

用途

各クライアント・トレース・セッションに対して一意のトレース・ファイルを作成するかどうかを指定します。

使用上のノート

この値をonに設定すると、各トレース・ファイルにプロセス識別子が付加されるため、複数のファイルの共存が可能になります。たとえば、デフォルトのトレース・ファイル名sqlnet.trcを使用すると、トレース・ファイルsqlnetpid.trcが作成されます。この値をoffに設定すると、既存のファイルは新しいクライアント・トレース・セッションのデータによって上書きされます。このパラメータは、ADRが有効でない場合に使用します。

デフォルト

on

onまたはoff

TRACE_UNIQUE_CLIENT=on