我如何在运行 Oracle 的 Amazon Relational Database Service (Amazon RDS) 数据库实例上截断 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 数据库实例可以以主用户身份运行 TRUNCATE_SYS_AUD_TABLE 程序的表格。Oracle 版本 12.1.0.2.v2 和 11.2.0.4.v6 以及后续版本支持此操作。
如果上述命令不成功,则联系 AWS Support 寻求帮助。要确定 AWS Support 需要提供哪种类型的帮助,请运行以下命令并记录它们的输出:
1. 运行以下命令以确定 TRUNCATE_SYS_AUD_TABLE 程序是否可用于您的 RDS 数据库实例:
SQL> desc rdsadmin.rdsadmin_master_util
如果您的 RDS 数据库实例具有
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 数据库实例:
SQL> select role from dba_roles where role='RDS_MASTER_ROLE';
如果 RDS_MASTER_ROLE 角色可用于您的 RDS 数据库实例,您会收到以下类似输出:
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
相关信息
Amazon RDS 上的 Oracle
Oracle 数据库实例的数据库管理员常见任务