Oracle DBMS_PDB_ALTER_SHARING
Version 23c

General Information
Library Note Morgan's Library Page Header
ACE Director Alum Daniel Morgan, founder of Morgan's Library, is scheduling complimentary technical Workshops on Database Security for the first 30 Oracle Database customers located anywhere in North America, EMEA, LATAM, or APAC that send an email to asra_us@oracle.com. Request a Workshop for your organization today.
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 above.
AUTHID CURRENT_USER
Dependencies
DBMS_PDB    
Documented Yes: Packages and Types Reference
Pragma PRAGMA SUPPLEMENTAL_LOG_DATA(default, UNSUPPORTED);
First Available 12.2
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 (new 23c parameter)
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 NUMBER,
edition_name IN VARCHAR2 DEFAULT NULL,
force        IN BOOLEAN  DEFAULT FALSE);
exec dbms_pdb_alter_sharing.set_data_linked('C##UWCLASS', 'ACCOUNTS', 1);
 
SET_EXT_DATA_LINKED (new 23c parameter)
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 NUMBER,
edition_name IN VARCHAR2 DEFAULT NULL,
force        IN BOOLEAN  DEFAULT FALSE);
exec dbms_pdb_alter_sharing.set_ext_data_linked('C##UWCLASS','ACCOUNTS', 1);
 
SET_METADATA_LINKED (new 23c parameter)
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 NUMBER,
edition_name IN VARCHAR2 DEFAULT NULL,
force        IN BOOLEAN  DEFAULT FALSE);
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 (new 23c parameter)
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,
force        IN BOOLEAN  DEFAULT FALSE);
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_APPLICATION
DBMS_PDB
DBMS_PDB_APP_CON
DBMS_PDB_EXEC_SQL
Edition Based Redefinition
What's New In 21c
What's New In 23c

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-2023 Daniel A. Morgan All Rights Reserved
  DBSecWorx