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 OPTION
accè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.r1
et versions ultérieures d'Oracle Database 21c -
19.0.0.0.ru-2023-10.rur-2023-10.r1
et 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 |
---|---|---|---|---|
|
varchar2 |
Null |
Oui |
Nom de |
|
Booléen |
FALSE |
Non |
Une valeur indiquant s'il faut forcer la création d'une |
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 |
---|---|---|---|---|
|
varchar2 |
Null |
Oui |
Nom de table |
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