116 DBMS_PDB_ALTER_SHARING

アプリケーションが事前インストールされているアプリケーション・コンテナで、DBMS_PDB_ALTER_SHARINGパッケージは、データベース・オブジェクトをアプリケーション共通オブジェクトとして設定するか、またはデータベース・オブジェクトがアプリケーション共通オブジェクトではないことを指定するためのインタフェースを提供します。

ノート:

このパッケージは、DBMS_PDBパッケージのサブプログラムのサブセットを提供します。DBMS_PDBパッケージに対するEXECUTE権限を持たないユーザーには、このパッケージでこれらのサブプログラムを実行するためのEXECUTE権限を付与できます。

参照:

この章のトピックは、次のとおりです:

116.1 DBMS_PDB_ALTER_SHARINGの概要

このパッケージのサブプログラムでは、アプリケーション・コンテナで、データベース・オブジェクトをデータリンク・オブジェクト、拡張データリンク・オブジェクトまたはメタデータリンク・オブジェクトのいずれかのタイプのアプリケーション共通オブジェクトに設定できます。

データリンク・アプリケーション共通オブジェクトは、アプリケーション・コンテナ内のすべてのアプリケーションPDBによってアクセスおよび変更できるアプリケーション・ルートにデータを格納します。拡張データリンク・オブジェクトの場合、各アプリケーションPDBは、アプリケーション・ルートの共通データを共有しながら特定の独自データを作成できます。したがって、拡張データリンク・オブジェクトの場合、アプリケーション・ルートに格納されたデータのみがすべてのアプリケーションPDBで共通のデータとなります。メタデータリンク・アプリケーション共通オブジェクトは、表などの特定のオブジェクトのメタデータをアプリケーション・ルートに格納するため、アプリケーション・コンテナ内のコンテナは同じオブジェクト構造を持ちますが、データは異なります。このパッケージには、データベース・オブジェクトがアプリケーション共通オブジェクトではないことを指定するプロシージャも含まれます。

このパッケージのサブプログラムは、次の場合に使用できます。

通常、このパッケージのサブプログラムは次の場合に使用されます。

  • PDBにインストールされたアプリケーションがアプリケーション・コンテナに移行される場合。アプリケーションは、アプリケーション・ルートまたはアプリケーションPDBに移行できます。たとえば、Oracle Database 12cリリース1 (12.1) CDBに接続中のPDBにインストールされているアプリケーションを、Oracle Database 12cリリース2 (12.2) CDBのアプリケーション・コンテナに移行できます。

  • アプリケーション共通オブジェクトを設定できないインストール・プログラムを使用して、アプリケーションがアプリケーション・ルートにインストールされている場合。

参照:

アプリケーション・コンテナへのアプリケーションの移行の詳細は、『Oracle Database管理者ガイド』を参照してください。

116.2 DBMS_PDB_ALTER_SHARINGのセキュリティ・モデル

このパッケージは、DBMS_PDBパッケージのサブプログラムのサブセットを提供します。DBMS_PDBパッケージに対するEXECUTE権限を持たないユーザーには、このパッケージでこれらのサブプログラムを実行するためのEXECUTE権限を付与できます。

このパッケージのセキュリティは、次のいずれかの方法で制御できます。

  • 選択したユーザーまたはロールに、このパッケージのEXECUTEを付与する方法

  • 選択したユーザーまたはロールに、EXECUTE_CATALOG_ROLEを付与する方法

パッケージのサブプログラムをストアド・プロシージャ内から実行する場合、そのサブプログラムを実行するユーザーには、パッケージのEXECUTE権限を直接付与する必要があります。ロールを通して付与することはできません。

116.3 DBMS_PDB_ALTER_SHARINGサブプログラムの要約

この表は、DBMS_PDB_ALTER_SHARINGパッケージのサブプログラムについて簡単に説明しています。

表116-1 DBMS_PDB_ALTER_SHARINGサブプログラム

サブプログラム 説明

REMOVE_LINKプロシージャ

データベース・オブジェクトがアプリケーション共通オブジェクトではないことを指定します。

SET_DATA_LINKEDプロシージャ

データベース・オブジェクトをデータリンク・アプリケーション共通オブジェクトに設定します。

SET_EXT_DATA_LINKEDプロシージャ

データベース・オブジェクトを拡張データリンク・アプリケーション共通オブジェクトに設定します。

SET_METADATA_LINKEDプロシージャ

データベース・オブジェクトをメタデータリンク・アプリケーション共通オブジェクトに設定します。

SET_PROFILE_EXPLICITプロシージャ

アプリケーション・コンテナでプロファイルをアプリケーション共通プロファイルとして設定します。

SET_ROLE_EXPLICITプロシージャ

アプリケーション・コンテナでロールをアプリケーション共通ロールとして設定します。

SET_USER_EXPLICITプロシージャ

アプリケーション・コンテナでローカル・ユーザーをアプリケーション共通ユーザーとして設定します。

116.3.1 REMOVE_LINKプロシージャ

このプロシージャは、データベース・オブジェクトがアプリケーション共通オブジェクトではないことを指定します。アプリケーション・コンテナ内で、アプリケーション共通オブジェクトは複数のコンテナ間で共有されます。

構文

DBMS_PDB_ALTER_SHARING.REMOVE_LINK (
   schema_name  IN VARCHAR2, 
   object_name  IN VARCHAR2, 
   namespace    IN NUMBER, 
   edition_name IN VARCHAR2  DEFAULT NULL);

パラメータ

表116-2 REMOVE_LINKプロシージャのパラメータ

パラメータ 説明

schema_name

データベース・オブジェクトを所有するスキーマの名前。

object_name

データベース・オブジェクトの名前。

namespace

データベース・オブジェクトのネームスペース。

DBA_OBJECTSビューのNAMESPACE列にオブジェクトのネームスペースが表示されます。

edition_name

データベース・オブジェクトのエディションの名前。

参照:

アプリケーション・コンテナへのアプリケーションの移行の詳細は、『Oracle Database管理者ガイド』を参照してください。

116.3.2 SET_DATA_LINKEDプロシージャ

このプロシージャは、データベース・オブジェクトをデータリンク・アプリケーション共通オブジェクトに設定します。アプリケーション・コンテナ内で、データリンク・アプリケーション共通オブジェクトはアプリケーション・ルートのみにデータを格納し、格納されたデータにはそのアプリケーション・コンテナ内のすべてのアプリケーションPDBからアクセスできます。データリンク・アプリケーション共通オブジェクトのデータは、アプリケーション・ルートでのみ変更できます。

このプロシージャを使用して、PDBにインストールされているアプリケーションをアプリケーション・コンテナに移行するときに、データリンク・アプリケーション共通オブジェクトを設定できます。アプリケーションは、アプリケーション・ルートまたはアプリケーションPDBに移行できます。たとえば、Oracle Database 12cリリース1 (12.1) CDBに接続中のPDBにインストールされているアプリケーションを、Oracle Database 12cリリース2 (12.2) CDBのアプリケーション・コンテナに移行できます。

構文

DBMS_PDB_ALTER_SHARING.SET_DATA_LINKED (
   schema_name  IN VARCHAR2, 
   object_name  IN VARCHAR2, 
   namespace    IN NUMBER, 
   edition_name IN VARCHAR2  DEFAULT NULL);

パラメータ

表116-3 SET_DATA_LINKEDプロシージャのパラメータ

パラメータ 説明

schema_name

データベース・オブジェクトを所有するスキーマの名前。

object_name

データベース・オブジェクトの名前。

namespace

データベース・オブジェクトのネームスペース。

DBA_OBJECTSビューのNAMESPACE列にオブジェクトのネームスペースが表示されます。

edition_name

データベース・オブジェクトのエディションの名前。

参照:

アプリケーション・コンテナへのアプリケーションの移行の詳細は、『Oracle Database管理者ガイド』を参照してください。

116.3.3 SET_EXT_DATA_LINKEDプロシージャ

このプロシージャは、データベース・オブジェクトを拡張データリンク・アプリケーション共通オブジェクトに設定します。拡張データリンク・オブジェクトの場合、アプリケーション・コンテナ内の各アプリケーションPDBは、アプリケーション・ルートの共通データを共有しながら特定の独自データを作成できます。したがって、アプリケーション・ルートに格納されるデータのみがすべてのアプリケーションPDBに共通です。

このプロシージャを使用して、PDBにインストールされているアプリケーションをアプリケーション・コンテナに移行するときに、拡張データリンク・アプリケーション共通オブジェクトを設定できます。アプリケーションは、アプリケーション・ルートまたはアプリケーションPDBに移行できます。たとえば、Oracle Database 12cリリース1 (12.1) CDBに接続中のPDBにインストールされているアプリケーションを、Oracle Database 12cリリース2 (12.2) CDBのアプリケーション・コンテナに移行できます。

構文

DBMS_PDB_ALTER_SHARING.SET_EXT_DATA_LINKED (
   schema_name  IN VARCHAR2, 
   object_name  IN VARCHAR2, 
   namespace    IN NUMBER, 
   edition_name IN VARCHAR2  DEFAULT NULL);

パラメータ

表116-4 SET_EXT_DATA_LINKEDプロシージャのパラメータ

パラメータ 説明

schema_name

データベース・オブジェクトを所有するスキーマの名前。

object_name

データベース・オブジェクトの名前。

namespace

データベース・オブジェクトのネームスペース。

DBA_OBJECTSビューのNAMESPACE列にオブジェクトのネームスペースが表示されます。

edition_name

データベース・オブジェクトのエディションの名前。

参照:

アプリケーション・コンテナへのアプリケーションの移行の詳細は、『Oracle Database管理者ガイド』を参照してください。

116.3.4 SET_METADATA_LINKEDプロシージャ

このプロシージャは、データベース・オブジェクトをメタデータリンク・アプリケーション共通オブジェクトに設定します。アプリケーション・コンテナ内で、メタデータリンク・アプリケーション共通オブジェクトは、表などの特定のオブジェクトのメタデータを格納するため、アプリケーション共通オブジェクトを共有するコンテナは同じ構造を持ちますが、データは異なります。

このプロシージャを使用して、PDBにインストールされているアプリケーションをアプリケーション・コンテナに移行するときに、メタデータリンク・アプリケーション共通オブジェクトを設定できます。アプリケーションは、アプリケーション・ルートまたはアプリケーションPDBに移行できます。たとえば、Oracle Database 12cリリース1 (12.1) CDBに接続中のPDBにインストールされているアプリケーションを、Oracle Database 12cリリース2 (12.2) CDBのアプリケーション・コンテナに移行できます。

構文

DBMS_PDB_ALTER_SHARING.SET_METADATA_LINKED (
   schema_name  IN VARCHAR2, 
   object_name  IN VARCHAR2, 
   namespace    IN NUMBER, 
   edition_name IN VARCHAR2  DEFAULT NULL);

パラメータ

表116-5 SET_METADATA_LINKEDプロシージャのパラメータ

パラメータ 説明

schema_name

データベース・オブジェクトを所有するスキーマの名前。

object_name

データベース・オブジェクトの名前。

namespace

データベース・オブジェクトのネームスペース。

DBA_OBJECTSビューのNAMESPACE列にオブジェクトのネームスペースが表示されます。

edition_name

データベース・オブジェクトのエディションの名前。

参照:

アプリケーション・コンテナへのアプリケーションの移行の詳細は、『Oracle Database管理者ガイド』を参照してください。

116.3.5 SET_PROFILE_EXPLICITプロシージャ

このプロシージャは、アプリケーション・コンテナでプロファイルをアプリケーション共通プロファイルとして設定します。このプロシージャは、以前のリリースのプロファイルを現行リリースのアプリケーション・コンテナに移行することを目的としています。

アプリケーション・ルートでアプリケーションのインストール、パッチ適用、アップグレードまたはアンインストール操作を実行するときに、このプロシージャを起動する必要があります。

構文

DBMS_PDB_ALTER_SHARING.SET_PROFILE_EXPLICIT (
   profile_name IN VARCHAR2);

パラメータ

表116-6 SET_PROFILE_EXPLICITプロシージャのパラメータ

パラメータ 説明

profile_name

プロファイルの名前。

参照:

アプリケーション・コンテナへのアプリケーションの移行の詳細は、『Oracle Database管理者ガイド』を参照してください。

116.3.6 SET_ROLE_EXPLICITプロシージャ

このプロシージャは、アプリケーション・コンテナでロールをアプリケーション共通ロールとして設定します。このプロシージャは、以前のリリースのロールを現行リリースのアプリケーション・コンテナに移行することを目的としています。

アプリケーション・ルートでアプリケーションのインストール、パッチ適用、アップグレードまたはアンインストール操作を実行するときに、このプロシージャを起動する必要があります。

構文

DBMS_PDB_ALTER_SHARING.SET_ROLE_EXPLICIT (
   role_name IN VARCHAR2);

パラメータ

表116-7 SET_ROLE_EXPLICITプロシージャのパラメータ

パラメータ 説明

role_name

ロールの名前。

参照:

アプリケーション・コンテナへのアプリケーションの移行の詳細は、『Oracle Database管理者ガイド』を参照してください。

116.3.7 SET_USER_EXPLICITプロシージャ

このプロシージャは、アプリケーション・コンテナでローカル・ユーザーをアプリケーション共通ユーザーとして設定します。

アプリケーション・ルートでアプリケーションのインストール、パッチ適用、アップグレードまたはアンインストール操作を実行するときに、このプロシージャを起動する必要があります。

構文

DBMS_PDB_ALTER_SHARING.SET_USER_EXPLICIT (
   user_name IN VARCHAR2);

パラメータ

表116-8 SET_USER_EXPLICITプロシージャのパラメータ

パラメータ 説明

user_name

ユーザー名。

参照:

アプリケーション・コンテナへのアプリケーションの移行の詳細は、『Oracle Database管理者ガイド』を参照してください。