从审计日志记录中排除用户或数据库 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

从审计日志记录中排除用户或数据库

RDS for PostgreSQL 数据库日志文件中所述,PostgreSQL 日志会消耗存储空间。使用 pgAudit 扩展会在不同程度上增加日志中收集的数据量,具体取决于您跟踪的更改。您可能不需要审计 RDS for PostgreSQL 数据库实例中的每个用户或数据库。

为了最大限度地减少对存储的影响,避免不必要地捕获审计记录,您可以将用户和数据库排除在审计范围之外。您还可以在给定会话中更改日志记录。下面的示例向您演示如何操作。

注意

会话级别的参数设置优先于 RDS for PostgreSQL 数据库实例的自定义数据库参数组中的设置。如果您不希望数据库用户绕过您的审计日志记录配置设置,请务必更改其权限。

假设您的 RDS for PostgreSQL 数据库实例配置为审计所有用户和数据库的相同级别的活动。然后,您决定不想对用户 myuser 进行审计。您可以使用以下 SQL 命令对 myuser 关闭审计功能。

ALTER USER myuser SET pgaudit.log TO 'NONE';

然后,您可以使用以下查询来检查 pgaudit.loguser_specific_settings 列,以确认该参数已设置为 NONE

SELECT usename AS user_name, useconfig AS user_specific_settings FROM pg_user WHERE usename = 'myuser';

您将看到如下输出。

user_name | user_specific_settings -----------+------------------------ myuser | {pgaudit.log=NONE} (1 row)

在给定用户与数据库的会话期间,您可以使用以下命令对此用户关闭日志记录功能。

ALTER USER myuser IN DATABASE mydatabase SET pgaudit.log TO 'none';

使用以下查询,对于特定用户和数据库组合检查 pgaudit.log 的设置列。

SELECT usename AS "user_name", datname AS "database_name", pg_catalog.array_to_string(setconfig, E'\n') AS "settings" FROM pg_catalog.pg_db_role_setting s LEFT JOIN pg_catalog.pg_database d ON d.oid = setdatabase LEFT JOIN pg_catalog.pg_user r ON r.usesysid = setrole WHERE usename = 'myuser' AND datname = 'mydatabase' ORDER BY 1, 2;

您将看到类似以下内容的输出。

user_name | database_name | settings -----------+---------------+------------------ myuser | mydatabase | pgaudit.log=none (1 row)

myuser 关闭审计后,您决定不想跟踪对 mydatabase 的更改。您可以使用以下命令对该特定数据库关闭审计。

ALTER DATABASE mydatabase SET pgaudit.log to 'NONE';

然后,使用以下查询检查 database_specific_settings 列,以确认 pgaudit.log 已设置为 NONE。

SELECT a.datname AS database_name, b.setconfig AS database_specific_settings FROM pg_database a FULL JOIN pg_db_role_setting b ON a.oid = b.setdatabase WHERE a.datname = 'mydatabase';

您将看到如下输出。

database_name | database_specific_settings ---------------+---------------------------- mydatabase | {pgaudit.log=NONE} (1 row)

要将 myuser 的设置恢复为默认设置,请使用以下命令:

ALTER USER myuser RESET pgaudit.log;

要将数据库的设置恢复为默认设置,请使用以下命令。

ALTER DATABASE mydatabase RESET pgaudit.log;

要将用户和数据库重置为默认设置,请使用以下命令。

ALTER USER myuser IN DATABASE mydatabase RESET pgaudit.log;

还可以通过将 pgaudit.log 设置为 pgaudit.log 参数的其他允许值之一,将特定事件捕获到日志中。有关更多信息,请参阅 pgaudit.log 参数允许的设置列表

ALTER USER myuser SET pgaudit.log TO 'read'; ALTER DATABASE mydatabase SET pgaudit.log TO 'function'; ALTER USER myuser IN DATABASE mydatabase SET pgaudit.log TO 'read,function'