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.
Drops the indexes and disable the constraints for both xmltype table (no P_COL_NAME) and xmltype columns
dbms_xmlstorage_manage.disableIndexesAndConstraintS(
owner_name IN VARCHAR2 := sys_context('USERENV','CURRENT_USER'),
table_name IN VARCHAR2,
column_name IN VARCHAR2 DEFAULT NULL,
clear IN BOOLEAN DEFAULT FALSE);
Rebuilds all indexes and enable the
constraints on the P_TABLE_NAME including its child and out of line tables
dbms_xmlstorage_manage.enableIndexesAndConstraints(
owner_name IN VARCHAR2 := sys_context('USERENV','CURRENT_USER'),
table_name IN VARCHAR2,
column_name IN VARCHAR2 DEFAULT NULL);
Routine to get type creation DDLs for all CDB invalid types after PDB plugin
dbms_xmlstorage_manage.getTypeDDL;
exec dbms_xmlstorage_manage.getTypeDDL;
--Please run the following script on your original source 12.1.0.1 CDB
set serveroutput on
set define off
declare stmt clob;
begin
dbms_output.put_line('--Please run the following script on your target CDB');
dbms_output.put_line('define sysuser=&1');
dbms_output.put_line('alter session set container=cdb$root; ');
dbms_output.put_line('alter pluggable database CDB$ROOT close; ');
dbms_output.put_line('alter pluggable database CDB$ROOT open; ');
dbms_output.put_line('alter session set container=CDB$ROOT ; ');
dbms_output.put_line('alter session set events ''64478 trace name context forever''; ');
dbms_output.put_line('alter session set "_oracle_script"=true; ');
dbms_output.put_line('alter session set events ''64478 level 0''; ');
dbms_output.put_line('update sys.obj$ set status = 6 where obj# in (select o.obj# from sys.obj$ o, sys.dba_users u, sys.pdb_inv_type$ p where o.type#=13 and o.owner#=u.user_id and
u.username=p.owner and o.name=p.type_name);');
dbms_output.put_line('commit;');
dbms_output.put_line('alter system flush shared_pool;');
dbms_output.put_line('alter system flush shared_pool;');
dbms_output.put_line('alter system flush shared_pool;');
dbms_output.put_line('alter system flush shared_pool;');
dbms_output.put_line('alter system flush shared_pool;');
dbms_output.put_line('conn &sysuser as sysdba');
dbms_output.put_line('alter session set container=CDB$ROOT ; ');
dbms_output.put_line('@@?/rdbms/admin/utlrp.sql');
dbms_output.put_line('conn &sysuser as sysdba');
dbms_output.put_line('alter session set container=CDB$ROOT ; ');
dbms_output.put_line('@@?/rdbms/admin/utlrp.sql');
dbms_output.put_line('conn &sysuser as sysdba');
dbms_output.put_line('alter session set container=CDB$ROOT ; ');
dbms_output.put_line('@@?/rdbms/admin/utlrp.sql');
dbms_output.put_line('disconnect');
end;
/
PL/SQL procedure successfully completed.
--Please run the following script on your target CDB
define sysuser=&1
alter session set container=cdb$root;
alter pluggable database CDB$ROOT close;
alter pluggable database CDB$ROOT open;
alter session set container=CDB$ROOT ;
alter session set events '64478 trace name context forever';
alter session set "_oracle_script"=true;
alter session set events '64478 level 0';
update sys.obj$ set status = 6 where obj# in (select o.obj# from sys.obj$ o, sys.dba_users u, sys.pdb_inv_type$ p where o.type#=13 and o.owner#=u.user_id and
u.username=p.owner and
o.name=p.type_name);
commit;
alter system flush shared_pool;
alter system flush shared_pool;
alter system flush shared_pool;
alter system flush shared_pool;
alter system flush shared_pool;
conn &sysuser as sysdba
alter session set container=CDB$ROOT ;
@@?/rdbms/admin/utlrp.sql
conn &sysuser as sysdba
alter session set container=CDB$ROOT ;
@@?/rdbms/admin/utlrp.sql
conn &sysuser as sysdba
alter session set container=CDB$ROOT ;
@@?/rdbms/admin/utlrp.sql
disconnect
Creates unique indexes on the ref columns of the given XML type tables or XML type column of a given table
dbms_xmlstorage_manage.indexXMLReferences(
owner_name IN VARCHAR2 := sys_context('USERENV','CURRENT_USER'),
table_name IN VARCHAR2,
column_name IN VARCHAR2 DEFAULT NULL,
index_name IN VARCHAR2);
dbms_xmlstorage_manage.RefPartitionExchangeIn(
owner_name IN VARCHAR2 := sys_context('USERENV','CURRENT_USER'),
parent_table_name IN VARCHAR2,
child_table_name IN VARCHAR2,
parent_exchange_table_name IN VARCHAR2,
child_exchange_table_name IN VARCHAR2,
parent_exchange_stmt IN CLOB,
child_exchange_stmt IN CLOB);
dbms_xmlstorage_manage.refPartitionExchangeOut(
owner_name IN VARCHAR2 := sys_context('USERENV','CURRENT_USER'),
parent_table_name IN VARCHAR2,
child_table_name IN VARCHAR2,
parent_exchange_table_name IN VARCHAR2,
child_exchange_table_name IN VARCHAR2,
parent_exchange_stmt IN CLOB,
child_exchange_stmt IN CLOB);
Renames a collection table from the system generated name to the given table name
dbms_xmlstorage_manage.renameCollectionTable(
owner_name IN VARCHAR2 := sys_context('USERENV','CURRENT_USER'),
tab_name IN VARCHAR2,
col_name IN VARCHAR2 DEFAULT NULL,
xpath IN VARCHAR2,
collection_table_name IN VARCHAR2,
namespaces IN VARCHAR2 DEFAULT NULL);