63 DBMS_DISTRIBUTED_TRUST_ADMIN
DBMS_DISTRIBUTED_TRUST_ADMIN
プロシージャは、Trusted Serversリストをメンテナンスします。サーバーが信頼されているかどうかを定義するには、これらのプロシージャを使用します。データベースが信頼されていない場合は、そのデータベースからの現行のユーザーのデータベース・リンクは拒否されます。
この章のトピックは、次のとおりです:
63.1 DBMS_DISTRIBUTED_TRUST_ADMINの概要
Oracleは、エンタープライズLDAPディレクトリ・サービスに格納されているドメイン・メンバーシップ・リストとともにローカルのTrusted Serversリストを使用して、別のデータベースが信頼されているかどうかを判断します。LDAPディレクトリ・サービスのエントリは、Oracle Enterprise ManagerのEnterprise Security Manager Toolで管理されます。
Oracleは、次の条件に一致する場合、別のデータベースを信頼できるとみなします。
-
ディレクトリ・サービスのエンタープライズ・ドメインがローカル・データベースと同じである。
-
エンタープライズ・ドメインがディレクトリ・サービスにおいて信頼するとマークされている。
-
ローカルのTrusted Serversリストに信頼しないと表示されていない。現行のユーザーのデータベース・リンクが別のデータベースから受け入れられるのは、関係する両方のデータベースが互いに信頼されている場合のみです。
ディレクトリ・サービスにリストされているかどうかに関係なく、データベース・サーバーをTrusted Serversリストにローカルでリストできます。ただし、同じドメイン内にローカル・データベースとして存在しないデータベースをリストする場合、またはそのドメインが信頼されていない場合、そのエントリは無効になります。
この機能は、Oracle Advanced SecurityオプションのEnterprise User Security機能の一部です。
63.2 DBMS_DISTRIBUTED_TRUST_ADMINのセキュリティ・モデル
DBMS_DISTRIBUTED_TRUST_ADMIN
を実行するには、EXECUTE_CATALOG_ROLE
ロールがDBAに付与されている必要があります。TRUSTED_SERVERS
ビューを検索するには、SELECT_CATALOG_ROLE
ロールがDBAに付与されている必要があります。
すべてのサーバーについて、信頼されているかどうかを認識することが重要です。データベースがすべてのデータベースをすでに信頼している場合、またはそのデータベースがすでに信頼されている場合は、ALLOW_SERVER
プロシージャで特定のサーバーを信頼しても効果はありません。同様に、そのデータベースがすべてのデータベースをすでに信頼していない場合、またはそのデータベースがすでに信頼されていない場合は、DENY_SERVER
プロシージャで特定のサーバーを拒否しても効果はありません。
プロシージャDENY_ALL
およびALLOW_ALL
は、それぞれALLOW_SERVER
プロシージャまたはDENY_SERVER
プロシージャで明示的に許可または拒否されたすべてのエントリ(サーバー名)を削除します。
63.3 DBMS_DISTRIBUTED_TRUST_ADMINの例
パッケージDBMS_DISTRIBUTED_TRUST_ADMIN
を使用して信頼リストを変更したことがない場合、デフォルトでは、同じ企業ドメイン内のすべてのデータベースを信頼します(そのドメインがディレクトリ・サービスで信頼されているとしてリストされている場合に限ります)。
SELECT * FROM TRUSTED_SERVERS; TRUST NAME --------- --------------------- Trusted All
現在すべてのサーバーが信頼されているため、DENY_SERVERプロシージャを実行し、特定のサーバーを信頼しないことを指定できます。
EXECUTE DBMS_DISTRIBUTED_TRUST_ADMIN.DENY_SERVER ('SALES.US.AMERICAS.ACME_AUTO.COM'); PL/SQL procedure successfully completed. SELECT * FROM TRUSTED_SERVERS; TRUST NAME --------- ----------------------------------------------- Untrusted SALES.US.AMERICAS.ACME_AUTO.COM
DENY_ALLプロシージャを実行すると、すべてのデータベース・サーバーを信頼しないことを選択できます。
EXECUTE DBMS_DISTRIBUTED_TRUST_ADMIN.DENY_ALL; PL/SQL procedure successfully completed. SELECT * FROM TRUSTED_SERVERS; TRUST NAME --------- ----------------------------------------------- Untrusted All
ALLOW_SERVERプロシージャを使用すると、特定のデータベース・サーバーを信頼することを指定できます。
EXECUTE DBMS_DISTRIBUTED_TRUST_ADMIN.ALLOW_SERVER ('SALES.US.AMERICAS.ACME_AUTO.COM'); PL/SQL procedure successfully completed. SELECT * FROM TRUSTED_SERVERS; TRUST NAME --------- ------------------------------------------------ Trusted SALES.US.AMERICAS.ACME_AUTO.COM
63.4 DBMS_DISTRIBUTED_TRUST_ADMINサブプログラムの要約
この表では、DBMS_DISTRIBUTED_TRUST_ADMIN
のサブプログラムをリストし、簡単に説明します。
表63-1 DBMS_DISTRIBUTED_TRUST_ADMINパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
リストを空にし、すべてのサーバーを信頼することを示す行を挿入します。 |
|
特定のサーバーへのアクセスを可能にします。リストに |
|
リストを空にし、すべてのサーバーを信頼しないことを示す行を挿入します。 |
|
特定のサーバーへのアクセスを拒否します。リストにallow allが指定されている場合でも有効です。 |
63.4.1 ALLOW_ALLプロシージャ
このプロシージャは、Trusted Serversリストを空にし、エンタープライズ・ディレクトリ・サービスで信頼されているドメインのメンバーであるすべてのサーバー、および同じドメイン内のすべてのサーバーがアクセスを許可されることを指定します。
TRUSTED_SERVERS
ビューには、「TRUSTED
ALL
」と表示されます。これは、エンタープライズ・ディレクトリ・サービスで現在信頼されているすべてのサーバーを、データベースが信頼していることを意味します。
構文
DBMS_DISTRIBUTED_TRUST_ADMIN.ALLOW_ALL;
使用上のノート
ALLOW_ALL
は、エンタープライズ・ディレクトリ・サービスで信頼されているとしてリストされているサーバー、および同じエンタープライズ・ドメイン内のサーバーにのみ適用されます。
63.4.2 ALLOW_SERVERプロシージャ
このプロシージャは、指定したサーバーが信頼されていることを保証します(deny
all
が指定されている場合でも有効です)。
構文
DBMS_DISTRIBUTED_TRUST_ADMIN.ALLOW_SERVER ( server IN VARCHAR2);
パラメータ
表63-2 ALLOW_SERVERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
信頼するサーバーの一意の完全修飾名 |
使用上のノート
Trusted Serversリストにエントリdeny
all
が含まれている場合、このプロシージャは、特定のデータベース(例: DBx
)を信頼することを示す指定を追加します。
Trusted Serversリストにエントリallow
all
が含まれており、そのリストにdeny
DBx
エントリがない場合は、このプロシージャを実行しても何も変更されません。
Trusted Serversリストにエントリallow
all
が含まれており、そのリストにdeny
DBx
エントリがある場合は、そのエントリが削除されます。
63.4.3 DENY_ALLプロシージャ
このプロシージャは、Trusted Serversリストを空にし、すべてのサーバーがアクセスを拒否されることを指定します。
TRUSTED_SERVERS
ビューには、「UNTRUSTED
ALL
」が表示されます。これは、現在どのサーバーも信頼されていないことを示します。
構文
DBMS_DISTRIBUTED_TRUST_ADMIN.DENY_ALL;
63.4.4 DENY_SERVERプロシージャ
このプロシージャは、指定したサーバーを信頼しないことを保証します(allow all
が指定されている場合でも有効です)。
構文
DBMS_DISTRIBUTED_TRUST_ADMIN.DENY_SERVER ( server IN VARCHAR2);
パラメータ
表63-3 DENY_SERVERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
信頼しないサーバーの一意の完全修飾名 |
使用上のノート
Trusted Serversリストにエントリallow
all
が含まれている場合、このプロシージャは、指定したデータベース(例: DBx
)を信頼しないことを示すエントリを追加します。
Trusted Serversリストにエントリdeny
all
が含まれており、そのリストにallow
DBx
エントリがない場合は、このプロシージャを実行しても何も変更されません。
Trusted Serversリストにエントリdeny
all
が含まれており、allow
DBx
エントリがある場合は、そのエントリが削除されます。