4 スキーマ・レベル構成オーバーライドの概要

この項では、スキーマ・レベル構成オーバーライド機能について説明します。

スキーマ・レベル構成オーバーライド機能は、REST対応スキーマの構成プロパティをオーバーライドするメカニズムを提供します。これにより、認可されたデータベース・ユーザーはOracle REST Data Services (ORDS)をその場でカスタマイズできます。たとえば、データベース・ユーザーは、このメカニズムを使用してオプション機能を有効または無効にできます。データベース・スキーマ・レベル構成の事前定義済サブセットのみをオーバーライドでき、グローバル構成はオーバーライドできません。

4.1 スキーマ・レベル構成オーバーライドの機能

この項では、スキーマ・レベル構成オーバーライドの機能を示します。

スキーマ・レベル構成オーバーライドの機能は次のとおりです。
  • データベース・ユーザーは、ords PL/SQL APIを使用してスキーマの構成プロパティをオーバーライドできます。
  • データベース管理者は、ords_admin PL/SQL APIを使用して、データベース内の任意のスキーマの構成プロパティをオーバーライドできます。
  • 構成値は10分間キャッシュされます。新しい値が有効になるまで10分間待機する必要があります。

4.2 オーバーライド可能な構成プロパティ

この項では、オーバーライド可能な構成プロパティを示します。

表4-1 オーバーライド可能な構成プロパティ

キー 説明 スコープ オーバーライド値の設定
restEnabledSql.active REST対応SQLサービスがアクティブかどうかを指定します。REST対応SQLは、SDWまたはデータベース・アクションの前提条件です。値がfalseに設定されている場合、SDWは無効になります。 スキーマ
begin
ords.set_property(
p_key => 'restEnabledSql.active', p_value  => 'false');
commit;
end;
/
feature.sdw データベース・アクション機能がアクティブかどうかを指定します。 スキーマ
begin
ords_admin.set_property(p_key => 'feature.sdw', p_value => 'false');
commit;
end;
/
debug.printDebugToScreen エラー・レスポンスにスタックト・レースを含めるかどうかを指定します。 スキーマ
begin
ords_admin.set_property(p_key => 'debug.printDebugToScreen', p_value => 'true');
commit;
end;
/

4.3 ユースケース

この項では、スキーマ・レベル構成オーバーライド機能を使用するユースケースをいくつか示します。

表4-2 スキーマ・レベル構成オーバーライド機能のユースケース

シナリオ ソリューション
Autonomous Databaseユーザーが、ORDS RESTサービスをデバッグすることを考えています。 データベース・ユーザーは、次のコード・スニペットに示すように、スキーマのプロパティをtrueに設定します。

ords.set_property(
   p_key => 'debug.printDebugToScreen',
   p_value  => 'true'
);
管理者はREST対応スキーマを必要としていますが、REST対応SQLがありません。 管理者は、次のコード・スニペットに示すように、関連するスキーマのプロパティをtrueに設定します。
ords_admin.set_property(
   p_schema => 'REST_PRODUCTION',
   p_key => 'restEnabledSql.active',
   p_value  => 'true'
);
管理者がデータベースのSDWを完全に無効にすることを考えています。 管理者は、次のコード・スニペットに示すように、すべてのスキーマのプロパティを設定します。
ords_admin.set_property(p_schema => 's1', p_key => 
'feature.sdw', p_value  => 'false');

ords_admin.set_property(p_schema => 's2', p_key => 
'feature.sdw', p_value  => 'false');
REST対応スキーマは、以前に設定したプロパティ値をクリアする必要があります。 データベース・ユーザーは次のコマンドを実行します。
ords.unset_property(p_key => 'debug.printDebugToScreen');

4.4 スコープと可視性のマトリックス

この項では、データベース・ユーザーおよびスキーマ・ユーザーの可視性とスコープを構成する方法について説明します。

表4-3 スコープと可視性のマトリックス

ユーザー・タイプ データベース スキーマ
Public
  • すべてのスキーマに適用される値を設定できるのは管理者のみです
  • USER_ORDS_PROPERTIESビューは、値が設定されている場合、その値を表示します
  • 値が設定されている場合、保護されていないRESTエンドポイントに値が表示されます
  • 現在、ログイン・メッセージ、SDWヘッダーおよびフッターに使用されています
  • 管理者および非管理者ユーザーは、スキーマごとに値を設定できます
  • スキーマに自動的に適用されるデフォルト値はありません
  • USER_ORDS_PROPERTIESビューは、値が設定されている場合、その値を表示します
  • 値が設定されている場合、保護されていないRESTエンドポイントに値が表示されます
PROTECTED
  • すべてのスキーマに適用される値を設定できるのは管理者のみです
  • USER_ORDS_PROPERTIESビューは、値が設定されている場合、その値を表示します
  • 値が設定されている場合、保護されていないRESTエンドポイントに値は表示されません
  • 管理者および非管理者ユーザーは、スキーマごとに値を設定できます
  • スキーマに自動的に適用されるデフォルト値はありません
  • USER_ORDS_PROPERTIESビューは、値が設定されている場合、その値を表示します
  • 値が設定されている場合、保護されていないRESTエンドポイントに値は表示されません
PRIVATE
  • すべてのスキーマに適用される値を設定できるのは管理者のみです
  • USER_ORDS_PROPERTIESビューは、値が設定されている場合、値を表示しません
  • 値が設定されている場合、保護されていないRESTエンドポイントに値は表示されません
  • スキーマごとに値を設定できるのは管理者のみです
  • スキーマに自動的に適用されるデフォルト値はありません
  • USER_ORDS_PROPERTIESビューは、値が設定されている場合、値を表示しません
  • 値が設定されている場合、保護されていないRESTエンドポイントに値は表示されません