2 エンタープライズ・ユーザー・セキュリティの準備
エンタープライズ・ユーザー・セキュリティを使用すると、エンタープライズ全体でデータベース・ユーザーを一元的に管理できます。エンタープライズ・ユーザーは、Oracle Internet Directoryに作成され、ディレクトリに登録された様々なエンタープライズ・データベースに対するロールや権限を割り当てることができます。
2.1 ディレクトリを使用するためのデータベースの構成
エンタープライズ・ユーザー・セキュリティの構成の第1ステップは、ディレクトリを使用するようにデータベースを構成することです。Net Configuration Assistant (NetCA)ツールを実行すると、データベースで使用する必要があるディレクトリのホスト名およびポートを構成できます。
ディレクトリを使用するようにデータベースを構成するには:
2.2 ディレクトリへのデータベースの登録
次のステップは、データベースをディレクトリ・サービスに登録することです。Database Configuration Assistant (DBCA)ツールを使用すると、データベースをOracle Internet Directoryに登録できます。
データベースをディレクトリに登録するには:
ノート:
データベースをディレクトリに登録した後に、データベース・ウォレットの自動ログインが有効になっていることを確認します。デフォルトのウォレットは、$ORACLE_BASE/admin/database_sid/walletディレクトリに作成されます。
ウォレット・ディレクトリにcwallet.ssoファイルが存在することをチェックすることで、ウォレットに対する自動ログインが有効であることを確認できます。
2.3 ディレクトリへのOracle RACデータベースの登録
Oracle RAC環境でOracle Internet Directory (OID)を構成するには、特定の追加のステップが必要です。
2.4 データベースでの共有スキーマの作成
データベースに共有スキーマを作成すると、複数のエンタープライズ・ユーザーを同じスキーマにマップできます。例2-1では、共有スキーマglobal_ident_schema_userを作成し、CONNECTロールを付与します。
例2-1 共有スキーマの作成
SQL> CREATE USER global_ident_schema_user IDENTIFIED GLOBALLY; User created. SQL> GRANT CONNECT TO global_ident_schema_user; Grant succeeded.
2.5 共有スキーマへのエンタープライズ・ユーザーのマッピング
エンタープライズ・ユーザー・セキュリティは、Enterprise Managerを使用して管理できます。例2-2では、DN cn=users, dc=us, dc=oracle, dc=comを共有データベース・スキーマglobal_ident_schema_userにマップします。
例2-2 共有スキーマへのエンタープライズ・ユーザーのマッピング
ユーザー・スキーマ・マッピングを作成するには、次のようにします。
-
Enterprise Manager Cloud Controlに管理ユーザーとしてログインします。
-
使用するデータベースに移動するには、「ターゲット」メニューから「データベース」を選択します。
-
表示されたリストで、データベース名をクリックします。データベースのページが表示されます。
-
「管理」メニューで、「セキュリティ」→「エンタープライズ・ユーザー・セキュリティ」を選択します。「Oracle Internet Directoryログイン」ページが表示されます。
-
「ユーザー」フィールドに、エンタープライズ・ユーザーを管理できるディレクトリ・ユーザーの識別名(DN)を入力します。「パスワード」フィールドに、ユーザー・パスワードを入力します。「ログイン」をクリックします。
関連項目:
ディレクトリへのデータベースの登録、特に以前にユーザーDNおよびパスワードを入力し、ディレクトリ・サービスを使用してデータベースを登録したステップ6
「エンタープライズ・ユーザー・セキュリティ」ページが表示されます。
-
「エンタープライズ・ドメインの管理」をクリックします。
「エンタープライズ・ドメインの管理」ページが表示されます。
-
データベースを含むエンタープライズ・ドメインを選択します。構成をクリックします。
「ドメインの構成」ページが表示されます。
-
「ユーザー・スキーマ・マッピング」タブをクリックします。エンタープライズ・ドメインに適用されているユーザー・スキーマ・マップがすべて表示されます。
-
「作成」をクリックします。
「マッピングの作成」ページが表示されます。
-
「自」セクションで、「サブツリー」を選択します。検索アイコンをクリックします。DNのcn=Users, dc=us,dc=oracle,dc=comを選択します。
-
「至」セクションで、「スキーマ」フィールドにglobal_ident_schema_userと入力します。「続行」をクリックします。
「ドメインの構成」ページにユーザー・スキーマ・マッピングが追加されます。
-
「OK」をクリックします。
2.6 エンタープライズ・ユーザーとしてのデータベースへの接続
この時点で、マップされたOracle Internet Directoryサブツリー内のすべてのユーザーは、エンタープライズ・ユーザーとしてデータベースに接続できます。例2-3に、データベースに接続するcn=orcladmin, cn=users, dc=us,dc=oracle,dc=comユーザーを示します。
例2-3 エンタープライズ・ユーザーとしてのデータベースへの接続
SQL> CONNECT orcladmin Enter password: Connected.
2.7 エンタープライズ・ロールの使用
エンタープライズ・ロールはディレクトリに作成されます。エンタープライズ・ロールには、エンタープライズ・ドメインに属する様々なデータベースのグローバル・ロールが格納されます。エンタープライズ・ロールは、エンタープライズ・ユーザーにデータベース権限を割り当てるために使用します。
例2-4では、2人のエンタープライズ・ユーザーのJoeとNinaを作成します。この2人のユーザーはいずれもサブツリーcn=Users, dc=us,dc=oracle,dc=comに作成されますが、このサブツリーはすでにEUSDBデータベースのglobal_ident_schema_userにマップされています。前のサブツリーの例に示されているLDAP属性タイプの詳細は、「RFC4519 — Lightweight Directory Access Protocol (LDAP) : Schema for User Applications」を参照してください。
NinaはHRマネージャです。EUSDBデータベースのhr.employees表に対するSELECT権限を必要とします。例2-4では、エンタープライズ・ロールを使用してこれを実現します。
例2-4 エンタープライズ・ロールの使用
2人のエンタープライズ・ユーザーのJoeとNinaの作成から始めます。エンタープライズ・ユーザーは、Oracle Internet Directoryセルフ・サービス・コンソールを使用して作成できます。
エンタープライズ・ユーザーのJoeとNinaを作成するには:
-
Oracle Internet Directoryセルフ・サービス・コンソールに接続します。次のURLを使用します。
http://hostname:port/oiddas/hostnameは、Oracle Internet Directoryサーバーが稼働しているホストの名前です。port番号は、Oracle Internet Directoryセルフ・サービス・コンソールが稼働しているTCPポート番号です。デフォルトは7777です。 -
「ディレクトリ」タブをクリックします。
「サインイン」ページが表示されます。
-
Oracle Internet Directoryにユーザーを作成できるユーザーとしてログインします。
「ユーザー」ページが表示されます。
-
「作成」をクリックします。
「ユーザーの作成」ページが表示されます。
-
「ユーザー名」にjoeと入力します。その他の必須フィールドに値を入力します。「有効」で「有効」を選択します。
-
発行をクリックします。
-
「別のユーザーの作成」をクリックします。
「ユーザーの作成」ページが表示されます。
-
「ユーザー名」にNinaと入力します。その他の必須フィールドに値を入力します。「有効」で「有効」を選択します。
-
発行をクリックします。「OK」をクリックします。
次に、hr.employees表へのアクセスを許可するグローバル・ロールをデータベースに作成します。次のSQL*Plus文は、グローバル・ロールhr_accessを作成し、必要な権限を付与します。
SQL> CREATE ROLE hr_access IDENTIFIED GLOBALLY; Role created. SQL> GRANT SELECT ON hr.employees TO hr_access; Grant succeeded.
次にhr_accessというエンタープライズ・ロールを作成し、グローバル・ロールを割り当てます。そして、このエンタープライズ・ロールをエンタープライズ・ユーザーNinaに割り当てます。エンタープライズ・ロールは、Enterprise Managerを使用して作成できます。
エンタープライズ・ロールhr_accessを作成するには:
-
Enterprise Manager Cloud Controlに管理ユーザーとしてログインします。
-
使用するデータベースに移動するには、「ターゲット」メニューから「データベース」を選択します。
-
表示されたリストで、データベース名をクリックします。データベースのページが表示されます。
-
「管理」メニューで、「セキュリティ」→「エンタープライズ・ユーザー・セキュリティ」を選択します。「Oracle Internet Directoryログイン」ページが表示されます。
-
「ユーザー」フィールドに、エンタープライズ・ユーザーを管理できるディレクトリ・ユーザーの識別名(DN)を入力します。「パスワード」フィールドに、ユーザー・パスワードを入力します。「ログイン」をクリックします。
「エンタープライズ・ユーザー・セキュリティ」ページが表示されます。
-
「エンタープライズ・ドメインの管理」をクリックします。
「エンタープライズ・ドメインの管理」ページが表示されます。このページには、アイデンティティ管理レルム内のエンタープライズ・ドメインが一覧表示されます。
-
データベースを含むエンタープライズ・ドメインを選択します。構成をクリックします。
「ドメインの構成」ページが表示されます。
-
「エンタープライズ・ロール」タブをクリックします。
-
「作成」をクリックします。
「エンタープライズ・ロールの作成」ページが表示されます。
-
「名前」フィールドにhr_accessと入力します。
-
「追加」をクリックし、データベース・グローバル・ロールをエンタープライズ・ロールに追加します。
「検索と選択: データベース・グローバル・ロール」ウィンドウが表示されます。
-
データベースの
hr_accessグローバル・ロールを選択します。「選択」をクリックします。ノート:
グローバル・ロールを選択するには、データベースにログインする必要があります。
-
「権限受領者」タブをクリックします。「追加」をクリックします。
「選択: ユーザーまたはグループ」ウィンドウが表示されます。
-
ユーザーNinaを選択します。「選択」をクリックします。
-
「エンタープライズ・ロールの作成」ページで「続行」をクリックします。
-
「ドメインの構成」ページで「OK」をクリックします。
これで、エンタープライズ・ユーザーNinaは、データベースのhr.employees表にアクセスできます。次のSQL*Plus文は、そのことを示しています。
SQL> CONNECT Nina
Enter password:
Connected.
SQL> SELECT employee_id FROM hr.employees;
EMPLOYEE_ID
-----------
100
101
102
...
...
107 rows selected.
エンタープライズ・ユーザーJoeは、エンタープライズ・ロールが割り当てられていないため、hr.employees表にアクセスできません。
SQL> CONNECT joe Enter password: Connected. SQL> SELECT employee_id FROM hr.employees; SELECT employee_id FROM hr.employees ERROR at line 1: ORA-00942: table or view does not exist
2.8 プロキシ権限の使用
プロキシ権限はエンタープライズ・ドメイン・レベルで作成されます。プロキシ権限により、エンタープライズ・ユーザーはローカル・データベース・ユーザーの代わりとなることができます。つまり、エンタープライズ・ユーザーはローカル・データベース・ユーザーとしてデータベースにログインできます。プロキシ権限は、個々のエンタープライズ・ユーザーまたはグループに付与できます。プロキシ権限は、複数のデータベース間でエンタープライズ・ユーザーとして動作する中間層アプリケーションでは特に有用です。
例2-5に、プロキシ権限の使用を示します。エンタープライズ・ユーザーjoeは販売マネージャであり、ターゲット・データベース・ユーザーSHとしてエンタープライズ・データベースにログインする必要があります。SHユーザーは、販売履歴関連の表を含むSHサンプル・スキーマを所有しています。
例2-5 プロキシ権限の使用
エンタープライズ・ユーザー・プロキシの許可の第1ステップは、ターゲット・データベース・ユーザーを変更(ALTER)し、エンタープライズ・ユーザーによって接続(CONNECT)できるようにすることです。次のSQL文は、SHデータベース・アカウントをロック解除してパスワードを設定し、エンタープライズ・ユーザー・プロキシを使用できるようにアカウントを変更(ALTER)します。
SQL> CONNECT SYSTEM Enter password: Connected. SQL> ALTER USER SH IDENTIFIED BY hrd2guess ACCOUNT UNLOCK; User altered. SQL> ALTER USER SH GRANT CONNECT THROUGH ENTERPRISE USERS; User altered.
次に、Enterprise Managerを使用してプロキシ権限を構成します。これにより、エンタープライズ・ユーザーjoeは、ローカル・データベース・ユーザーSHとして接続できます。
エンタープライズ・ユーザーjoeに対してプロキシ権限を構成するには:
-
Enterprise Manager Cloud Controlに管理ユーザーとしてログインします。
-
使用するデータベースに移動するには、「ターゲット」メニューから「データベース」を選択します。
-
表示されたリストで、データベース名をクリックします。データベースのページが表示されます。
-
「管理」メニューで、「セキュリティ」→「エンタープライズ・ユーザー・セキュリティ」を選択します。「Oracle Internet Directoryログイン」ページが表示されます。
-
「ユーザー」フィールドに、エンタープライズ・ユーザーを管理できるディレクトリ・ユーザーの識別名(DN)を入力します。「パスワード」フィールドに、ユーザー・パスワードを入力します。「ログイン」をクリックします。
「エンタープライズ・ユーザー・セキュリティ」ページが表示されます。
-
「エンタープライズ・ドメインの管理」をクリックします。
「エンタープライズ・ドメインの管理」ページが表示されます。このページには、アイデンティティ管理レルム内のエンタープライズ・ドメインが一覧表示されます。
-
構成するエンタープライズ・ドメインを選択します。構成をクリックします。
「ドメインの構成」ページが表示されます。
-
「プロキシ権限」タブをクリックします。
-
「作成」をクリックして新しいプロキシ権限を作成します。
「プロキシ権限の作成」ページが表示されます。
-
「名前」フィールドに、プロキシ権限の名前としてSH_Proxyと入力します。
-
「ターゲットDBユーザー」タブが選択されていることを確認します。「追加」をクリックします。
「検索と選択」ウィンドウが表示されます。
-
SHユーザーを含むデータベースにログインします。エンタープライズ・ユーザー・プロキシを許可するように変更されているすべてのデータベース・ユーザーのリストが表示されます。 -
SHユーザーを選択します。「選択」をクリックします。
「プロキシ権限の作成」ページの「ターゲットDBユーザー」に
SHユーザーが追加されます。 -
「権限受領者」タブをクリックします。
-
「追加」をクリックします。
「選択: ユーザーまたはグループ」ウィンドウが表示されます。
-
「検索ベース」で「
cn=users,dc=us,dc=oracle,dc=com」を選択します。「表示」で「ユーザー」を選択します。実行をクリックします。サブツリー
cn=users,dc=us,dc=oracle,dc=comの下のユーザーのリストが表示されます。 -
cn=joe,cn=users,dc=us,dc=oracle,dc=comを選択します。「選択」をクリックします。「プロキシ権限の作成」ページの「権限受領者」にユーザー
joeが追加されます。 -
「プロキシ権限の作成」ページで「続行」をクリックします。
「ドメインの構成」ページにプロキシ権限
SH_Proxyが追加されます。 -
「OK」をクリックします。
これで、エンタープライズ・ユーザーjoeは、ローカル・データベース・ユーザーSHとしてログインできます。次のSQL文は、そのことを示しています。
SQL> REMARK Joe uses his own password to connect as the local database user, SH.
SQL> CONNECT joe[SH]
Enter password:
Connected.
SQL> SELECT * FROM SH.sales WHERE cust_id=4;
PROD_ID CUST_ID TIME_ID CHANNEL_ID PROMO_ID QUANTITY_SOLD AMOUNT_SOLD
---------- ---------- --------- ---------- ---------- ------------- -----------
37 4 31-MAY-00 3 999 1 60.43
39 4 31-MAY-00 3 999 1 38.45
40 4 31-MAY-00 3 999 1 48.1
...
...
72 rows selected.
2.9 プラガブル・データベースの使用
エンタープライズ・ユーザー・セキュリティは、Oracle Database 12cリリース1 (12.1)に導入されたプラガブル・データベース(PDB)で使用できます。各PDBには、エンタープライズ・ユーザー・セキュリティのメタデータ(グローバル・ユーザー、グローバル・ロールなど)が個別に用意されています。PDBごとに個別の識別情報がディレクトリに格納されています。PDBは、ディレクトリに登録されている通常のデータベースと同じですが、次の制限があります。
-
クライアント側のSSL認証では、リスナー用に構成されたコンテナ・データベース(CDB)全体のウォレットを使用します。データベースとディレクトリ間の認証には、PDB固有のウォレットが使用されます。
-
クライアントとデータベース間の認証に
SSLを使用し、データベースとディレクトリ間の認証でもSSLを使用する場合は、データベースに対して2つのウォレットを証明書とともに構成する必要があります。最初のウォレットはCDB全体のウォレットで、2番目のウォレットはPDB固有のウォレットです。
ノート:
各PDBには、それ固有のLDAP_DIRECTORY_ACCESSパラメータ値があります。LDAP_DIRECTORY_ACCESSパラメータの値は、PDBから設定する必要があります。
2.9.1 プラガブル・データベースのウォレット・ロケーション
プラガブル・データベースでは、PDBがディレクトリに登録されると、Database Configuration Assistant (DBCA)によって次の場所にウォレットが作成されます。
-
ORACLE_BASE環境変数が設定されている場合:ORACLE_BASE/admin/db_unique_name/pdb_GUID/wallet
-
ORACLE_BASEが設定されていない場合:ORACLE_HOME/admin/db_unique_name/pdb_GUID/wallet
PDB名は変更される可能性があり、GUIDは変更されないため、PDBのGUIDが使用されます。そのため、PDBのウォレット・ロケーションは、 PDB名が変更されても引き続き有効です。
ノート:
Microsoft Windows x64プラットフォームでは、listener.oraファイルおよびサーバー・サイドのsqlnet.oraファイルにWALLET_LOCATIONパラメータを指定しなければ、 サーバーはシステムのデフォルトの場所からウォレットを取り込みませんが、その場所とは%USERPROFILE%\ORACLE\WALLETSです。したがって、SSL接続を使用してログインしようとすると、次のエラーのためログインに失敗します。ORA-28864: SSL接続は正常にクローズしましたこの問題に有効な回避方法はありません。
2.9.2 プラガブル・データベースのウォレット・ルート
WALLET_ROOTにより、プラガブル・データベース(PDB)ごとに1つのサブディレクトリを含む、ディレクトリ・ツリーのルートへのパスを指定します。このディレクトリ構造は、そのPDBに関連付けられた様々なウォレットの格納に使用される、Oracle ASMウォレット・ストレージのディレクトリ構造と似ています。
この例では、ORACLE_BASE環境変数の値を使用してウォレット・ディレクトリ階層のルートを設定します。
WALLET_ROOT=$ORACLE_BASE/admin/orcl/wallet
WALLET_LOCATIONを使用してご希望のウォレット・ロケーションを指定することもできます。WALLET_ROOTパラメータとWALLET_LOCATIONパラメータを両方とも指定した場合は、WALLET_ROOTのほうが優先されます。どちらのパラメータも指定されていない場合は、デフォルトのウォレット・ロケーションが使用されます。
ノート:
このパラメータは、Oracle Databaseリリース18c, バージョン18.1以降で使用可能です。関連項目:
WALLET_ROOT2.9.3 ディレクトリ・サービスへの接続
以前は、マルチテナント・データベースでは、コンテナはすべて、単一のディレクトリ・サービスに接続するために使用されていました。プラガブル・データベース(PDB)ごとに異なるディレクトリ・サービスを接続できるようになりました。
2.9.3.1 dsi.oraファイルとldap.oraファイルの比較
エンタープライズ・ユーザー・セキュリティのために、およびOracle Internet Directory (OID)との統合のために、dsi.oraまたはldap.oraのどちらかを使用できます。
エンタープライズ・ユーザー・セキュリティ用にldap.oraを使用する場合は、データベース内のすべてのコンテナ(PDB)に対して1つのOIDサーバーのみを指定できます。ただし、同一ディレクトリ・サービスを使用している場合とそうでない場合がある複数のネット・ネーミング・サービス用にldap.oraを使用することもできます。dsi.oraを使用すると、必要に応じて各PDBを異なるOIDサーバーに統合できます。DBCAを使用してldap.oraを構成できますが、dsi.oraは手動で作成する必要があります。
2.9.3.2 dsi.oraファイルの使用について
dsi.oraファイルを使用してOracle Internet Directory (OID)サーバーを指定します。
OIDサーバーを識別するには、dsi.oraファイルを手動で作成する必要があります。dsi.oraファイルは、ldap.oraファイルを配置できる場所にある場合には、すべてのプラガブル・データベースのディレクトリ接続情報を含んでいます。PDB固有のウォレット・ロケーションにあるdsi.oraファイルは、そのPDBのみのメインのdsi.oraファイルより優先されます。
ノート:
ネーミング・サービス用にldap.oraを使用している場合は、ディレクトリ構成についてldap.oraに変更を加えないでください。OIDの構成にはdsi.oraのみを使用してください。
dsi.oraの配置
$ORACLE_HOMEの下でなく、$ORACLE_BASEの下の書き込み可能なファイルのディレクトリを使用することをお薦めします。Oracle Database18c以降、オプションで$ORACLE_HOMEディレクトリを読取り専用に設定できます。したがって、dsi.oraファイルを$ORACLE_HOME外のディレクトリに置いて、将来のリリースのdsi.ora構成に対応する必要があります。
dsi.oraの検索順序
dsi.oraファイルを作成すると、Oracle Databaseでは次の順序で検索されます。
- PDBの場合は、そのPDB固有のウォレット・ロケーションでそれが検索されます。
WALLET_ROOTがinit.oraに指定されている場合は、PDB固有のウォレット・ロケーションはWALLET_ROOT/pdb_guid/eus/になります。WALLET_ROOTがinit.oraに指定されておらず、WALLET_LOCATIONがsqlnet.oraに指定されている場合は、PDB固有のウォレット・ロケーションはWALLET_LOCATION/pdb_guid/になります。WALLET_ROOTもWALLET_LOCATIONも指定されていない場合は、PDB固有のウォレット・ロケーションはデフォルトの場所であり、次のようになります。ORACLE_BASE環境変数が設定されている場合は、デフォルトの場所は次のとおりです。ORACLE_BASE/admin/db_unique_name/pdb_guid/wallet/ORACLE_BASEが設定されていない場合は、デフォルトの場所は次のとおりです。ORACLE_HOME/admin/db_unique_name/pdb_guid/wallet/
- Oracle Databaseがウォレット・ロケーションで
dsi.oraを検出できない場合、Oracle Databaseは次の順序で検索します。これらは、Oracle Databaseがldap.oraファイルを検索する場所と同じです。$LDAP_ADMIN環境変数設定$ORACLE_HOME/ldap/adminディレクトリ$TNS_ADMIN環境変数設定$ORACLE_HOME/network/adminディレクトリ
dsi.oraを使用する場合
PDBごとに異なるOIDサービスに接続する場合は、dsi.oraのみを使用することをお薦めします。dsi.oraとldap.oraの両方が同一データベース内で構成されており同一ディレクトリにある場合は、dsi.oraがldap.oraファイルよりも優先されます。それらが別々のディレクトリにある場合は、前述の場所優先順位リスト内の上位にあるほうのディレクトリでディレクトリ・サーバーが検索されます。
PDBのデフォルト・ウォレット・ロケーションは、$ORACLE_BASE/admin/db_unique_name/pdb_guid/wallet/ディレクトリです。
db_unique_nameを検索するには、CDBルートに接続して次の問合せを実行します。
SELECT DB_UNIQUE_NAME FROM V$DATABASE;
CDBルートからpdb_guidを検索するには、次の問合せを実行します。
SELECT PDB_NAME,GUID FROM DBA_PDBS;
2.9.3.3 dsi.oraファイルの作成
dsi.ora構成ファイルにより、ディレクトリ・サーバーを見つけるための情報を設定します。
dsi.ora構成ファイルを使用するには:
- Oracleデータベースが存在するホストにログインします。
dsi.oraファイルを配置するウォレット・ロケーション・ディレクトリを見つけます。ウォレット・ロケーションの詳細は、dsi.oraの検索順序を参照してください。ウォレット・ロケーションのディレクトリが存在しない場合は、それを作成します。ウォレット・ロケーションのディレクトリに移動してdsi.oraファイルを作成します。dsi.oraファイルに次のパラメータを追加します。DSI_DIRECTORY_SERVERS。これで、ディレクトリ・サーバーのホストおよびポート番号、および代替ディレクトリ・サーバーを設定します。ディレクトリ・サーバー名は完全修飾名である必要があります。たとえば:DSI_DIRECTORY_SERVERS = (ldap-server.examplecorp.com:389:636, raffles.examplecorp.com:389:636)DSI_DEFAULT_ADMIN_CONTEXT。これで、接続識別子の作成、変更または検索に使用するデフォルト・ディレクトリを指定します。たとえば:DSI_DEFAULT_ADMIN_CONTEXT = "o=OracleSoftware,c=US"DSI_DIRECTORY_SERVER_TYPE。これで、ディレクトリ・サーバー・アクセスを決定します。Oracle Internet Directoryの場合はこれをOIDに設定する必要があります。この値は大文字で入力してください。DSI_DIRECTORY_SERVER_TYPE = OID
2.9.3.4 ldap.oraファイルの使用について
ldap.oraファイルを使用してディレクトリ・サーバーを指定できます。
ネット・ネーミング・サービス用など別の目的ですでにldap.oraファイルを使用している場合は、dsi.oraファイルを使用して、ユーザー認証および認可に使用するディレクトリを構成する必要があります。データベースが現在、別のサービスにldap.oraを使用していない場合でも、今後ネット・ネーミング・サービスにldap.oraを使用する場合はdsi.oraを使用することをお薦めします。
ldap.oraがネーミング・サービスに使用されている場合は、ldap.oraを変更しないでください。ディレクトリの構成にはdsi.oraのみを使用してください。
ldap.oraを使用する利点
ldap.oraを使用する利点は、DBCAグラフィカル・インタフェースまたはDBCAサイレント・モードを使用してディレクトリ・サーバーへの接続を構成できるということです。dsi.oraを使用する場合は、ディレクトリへの接続を構成するステップを個別に行う必要があります。
DBCAを使用してldap.oraでPDBを構成した後、そのPDB固有のウォレット・ロケーションに個別のdsi.oraを作成できます。ldap.oraの内容を、対応するdsi.oraに移動し、dsi.ora内の各パラメータにはDSI_接頭辞を追加します。
後でldap.oraを更新して別のOIDサーバーを含めることができます。ldap.oraを更新した後、DBCAを使用して別のPDBを構成し、ldap.oraの内容をそのPDB固有のウォレット・ロケーションにあるdsi.oraに移動します。このプロセスを繰り返して、各PDBが別々のOIDサーバーに接続できるように、すべてのPDBを構成します。
ldap.oraの配置
通常、ldap.oraファイルは$ORACLE_HOME/network/adminディレクトリに格納されます。
ldap.oraの検索順序
ldap.oraファイルを作成すると、Oracle Databaseでは次の順序で検索されます。
-
$LDAP_ADMIN環境変数設定 -
$ORACLE_HOME/ldap/adminディレクトリ -
$TNS_ADMIN環境変数設定 -
$ORACLE_HOME/network/adminディレクトリ
ldap.oraの内容の変更
データベースの起動後にldap.oraの内容を変更した場合は、データベース・インスタンスを再起動するか、次のDDLを再実行して、ldap.oraの更新された内容を有効にする必要があります。
ALTER SYSTEM SET LDAP_DIRECTORY_ACCESS = 'PASSWORD';
2.9.4 デフォルトのデータベースDNの形式
DBCAを使用してPDBをディレクトリに登録すると、 デフォルトのPDB識別名(DN)が次の形式で生成されます。
cn=PDB_NAME.DB_UNIQUE_NAME,cn=oraclecontext,realm
デフォルトのcn (PDB_NAME.DB_UNIQUE_NAME)は、DBCAの登録画面でカスタム値に変更できます。登録後は変更できません。
2.9.5 PDBの接続および切断
既存の登録済データベースはCDBに接続できます。PDBを再登録する必要はありませんが、次のステップを実行する必要があります。
-
元の場所からウォレット・ファイルを取得して、PDBの新しいデフォルトのウォレット・ロケーションに配置します。
-
PDBで
LDAP_DIRECTORY_ACCESSパラメータを目的の値に設定します。
同様に、ディレクトリに登録済のPDBを切断する場合、データベースを再登録する必要はありません。切断した後に新しいデフォルトの場所にウォレットをコピーする必要があります。デフォルトの場所は次のとおりです。
-
ORACLE_BASE環境変数が設定されている場合:ORACLE_BASE/admin/db_unique_name/pdb_guid/wallet
-
ORACLE_BASEが設定されていない場合:ORACLE_HOME/admin/db_unique_name/pdb_guid/wallet


















