Oracle DBMS_PDB_ALTER_SHARING
Version 19.3

General Information
Library Note Morgan's Library Page Header
Which has the higher priority in your organization: Deploying a new database or securing the ones you already have? Looking for a website, and resources, dedicated solely to securing Oracle databases? Check out DBSecWorx.
Purpose This package can set a database object to one of the following types of common objects in a PDB: data-linked object, extended data-linked object, or metadata-linked object.

An application can be migrated to CDB$ROOT or to an application PDB. For example, an application can be migrated from an application installed in a PDB plugged into a 12.1 CDB to a PDB in a 12.2 CDB and this same requirement exists when working with 18c and 19c.
AUTHID CURRENT_USER
Dependencies
DBMS_PDB    
Documented Yes
First Available 12.2.0.1
Security Model Owned by SYS with EXECUTE granted to the EXECUTE_CATALOG_ROLE role
Source {ORACLE_HOME}/rdbms/admin/dbmspdb_altshr.sql
Subprograms
 
SET_DATA_LINKED
Sets a database object to a data-linked common object. In a PDB a data-linked common object stores data in the application root that can be accessed and modified by all of the application PDBs in the application container. dbms_pdb_alter_sharing.set_data_linked(
schema_name  IN VARCHAR2,
object_name  IN VARCHAR2,
namespace    IN VARCHAR2,
edition_name IN VARCHAR2 DEFAULT NULL);
exec dbms_pdb_alter_sharing.set_data_linked('C##UWCLASS', 'ACCOUNTS', 1);
 
SET_EXT_DATA_LINKED
Sets a database object to an extended data-linked common object. In a PDB extended data-linked object, each application PDB can create its own specific data while sharing the common data in the application root. Only the data stored in the application root is common for all application PDBs. dbms_pdb_alter_sharing.set_ext_data_linked(
schema_name  IN VARCHAR2,
object_name  IN VARCHAR2,
namespace    IN VARCHAR2,
edition_name IN VARCHAR2 DEFAULT NULL);
exec dbms_pdb_alter_sharing.set_ext_data_linked('C##UWCLASS','ACCOUNTS', 1);
 
SET_METADATA_LINKED
Sets a database object to a metadata-linked common object. In a PDB, metadata-linked common objects store the metadata for specific objects, such as tables, so that the containers that share the application common object have the same structure but different data. dbms_pdb_alter_sharing.set_metadata_linked(
schema_name  IN VARCHAR2,
object_name  IN VARCHAR2,
namespace    IN VARCHAR2,
edition_name IN VARCHAR2 DEFAULT NULL);
exec dbms_pdb_alter_sharing.set_metadata_linked('C##UWCLASS','ACCOUNTS', 1);
 
SET_PROFILE_EXPLICIT
Sets a profile as an application common user in a PDB. This procedure is intended for migrating a user from a previous release to a PDB in the current release and must be invoked in an application install, patch, upgrade, or uninstall operation in an application root. dbms_pdb_alter_sharing.set_profile_explicit(profile_name IN VARCHAR2);
exec dbms_pdb_alter_sharing.set_profile_explicit('C##UWPROF');
 
SET_ROLE_EXPLICIT
Sets a role as an application common user in a PDB. This procedure is intended for migrating a user from a previous release to a PDB in the current release and must be invoked in an application install, patch, upgrade, or uninstall operation in an application root. dbms_pdb_alter_sharing.set_role_explicit(role_name IN VARCHAR2);
exec dbms_pdb_alter_sharing.set_role_explicit('C##UWROLE');
 
SET_SHARING_NONE (renamed in 19c)
Sets sharing=none status on an object in an App Root. It is intended to be used in migration  cases where an application was already installed in a PDB or a non-CDB, where there was no support for application containers

This is a rename of the preexisting REMOVE_LINK procedure.
dbms_pdb_alter_sharing.set_sharing_none(
schema_name  IN VARCHAR2,
object_name  IN VARCHAR2,
namespace    IN NUMBER,
edition_name IN VARCHAR2 DEFAULT NULL);
exec dbms_pdb_alter_sharing.set_sharing_none('C##UWCLASS', 'ACCOUNTS', 1, 'ORA$BASE');
 
SET_USER_EXPLICIT
Sets a user as an application common user in a PDB. This procedure is intended for migrating a user from a previous release to a PDB in the current release and must be invoked in an application install, patch, upgrade, or uninstall operation in an application root. dbms_pdb_alter_sharing.set_user_explicit(user_name IN VARCHAR2);
exec dbms_pdb_alter_sharing.set_user_explicit('C##UWCLASS');

Related Topics
Application Containers
Built-in Functions
Built-in Packages
Container Database
DBMS_PDB
DBMS_PDB_APP_CON
DBMS_PDB_EXEC_SQL
Edition Based Redefinition
What's New In 18c
What's New In 19c

Morgan's Library Page Footer
This site is maintained by Dan Morgan. Last Updated: This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2019 Daniel A. Morgan All Rights Reserved
  DBSecWorx