Oracle を実行している Amazon RDS DB インスタンスで sys.aud$ テーブルを削除するにはどうしたらいいですか?

最終更新日: 2020 年 9 月 25 日

Oracle を実行しているAmazon Relational Database Service (Amazon RDS) DB インスタンスで sys.aud$ テーブルを削除するにはどうしたらいいですか?

解決方法

sys.aud$ テーブルを削除するには、マスターユーザーとして次のコマンドを実行します。
SQL> exec rdsadmin.rdsadmin_master_util.truncate_sys_aud_table;
このプロシージャーが正常に完了すると、次のような出力が表示されます。
PL/SQL procedure successfully completed.
SQL> select count(*) from sys.aud$;
 COUNT(*)
----------
         0

注: テーブルの削除には、RDS DB インスタンスで、TRUNCATE_SYS_AUD_TABLE プロシージャーをマスターユーザーとして実行する必要があります。この操作は、Oracle バージョン 12.1.0.2.v2 と 11.2.0.4.v6、および それ以降のバージョンでサポートされています。

前出のコマンドが失敗する場合は、AWS サポートにお問い合わせください。AWS がご提供すべきサポートの内容を確認するために、次のコマンドを実行し、その出力結果を記録しておいてください。

1.    次のコマンドを実行しTRUNCATE_SYS_AUD_TABLEプロシージャーが、ご使用の RDS DB インスタンスで利用可能かを確認してください。

SQL> desc rdsadmin.rdsadmin_master_util
RDS DB インスタンスにおいて TRUNCATE_SYS_AUD_TABLE プロシージャーが有効な場合は、次のような出力結果が表示されます。
FUNCTION IS_DML_ENABLED RETURNS BOOLEAN
PROCEDURE TRUNCATE_SYS_AUD_TABLE
PROCEDURE TRUNCATE_SYS_FGA_LOG_TABLE
2.    次のコマンドを実行し、 RDS_MASTER_ROLE ロールが、ご使用の RDS DB インスタンスで利用可能かを確認してください。
SQL> select role from dba_roles where role='RDS_MASTER_ROLE';

RDS_MASTER_ROLE ロールが RDS DB インスタンスで利用可能な場合、次のような出力結果が表示されます。

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

3.    次のコマンドを実行し、マスターユーザーに TRUNCATE_SYS_AUD_TABLE プロシージャーを実行する権限があるか確認してください。

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

マスターユーザーに TRUNCATE_SYS_AUD_TABLE プロシージャを実行する権限がある場合、次のような出力結果が表示されます。

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

この記事は役に立ちましたか?


請求に関するサポートまたは技術的なサポートが必要ですか?