Gestione delle viste RDS _X$ per le istanze di Oracle DB - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Gestione delle viste RDS _X$ per le istanze di Oracle DB

Potrebbe essere necessario accedere alle tabelle SYS.X$ fisse, accessibili solo daSYS. Per creare SYS.RDS_X$ viste su X$ tabelle idonee, utilizzate le procedure incluse nel rdsadmin.rdsadmin_util pacchetto. Al tuo utente principale viene automaticamente concesso il privilegio SELECT … WITH GRANT OPTION sulle RDS_X$ viste.

Le rdsadmin.rdsadmin_util procedure sono disponibili nelle seguenti versioni del motore di database:

  • 21.0.0.0.ru-2023-10.rur-2023-10.r1e versioni successive di Oracle Database 21c

  • 19.0.0.0.ru-2023-10.rur-2023-10.r1e versioni successive di Oracle Database 19c

Importante

Internamente, il rdsadmin.rdsadmin_util pacchetto crea viste sulle X$ tabelle. Le X$ tabelle sono oggetti di sistema interni che non sono descritti nella documentazione di Oracle Database. Si consiglia di testare viste specifiche nel database non di produzione e di creare viste nel database di produzione solo sotto la guida di Oracle Support.

Elenca le tabelle fisse X$ idonee per l'uso nelle RDS viste _X$

Per elencare le tabelle X$ idonee all'uso nelle RDS_X$ viste, usa la procedura. RDS rdsadmin.rdsadmin_util.list_allowed_sys_x$_views Questa procedura non accetta parametri. Le seguenti istruzioni elencano tutte le X$ tabelle idonee (output di esempio incluso).

SQL> SET SERVEROUTPUT ON SQL> SELECT * FROM TABLE(rdsadmin.rdsadmin_util.list_allowed_sys_x$_views); 'X$BH' 'X$K2GTE' 'X$KCBWBPD' 'X$KCBWDS' 'X$KGLLK' 'X$KGLOB' 'X$KGLPN' 'X$KSLHOT' 'X$KSMSP' 'X$KSPPCV' 'X$KSPPI' 'X$KSPPSV' 'X$KSQEQ' 'X$KSQRS' 'X$KTUXE' 'X$KQRFP'

L'elenco delle X$ tabelle idonee può cambiare nel tempo. Per assicurarti che l'elenco delle tabelle X$ fisse idonee sia aggiornato, esegui nuovamente periodicamentelist_allowed_sys_x$_views.

Creando. SYS RDSVisualizzazioni _X$

Per creare una RDS_X$ vista su una X$ tabella idonea, utilizzare la RDS procedura. rdsadmin.rdsadmin_util.create_sys_x$_view È possibile creare viste solo per le tabelle elencate nell'output dirdsadmin.rdsadmin_util.list_allowed_sys_x$_views. La procedura create_sys_x$_view include i seguenti parametri.

Nome del parametro Tipo di dati Default Campo obbligatorio Descrizione

p_x$_tbl

varchar2

Null

Un nome di X$ tabella valido. Il valore deve essere una delle X$ tabelle riportate dalist_allowed_sys_x$_views.

p_force_creation

Boolean

FALSE

No

Un valore che indica se forzare la creazione di una RDS_X$ vista già esistente per una X$ tabella. Per impostazione predefinita, RDS non creerà una vista se esiste già. Per forzare la creazione, imposta questo parametro suTRUE.

L'esempio seguente crea la SYS.RDS_X$KGLOB vista sulla tabellaX$KGLOB. Il formato per il nome della vista èRDS_X$tablename.

SQL> SET SERVEROUTPUT ON SQL> EXEC rdsadmin.rdsadmin_util.create_sys_x$_view('X$KGLOB'); PL/SQL procedure successfully completed.

La seguente query sul dizionario di dati elenca la vista SYS.RDS_X$KGLOB e ne mostra lo stato. Al tuo utente principale viene automaticamente concesso il privilegio SELECT ... WITH GRANT OPTION su questa visualizzazione.

SQL> SET SERVEROUTPUT ON SQL> COL OWNER FORMAT A30 SQL> COL OBJECT_NAME FORMAT A30 SQL> COL STATUS FORMAT A30 SQL> SET LINESIZE 200 SQL> SELECT OWNER, OBJECT_NAME, STATUS FROM DBA_OBJECTS WHERE OWNER = 'SYS' AND OBJECT_NAME = 'RDS_X$KGLOB'; OWNER OBJECT_NAME STATUS ------------------------------ ------------------------------ ------------------------------ SYS RDS_X$KGLOB VALID
Importante

X$non è garantito che le tabelle rimangano invariate prima e dopo un aggiornamento. RDSfor Oracle elimina e ricrea le RDS_X$ viste sulle X$ tabelle durante l'aggiornamento del motore. Quindi concede il SELECT ... WITH GRANT OPTION privilegio all'utente principale. Dopo un aggiornamento, concedi i privilegi agli utenti del database secondo necessità sulle viste corrispondenti. RDS_X$

ElencoSYS. RDS_X$ visualizzazioni

Per elencare le RDS_X$ viste esistenti, utilizzare la RDS procedura. rdsadmin.rdsadmin_util.list_created_sys_x$_views La procedura elenca solo le viste create dalla proceduracreate_sys_x$_view. L'esempio seguente elenca le X$ tabelle con RDS_X$ viste corrispondenti (output di esempio incluso).

SQL> SET SERVEROUTPUT ON SQL> COL XD_TBL_NAME FORMAT A30 SQL> COL STATUS FORMAT A30 SQL> SET LINESIZE 200 SQL> SELECT * FROM TABLE(rdsadmin.rdsadmin_util.list_created_sys_x$_views); XD_TBL_NAME STATUS ------------------------------ ------------------------------ X$BH VALID X$K2GTE VALID X$KCBWBPD VALID 3 rows selected.

Eliminazione delle visualizzazioni RDS _X$

Per eliminare una SYS.RDS_X$ vista, utilizzate la procedura. RDS rdsadmin.rdsadmin_util.drop_sys_x$_view È possibile eliminare solo le viste elencate nell'output dirdsadmin.rdsadmin_util.list_allowed_sys_x$_views. La procedura drop_sys_x$_view accetta il seguente parametro.

Nome del parametro Tipo di dati Default Campo obbligatorio Descrizione

p_x$_tbl

varchar2

Null

Un nome di tabella X$ fisso valido. Il valore deve essere una delle tabelle X$ fisse riportate dalist_created_sys_x$_views.

L'esempio seguente elimina la RDS_X$KGLOB vista creata nella tabellaX$KGLOB.

SQL> SET SERVEROUTPUT ON SQL> EXEC rdsadmin.rdsadmin_util.drop_sys_x$_view('X$KGLOB'); PL/SQL procedure successfully completed.

L'esempio seguente mostra che la vista SYS.RDS_X$KGLOB è stata eliminata (incluso l'output di esempio).

SQL> SET SERVEROUTPUT ON SQL> COL OWNER FORMAT A30 SQL> COL OBJECT_NAME FORMAT A30 SQL> COL STATUS FORMAT A30 SQL> SET LINESIZE 200 SQL> SELECT OWNER, OBJECT_NAME, STATUS FROM DBA_OBJECTS WHERE OWNER = 'SYS' AND OBJECT_NAME = 'RDS_X$KGLOB'; no rows selected