Gestion des vues RDS _X$ pour les instances de base de données Oracle - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion des vues RDS _X$ pour les instances de base de données Oracle

Vous devrez peut-être accéder à des tables SYS.X$ fixes, qui ne sont accessibles que parSYS. Pour créer des SYS.RDS_X$ vues sur X$ les tables éligibles, utilisez les procédures du rdsadmin.rdsadmin_util package. Votre utilisateur principal obtient automatiquement le privilège d'SELECT … WITH GRANT OPTIONaccès aux RDS_X$ vues.

Les rdsadmin.rdsadmin_util procédures sont disponibles dans les versions de moteur de base de données suivantes :

  • 21.0.0.0.ru-2023-10.rur-2023-10.r1et versions ultérieures d'Oracle Database 21c

  • 19.0.0.0.ru-2023-10.rur-2023-10.r1et versions ultérieures d'Oracle Database 19c

Important

En interne, le rdsadmin.rdsadmin_util package crée des vues sur X$ les tables. Les X$ tables sont des objets système internes qui ne sont pas décrits dans la documentation de la base de données Oracle. Nous vous recommandons de tester des vues spécifiques dans votre base de données hors production et de ne créer des vues dans votre base de données de production que sous la supervision d'Oracle Support.

Liste des tables fixes X$ pouvant être utilisées dans les vues RDS _X$

Pour répertorier les tables X$ pouvant être utilisées dans les RDS_X$ vues, utilisez la RDS procédure rdsadmin.rdsadmin_util.list_allowed_sys_x$_views suivante. Cette procédure n'accepte aucun paramètre. Les déclarations suivantes répertorient tous les X$ tableaux éligibles (échantillon de sortie inclus).

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'

La liste des X$ tables éligibles peut changer au fil du temps. Pour vous assurer que votre liste de tables X$ fixes éligibles est à jour, réexécutez-la list_allowed_sys_x$_views régulièrement.

CréationSYS. RDS_X$ vues

Pour créer une RDS_X$ vue sur une X$ table éligible, suivez la RDS procédurerdsadmin.rdsadmin_util.create_sys_x$_view. Vous ne pouvez créer des vues que pour les tables répertoriées dans la sortie derdsadmin.rdsadmin_util.list_allowed_sys_x$_views. La procédure create_sys_x$_view accepte les paramètres suivants.

Nom du paramètre Type de données Par défaut Obligatoire Description

p_x$_tbl

varchar2

Null

Oui

Nom de X$ table valide. La valeur doit être l'une des X$ tables rapportées parlist_allowed_sys_x$_views.

p_force_creation

Booléen

FALSE

Non

Une valeur indiquant s'il faut forcer la création d'une RDS_X$ vue qui existe déjà pour une X$ table. Par défaut, RDS ne créera pas de vue si elle existe déjà. Pour forcer la création, définissez ce paramètre surTRUE.

L'exemple suivant crée la SYS.RDS_X$KGLOB vue sur la tableX$KGLOB. Le format du nom de la vue estRDS_X$tablename.

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

La requête de dictionnaire de données suivante répertorie la vue SYS.RDS_X$KGLOB et indique son état. Votre utilisateur principal est automatiquement autorisé à accéder SELECT ... WITH GRANT OPTION à cette vue.

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
Important

X$il n'est pas garanti que les tables resteront les mêmes avant et après un surclassement. RDSfor Oracle supprime et recrée les RDS_X$ vues sur les X$ tables lors d'une mise à niveau du moteur. Il accorde ensuite le SELECT ... WITH GRANT OPTION privilège à l'utilisateur principal. Après une mise à niveau, accordez des privilèges aux utilisateurs de la base de données selon les besoins sur les RDS_X$ vues correspondantes.

ListeSYS. RDS_X$ vues

Pour répertorier les RDS_X$ vues existantes, suivez la RDS procédurerdsadmin.rdsadmin_util.list_created_sys_x$_views. La procédure répertorie uniquement les vues créées par la procédurecreate_sys_x$_view. L'exemple suivant répertorie les X$ tables associées aux RDS_X$ vues correspondantes (exemple de sortie inclus).

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.

Supprimer les RDS vues _X$

Pour supprimer une SYS.RDS_X$ vue, suivez la RDS procédure ci-dessousrdsadmin.rdsadmin_util.drop_sys_x$_view. Vous ne pouvez supprimer que les vues répertoriées dans la sortie derdsadmin.rdsadmin_util.list_allowed_sys_x$_views. La procédure drop_sys_x$_view accepte les paramètres suivants.

Nom du paramètre Type de données Par défaut Obligatoire Description

p_x$_tbl

varchar2

Null

Oui

Nom de table X$ fixe valide. La valeur doit être l'une des tables X$ fixes signalées parlist_created_sys_x$_views.

L'exemple suivant supprime la RDS_X$KGLOB vue créée sur le tableauX$KGLOB.

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

L'exemple suivant montre que la vue SYS.RDS_X$KGLOB a été supprimée (exemple de sortie inclus).

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