如何在运行 Oracle 的 Amazon RDS 数据库实例上截断 sys.aud$ 表?

1 分钟阅读
0

我如何在运行 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 数据库实例的数据库管理员常见任务

AWS 官方
AWS 官方已更新 4 年前