日本語PDF

6 Oracle Net Services接続のクイック・スタート

クライアント・アプリケーションとデータベースのTCP/IPネットワークによる接続のように、単純でありながら一般的なネットワーク構成について、初心者でも設定とテストができるように説明します。

6.1 接続確立の前提条件

この章のタスクでは、データベース・サーバーとクライアント・コンピュータとのTCP/IP接続について示します。データベース・サーバーとクライアント・コンピュータは次の条件を満たす必要があります。

  • データベース・サーバー

    • クライアントにアクセスできるネットワークでサーバーが実行中であること

    • Oracleデータベースがインストールされていること

    • リスナーが構成されていること

    • TCP/IPプロトコル・サポートがインストールされていること

  • クライアント・コンピュータ

    • データベース・サーバーにアクセスできるネットワークでクライアント・コンピュータが実行中であること

    • Oracleクライアントがインストールされていること

    • TCP/IPプロトコル・サポートがインストールされていること

TCP/IPネットワークでは、各コンピュータは一意のIPアドレスを持ちます。ドメイン・ネーム・システム(DNS)などの名前解決サービスは、そのホスト名を持つコンピュータのIPアドレスをマップするために使用します。名前解決サービスを使用しない場合、マッピングは通常hostsと呼ばれるファイルに格納されるため、集約化して保守されます。このファイルは、Linuxでは/etcディレクトリに、Microsoft Windowsでは\windows\system32\drivers\etcディレクトリにあります。たとえば、sales-serverという名前のデータベース・サーバーのコンピュータのエントリは、次のようになります。

#IP address of server     host name       alias
192.0.2.203             sales-server    sales.us.example.com

6.2 ネットワークの可用性の確認

Oracle Netをクライアント・コンピュータとデータベース・サーバーとの接続に使用する前に、クライアント・コンピュータがデータベース・サーバーのコンピュータと正常に通信できるかどうかを確認します。ネットワークの接続性を評価しておくと、ネットワークに起因するエラーを排除できます。

次の手順では、ネットワーク接続の確認方法について説明します。

  1. 次のように、データベース・サーバーのコンピュータが、ループバック・テストによって自分自身と通信できることを確認します。

    1. ハードウェア接続を確認するには、コマンドラインで次のコマンドを入力します。

      ping ip_address
      

      前述のコマンドで、ip_addressはデータベース・サーバー・コンピュータのIPアドレスです。たとえば、次のように入力します。

      ping 192.0.2.203
      
    2. DNSまたはホスト名が正しく構成されていることを確認するには、コマンドラインで次のコマンドを入力します。

      ping host_name
      

      前述のコマンドで、host_nameはサーバーのホスト名です。

    3. サーバーのTCP/IP設定をテストするには、次のコマンドを入力します。

      ping 127.0.0.1
      
      ping6 ::1
      

      IPアドレス127.0.0.1は、ループバック・テスト用の標準のIPv4アドレスです。IPアドレス::1 (0: 0: 0: 0: 0: 0: 0: 1)は、ループバック・テスト用の標準のIPv6アドレスです。

  2. クライアント・コンピュータがデータベース・サーバーのコンピュータと正常に通信できることを確認します。

    検証方法は、ネットワーク・プロトコルによって様々です。TCP/IPでは、PING、FTP、TELNETユーティリティを使用できます。

    クライアント・コンピュータがサーバーに接続できない場合、ネットワークのケーブル接続やネットワーク・インタフェース・カードが正しく接続されているかを確認します。これらの問題を解消するには、ネットワーク管理者に連絡してください。

6.3 Oracle Net ListenerとOracle Databaseサーバーの起動

Oracle Net ListenerとOracle Databaseサーバーは、データベース・サーバーが接続を受け取る順番で実行している必要があります。次の手順では、Oracle Netリスナーを起動する方法について説明します。

  1. リスナー制御ユーティリティを使用してリスナーを起動します。コマンド行から、次のように入力します。

    lsnrctl
    LSNRCTL> START [listener_name]
    

    前述のコマンドで、listener_nameは、listener.oraファイルに定義されているリスナーの名前です。デフォルトの名前LISTENERを使用している場合、リスナーを指定する必要はありません。

    リスナーが正常に起動したことを示すステータス・メッセージが表示されます。

  2. 次のようにデータベースを起動します。

    1. 次のコマンドを使用して、データベースに接続せずにSQL*Plusを起動します。

      SQLPLUS /nolog
      
    2. 次のコマンドを使用して、SYSDBAとしてデータベースに接続します。

      SQL> CONNECT username as sysdba
      

      パスワードの入力を求めるメッセージが表示されます。

      ノート:

      単純化するため、この例では、デプロイされたシステムで通常使用されるパスワード管理技術を実行していません。本番環境では、Oracle Databaseのパスワード管理ガイドラインに従い、サンプル・アカウントを無効にしてください。パスワード管理ガイドラインおよびその他のセキュリティ上の推奨事項については、『Oracle Databaseセキュリティ・ガイド』を参照してください。

    3. 次のコマンドを使用して、データベースを起動します。

      SQL> STARTUP database_name
      

      前述のコマンドで、database_nameはデータベースの名前です。

      関連項目:

      データベースの起動の詳細は、『Oracle Database管理者ガイド』を参照してください。

  3. リスナー制御ユーティリティと次のコマンドを使用して、リスナーへのデータベース・サービス登録が完了していることを確認します。

    LSNRCTL> SERVICES [listener_name]
    

    SERVICESコマンドは、データベースがサポートするサービスと、1つ以上の使用可能なサービス・ハンドラの一覧を示します。データベース・サービス登録が示されていない場合は、次のSQLコマンドを入力します。

    SQL> ALTER SYSTEM REGISTER;

    関連項目:

    SERVICESコマンドの詳細は、「リスナーのサービスの監視」を参照してください

6.4 Oracle Connection Managerの起動

Oracle Connection Managerがインストールされている場合は、次の手順に従ってOracle Connection Managerを起動します。

  1. 次のコマンドを使用して、Oracle Connection Manager Controlユーティリティ(CMCTL)を起動します。

    cmctl
    CMCTL> ADMINISTER [instance_name]
    

    前述のコマンドで、instance_nameは管理対象のOracle Connection Managerの名前です。cman.oraファイルを表示して、その名前を確認できます。ファイルは、ORACLE_HOME/network/adminディレクトリ内のOracle Connection Managerコンピュータ上にあります。

    Oracle Connection Managerは、インスタンス名を示すステータス・メッセージを表示し、まだインスタンスが起動していないことを知らせます。

    ノート:

    引数にインスタンス名を設定しない場合は、Oracle Connection Managerに完全修飾ホスト名を設定します。これはデフォルトです。ADMINISTERコマンドを発行すると、CMCTLにより次のようにインスタンス名が表示されます。

    CMAN_fully_qualified_host_name
  2. 次のコマンドを使用して、管理対象として選択したOracle Connection Managerを起動します。

    cmctl> STARTUP
    

    インスタンスが起動したことがOracle Connection Managerで確認され、インスタンスのステータスが表示されます。

  3. 次のコマンドを使用して、Oracle Connection Manager Controlユーティリティを終了します。

    cmctl> EXIT

ノート:

Microsoft Windowsの場合、Oracle Connection Managerは「コントロールパネル」からも起動できます。

  1. 「コントロールパネル」の「サービス」を選択します。

  2. OracleHOME_NAMECMan」サービスを選択し、「Start」をクリックします。

  3. 「サービス」ウィンドウの「閉じる」をクリックします。

6.5 データベースへの接続

Oracleデータベースに接続するには、いくつかの方法があります。

表6-1 データベース接続方法と構文

接続のタイプ 接続構文 説明

コマンドラインから

コマンドラインからアプリケーションをデータベース・サーバーに接続させるための一般的な書式を次に示します。

tool username@connect_identifier

暗号化されたパスワードの入力を求めるメッセージが表示されます。

たとえば:

SQLPLUS system@sales
Enter password: password

ほとんどのOracleのツール製品は、オペレーティング・システムのコマンドラインを使用して接続できますが、他の方法でも接続できます。

ログイン画面から

username@connect_identifier

一部のツールには、ログインの代替形式としてログイン画面が用意されています。ユーザーがデータベース・サーバーにログインするには、ツールのログイン画面のユーザー名フィールドにユーザー名と接続識別子の両方を指定し、パスワード・フィールドにパスワードを入力します。

3GLアプリケーションから

exec sql connect :username identified by :password 

前述の接続要求で、:usernameおよび:passwordは3GLの変数です。これらの変数は、静的にまたはユーザーからの入力によってプログラム内で設定できます。データベース・サーバーに接続する場合、:username変数の値の書式は次のとおりです。

username@net_service_name 

:password変数には、接続先データベース・アカウントのパスワードが入ります。

OCIやプリコンパイラなど、3GLで作成されたアプリケーションは、クライアントからの直接データベース・アクセス用に中間層およびデータベース・アプリケーション開発者によって使用されます。

SQL*Plus内から

SQLPLUS /nolog
SQL> CONNECT username@net_service_name

たとえば:

SQLPLUS /nolog
SQL> CONNECT scott@serverx
Enter password: password

前述のコマンドで、usernamepasswordは、データベース・ユーザーとパスワードで、net_service_nameはネットワーク・サービス名です。

一部のOracleツールには、ツールを終了せずに、異なるユーザー名を指定してデータベースに接続できるコマンドがあります。

他のOracleのツール製品では、この説明とは異なる独自の機能やインタフェースに固有の方法が使用されます。たとえば、Oracle CDE Toolsでは、ログイン・ボタンと、ユーザー名、パスワードおよびリモート・データベースIDのフィールドが使用されます。

次を使用:

KERBEROS5_CC_NAMEパラメータ

(DESCRIPTION=
      (ADDRESS=(PROTOCOL=tcp)(HOST=sales-svr)(PORT=1521))
      (CONNECT_DATA=(SERVICE_NAME=sales.example.com)) 
      (SECURITY=(SQLNET.KERBEROS5_CC_NAME=/usr/tmp/krbcache))
)

このパラメータは、複数のKerberosプリンシパルがデータベース・クライアントを介してログインする必要がある場合に、Kerberosプリンシパル(user)のKerberos資格証明キャッシュ・ファイルへの完全パスを指定するために使用します。

Kerberos認証を使用してデータベースに接続する場合は、KERBEROS5_CC_NAMEパラメータを使用して資格証明キャッシュへの完全パスを指定する必要があります。単一のKerberosプリンシパルの場合は、SQLNET.KERBEROS5_CC_NAMEパラメータを使用してsqlnet.oraファイルに資格証明キャッシュ・パスを指定できます。クライアントが複数のデータベース接続を行うために複数のKerberosプリンシパルを使用する必要がある場合は、個々の接続のCONNECT文字列またはtnsnames.oraファイルでKERBEROS5_CC_NAMEパラメータを指定します。

Oracle Databaseセキュリティ・ガイドを参照してください。

次を使用:

KERBEROS5_PRINCIPALパラメータ

(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))
)

このパラメータは、データベース・クライアントのKerberosプリンシパルを指定するために使用されます。

これはオプションのパラメータです。ただし、このパラメータを使用する場合は、KERBEROS5_PRINCIPALが、KERBEROS5_CC_NAMEパラメータで指定されているKerberos資格証明キャッシュから取得されたプリンシパルと一致することを確認してください。プリンシパル名が一致しない場合、認証は失敗します。

IAMデータベース・パスワード検証認証の使用

SQLPLUS /nolog
SQL> CONNECT username@net_service_name
Enter password: password

この接続リクエストでは、usernameはIAMユーザー名、net_service_nameはネットワーク・サービス名、passwordはIAMデータベース・パスワードです。

IAMユーザーは、パスワードベースのプロキシ認証を使用して、データベース・プロキシ・ユーザー・アカウントを介して接続できます。

SQLPLUS [user1]/password123\!@cdb1_pdb2
SQL> SHOW USER;
select sys_context('USERENV','AUTHENTICATION_METHOD') from dual;
select sys_context('USERENV','PROXY_USER') from dual;
select sys_context('USERENV','CURRENT_USER') from dual;

ユーザー認証および認可用にOracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)を構成した場合、IAMユーザーがIAMユーザー名およびIAMデータベース・パスワードを使用してOCI Database as a Service (DBaaS)に接続できます。この接続方法では、IAMデータベース・パスワード検証(パスワードの暗号化されたハッシュ)がユーザーを認証するためにIAMから取得されます。

このIAMデータベース・パスワードは、OCIコンソール・パスワードとは異なります。IAMユーザーが、OCIコンソールからこのパスワードを設定できます(OCI IAMパスワードの作成を参照)。

必要な認可が付与された後、SQL*Plusなどのオンプレミス・クライアント・アプリケーションを使用して、サポートされている任意のデータベース・クライアントからログインできます。

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

プロキシ認証を使用するようにクライアント接続(通常は中間層環境)を構成できます。この場合、パスワードベースのプロキシ認証を使用することで、プロキシ・データベースのユーザー・アカウントを介して接続するために必要な権限を持つ既存のIAMユーザーを変更できます。プロキシ・ユーザー・セッションに、IAMユーザーに付与されたすべての権限があります。

Oracle Databaseセキュリティ・ガイドを参照してください。

IAMトークンベースの認証(ベアラー・トークン)の使用

SQLPLUS /nolog
SQL> CONNECT /@connect_identifier

PASSWORD_AUTH設定により、ベアラー・トークンを使用してIAMトークンベースの認証が強制されます:

(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))
)

オプションのOCI_COMPARTMENTおよびOCI_DATABASEパラメータを使用して、トークン・リクエストの範囲を制限できます。

(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))  
  )

ユーザー認証および認可用にIAMを構成した場合、IAMユーザーがIAMデータベース・トークン(db-token)を使用してOracle DBaaSに接続できます。このタイプのトークンはベアラー・トークンであり、秘密キーは付属していません。

IAMユーザー名およびIAMデータベース・パスワードを使用して、db-tokenをリクエストするようにデータベース・クライアントを構成できます。アプリケーションはこのタイプのトークンをクライアントに渡せません。この場合、PASSWORD_AUTHパラメータをOCI_TOKENに設定します。

IAMユーザーが、OCIコンソールからIAMデータベース・パスワードを設定できます(OCI IAMパスワードの作成を参照)。

データベース・クライアントは、OCI IAMエンドポイントから直接トークンを取得します。データベース・クライアントが追加メタデータとともにIAMエンドポイントを検出できるように、追加パラメータを設定する必要があります。追加のパラメータはOCI_IAM_URLおよびOCI_TENANCYで、スコープを制限するオプションOCI_COMPARTMENTおよびOCI_DATABASEがあります。

IAMユーザーが/@connect_identifierを使用してIAMユーザー名およびIAMデータベース・パスワードでログインすると、PASSWORD_AUTH=OCI_TOKEN設定および/@connect_identifierは、REST APIリクエストを使用してOCI IAMエンドポイントからトークンを直接取得するようにデータベース・クライアントに指示します。

これらのパラメータは、tnsnames.oraファイル、sqlnet.oraファイルで指定するか、接続文字列の一部として直接指定できます。

Oracle Databaseセキュリティ・ガイドを参照してください。

IAMトークンベースの認証(PoPトークン)の使用

SQLPLUS /nolog
SQL> CONNECT /@connect_identifier

TOKEN_AUTH設定により、PoPトークンを使用してIAMトークンベースの認証が強制されます。

(DESCRIPTION=
   (ADDRESS=(PROTOCOL=tcps)(HOST=sales_db)(PORT=1522))
   (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))
)

オプションのTOKEN_LOCATIONパラメータを使用して、データベース・トークンおよび秘密キーが格納されているデフォルト・ディレクトリをオーバーライドできます。

(DESCRIPTION= 
    (ADDRESS=(PROTOCOL=tcps)(HOST=sales_db)(PORT=1522)) 
    (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))
)

IAMユーザーは、トークンベースのプロキシ認証を使用して、データベース・プロキシ・ユーザー・アカウントを介して接続できます。

SQLPLUS [user1]/@pop_token_connstr
SQL> SHOW USER;
select sys_context('USERENV','AUTHENTICATION_METHOD') from dual;
select sys_context('USERENV','PROXY_USER') from dual;
select sys_context('USERENV','CURRENT_USER') from dual;

ユーザー認証および認可用にIAMを構成した場合、IAMユーザーはIAMデータベース・トークン(db-token)を使用してOracle DBaaSインスタンスに接続できます。このタイプのトークンは、有効期限と有効範囲を持つProof-of-possession (PoP)トークンです。Oracle Cloud Infrastructure (OCI)コマンドライン・インタフェース(CLI)を使用してIAMから、またはOCI Software Development Kit (SDK)からプログラム的にトークンをリクエストできます。

この接続方法では、APIキー、セキュリティ・トークン、リソース・プリンシパル、サービス・プリンシパル、インスタンス・プリンシパルまたは委任トークン(委任トークンはCloud Shellでのみ使用可能)などのIAMユーザー資格証明のいずれかを使用して、IAMからdb-tokenおよび秘密キーを取得できます。

クライアント・アプリケーションは、次のいずれかの方法で接続リクエストを送信できます。
  • IAMユーザーが/@connect_identifierを使用してログインした場合(およびTOKEN_AUTHOCI_TOKENに設定されている場合)、データベース・クライアントは、デフォルト・ディレクトリまたはTOKEN_LOCATIONで指定された場所のいずれかからdb-tokenおよび秘密キーを取得します(IAMトークンベースの認証を使用)。

  • クライアント・アプリケーションがIAMからトークンを取得するように更新されている場合、IAMは、データベース・クライアントAPIを使用して、db-tokenおよび秘密キーを属性としてデータベース・クライアントに直接渡します。この場合、TOKEN_AUTHおよびTOKEN_LOCATIONパラメータを指定する必要はありません。

これらのパラメータは、tnsnames.oraファイルまたはsqlnet.oraファイルで指定することも、接続文字列の一部として直接指定することもできます。

プロキシ認証を使用するようにクライアント接続を構成できます。この場合、トークンベースのプロキシ認証を使用することで、プロキシ・データベースのユーザー・アカウントを介して接続するために必要な権限を持つIAMユーザーを変更できます。プロキシ・ユーザー・セッションに、IAMユーザーに付与されたすべての権限があります。

Oracle Databaseセキュリティ・ガイドを参照してください。

Azure ADトークンベース認証の使用

SQLPLUS /nolog
SQL> CONNECT /@connect_identifier

TOKEN_AUTH設定により、Azure ADトークンベースの認証が強制されます:また、TOKEN_LOCATIONパラメータを使用して、アクセス・トークンが格納されるディレクトリ・パスを指定する必要があります。

トークン・ファイルの名前がtokenの場合、クライアントは指定されたディレクトリ・パス(たとえば、/home/dbuser1/access-token)内のファイルを自動的に検索します。

(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))
)

トークン・ファイル名がtokenと異なる場合は、ディレクトリ・パスとともにファイル名(mytokenなど)を指定する必要があります。

(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))
)

ユーザー認証および認可用にMicrosoft Azure Active Directory (Azure AD)を構成した場合、Azure ADユーザーはAzure AD OAuth2アクセス・トークンを使用してOracle Databaseに接続できます。このアクセス・トークンは、有効期限と範囲を持つベアラー・トークンであり、Azure AD拡張機能を備えたOAuth2.0標準に準拠しています。

TOKEN_AUTH設定(TOKEN_AUTH=OAUTH)は、トークン・ファイルがtokenという名前の場合に、TOKEN_LOCATIONで指定されたディレクトリからアクセス・トークンを取得するようにデータベース・クライアントに指示します。そうでない場合は、TOKEN_LOCATIONパラメータを指定するときに、トークン・ファイル名とディレクトリの場所を使用する必要があります。

TOKEN_LOCATIONパラメータは、Azure ADトークンベースの認証では必須です。データベース・クライアントはこの場所からアクセス・トークンを取得し、データベース・サーバーに送信します。

TOKEN_AUTHおよびTOKEN_LOCATIONパラメータを、tnsnames.orasqlnet.oraファイルに指定するか、接続文字列の一部として直接指定します。

トークンは、Linux、Microsoft PowerShellまたはその他の環境で実行されるツールおよびスクリプトからリクエストできます。これらのトークンは、Microsoft SDKを使用してプログラム的にリクエストすることもできます。

クライアント・アプリケーションは、次のいずれかの方法で接続リクエストを送信できます。
  • Azure ADユーザーは、サポートされているMicrosoft Azure AD認証フロー(リソース所有者のパスワード資格証明、認可コード、On-Behalf-Of (OBO)フローまたはクライアント資格証明)のいずれかを使用してAzure ADからアクセス・トークンをリクエストし、ローカル・ファイル・ディレクトリに格納できます。

  • クライアント・アプリケーションがAzure ADからトークンを取得するように更新されている場合、アプリケーションはAzure ADから直接アクセス・トークンをリクエストし、データベース・クライアントAPIを使用してそれを属性としてデータベース・インスタンスに渡すこともできます。この場合、TOKEN_AUTHおよびTOKEN_LOCATIONパラメータを指定する必要はありません。

Oracle Databaseセキュリティ・ガイドを参照してください。

ノート:

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

6.6 データベースに接続するための簡易接続の使用

「ネットワークの可用性の確認」に関する項で説明しているように、ネットワーク接続が確認された場合、簡易接続ネーミング・メソッドを使用してデータベースに接続します。このネーミング・メソッドを利用すると、データベースへのTCP/IP接続を簡単に行えるようになります。これは、クライアントがデータベースのホスト名の他にオプションのポートとサービス名を使用してデータベースに接続できるようにすることで、ホスト・ネーミング・メソッドの機能を拡張します。簡易接続を使用して接続する構文は、次のとおりです。

CONNECT username/password@host[:port][/service_name][:server_type][/instance_name]

ノート:

Oracle Call Interfaceのマニュアルでは、serverconnect_typeと呼ばれています。

Oracle Databaseサーバーのインストールを「標準」モードで実行した場合、Oracleインスタンスで使用されるデフォルトのサービス名はデータベース名であり、次の簡易接続構文を使用してそのインスタンスに接続できます。

SQLPLUS /nolog
SQL> CONNECT username@"host/db_name"
SQL> Enter password: password

ノート:

Oracle Databaseでは、Oracle Database 10g時点で、Oracle Namesの使用をサポートしていません。Oracle Database 12cのクライアントおよびデータベースでは、LDAPプロキシも含め、Oracle Namesを使用して名前を解決できません。Oracle9iのクライアントでは、引き続きOracle Namesを使用してOracle Database 12cデータベースの名前を解決できます。ただし、Oracle Database 12cの新機能を活用するために、LDAPに移行することを強くお薦めします。

関連項目:

このメソッドの詳細は、「簡易接続ネーミング・メソッドの理解」を参照してください