Comment tronquer la table sys.aud$ sur mon instance Amazon RDS qui exécute Oracle ?

Date de la dernière mise à jour : 25/09/2020

Comment tronquer la table sys.aud$ sur l'instance de base de données Amazon Relational Database Service (Amazon RDS) qui exécute Oracle ?

Solution

Pour tronquer la table sys.aud$, exécutez la commande suivante en tant qu'utilisateur principal :
SQL> exec rdsadmin.rdsadmin_master_util.truncate_sys_aud_table;
Si l'opération aboutit, vous obtenez une sortie similaire à celle-ci :
PL/SQL procedure successfully completed.
SQL> select count(*) from sys.aud$;
 COUNT(*)
----------
         0

Remarque : Le fait de tronquer la table implique que l'instance de base de données RDS peut exécuter la procédure TRUNCATE_SYS_AUD_TABLE en tant qu'utilisateur principal. Les versions Oracle 12.1.0.2.v2 et 11.2.0.4.v6, ainsi que les versions ultérieures, prennent en charge cette opération.

Si la commande précédente échoue, contactez AWS Support pour obtenir de l'aide. Pour déterminer le type d'assistance qu'AWS Support doit fournir, exécutez les commandes suivantes et notez leur résultat :

1.    Exécutez la commande suivante pour déterminer si la procédure TRUNCATE_SYS_AUD_TABLE est disponible sur l'instance de base de données RDS :

SQL> desc rdsadmin.rdsadmin_master_util
Si l'instance de base de données RDS dispose de la procédure TRUNCATE_SYS_AUD_TABLE, vous obtenez un résultat similaire à celui-ci :
FUNCTION IS_DML_ENABLED RETURNS BOOLEAN
PROCEDURE TRUNCATE_SYS_AUD_TABLE
PROCEDURE TRUNCATE_SYS_FGA_LOG_TABLE
2.    Exécutez la commande suivante pour déterminer si le rôle RDS_MASTER_ROLE est disponible sur votre instance de base de données RDS :
SQL> select role from dba_roles where role='RDS_MASTER_ROLE';

Si le rôle RDS_MASTER_ROLE est disponible sur votre instance de base de données RDS, vous obtenez un résultat similaire à celui-ci :

ROLE
--------------------------------------------
RDS_MASTER_ROLE

3.    Vérifiez que l'utilisateur principal est autorisé à exécuter la procédure TRUNCATE_SYS_AUD_TABLE en exécutant dans l'ordre les commandes suivantes :

SQL> select granted_role, grantee, admin_option from dba_role_privs where granted_role='RDS_MASTER_ROLE';

Si l'utilisateur principal est autorisé à exécuter la procédure TRUNCATE_SYS_AUD_TABLE, vous obtenez un résultat similaire à celui-ci :

GRANTED_ROLE         GRANTEE              ADM
-------------------- -------------------- ---
RDS_MASTER_ROLE      SYS                  YES
RDS_MASTER_ROLE      MASTER_USER          NO

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?