감사 로깅에서 사용자 또는 데이터베이스 제외 - Amazon Relational Database Service

감사 로깅에서 사용자 또는 데이터베이스 제외

RDS for PostgreSQL 데이터베이스 로그 파일에서 설명한 대로 PostgreSQL 로그는 스토리지 공간을 사용합니다. pgAudit 확장을 사용하면 추적하는 변경 사항에 따라 로그에 수집된 데이터 양이 다양한 수준으로 늘어납니다. 의 모든 사용자 또는 데이터베이스를 감사할 필요는 없을 수도 있습니다. RDS for PostgreSQL DB 인스턴스

스토리지에 미치는 영향을 최소화하고 불필요하게 감사 레코드를 캡처하지 않도록 사용자 및 데이터베이스를 감사에서 제외할 수 있습니다. 지정된 세션 내에서 로깅을 변경할 수도 있습니다. 다음 예에서는 그 방법을 보여줍니다.

참고

세션 수준의 파라미터 설정은 RDS for PostgreSQL DB 인스턴스에 대한 사용자 지정 DB 파라미터 그룹의 설정보다 우선합니다. 데이터베이스 사용자가 감사 로깅 구성 설정을 우회하지 못하게 하려면 사용자의 권한을 변경해야 합니다.

RDS for PostgreSQL DB 인스턴스가 모든 사용자 및 데이터베이스에 대해 동일한 수준의 활동을 감사하도록 구성되어 있다고 가정하겠습니다. 그런데 사용자 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.logpgaudit.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'