로깅 동작 구성

pgAudit 로깅 동작을 구성하려면 pgaudit.log 플래그 또는 pgaudit.role 플래그를 설정합니다.

  • pgaudit.log를 설정하여 세션 로깅을 사용 설정하고 구성합니다. 인스턴스, 데이터베이스 또는 역할에 이 플래그를 설정하여 pgAudit에서 로깅하는 작업의 범위를 정의할 수 있습니다. pgAudit에서 로깅하는 작업 유형을 정의하는 값으로 플래그를 설정합니다.

  • pgaudit.role를 설정하여 특정 관계에 영향을 미치는 문을 로깅하는 객체 로깅을 사용 설정하고 구성합니다. 이 플래그를 역할 이름으로 설정한 다음 로깅할 특정 객체에 대한 문 액세스 권한을 부여합니다. 명령문 액세스에는 SELECT, INSERT, UPDATE, and DELETE가 포함됩니다. pgAudit은 모든 사용자가 실행한 액세스 및 객체의 조합과 일치하는 모든 작업을 로깅합니다.

다음 섹션에서는 pgAudit 로깅 동작을 설정하는 옵션을 보여주는 예를 제공합니다.

확장 프로그램의 추가 기능은 pgAudit 문서를 참조하세요.

인스턴스의 모든 데이터베이스에 대한 세션 감사 로깅 구성

인스턴스의 모든 데이터베이스에 대해 감사를 구성하려면 인스턴스 수준에서 pgaudit.log 플래그를 설정합니다.

예를 들면 다음과 같습니다.

  • 인스턴스의 모든 데이터베이스에 대한 모든 작업의 감사를 사용 설정하려면 다음 단계를 따르세요.
    gcloud alloydb instances update my-instance \
        --database-flags pgaudit.log=all[,flag2=value2...] \
        --region=us-central1 \
        --cluster=my-cluster \
        --project=my-project
    
  • 인스턴스의 모든 데이터베이스에 대해 읽기 및 쓰기 작업에 대해서만 감사를 사용 설정하려면 다음 단계를 따르세요.
    gcloud alloydb instances update my-instance \
        --database-flags=^:^pgaudit.log=read,write[:flag2=value2...] \
        --region=us-central1 \
        --cluster=my-cluster \
        --project=my-project
    

플래그 값 내에서 쉼표 문자를 사용할 수 있는 대체 구분 기호 구문을 사용합니다.

데이터베이스 플래그 구성에 대한 자세한 내용은 데이터베이스 플래그 구성을 참고하세요.

특정 데이터베이스의 세션 감사 로깅 구성

데이터베이스 수준에서 pgaudit.log 플래그를 설정하여 특정 데이터베이스에 대해 감사를 구성할 수 있습니다.

예를 들어 데이터베이스 finance에 대해 읽기/쓰기 감사를 사용 설정하려면 다음을 실행합니다.

finance=> ALTER DATABASE finance SET pgaudit.log = 'read,write';

단일 사용자의 세션 감사 로깅 구성

역할 수준별로 pgaudit.log을 설정하여 특정 사용자에 대해 감사를 사용 설정할 수 있습니다.

예를 들어 Alice 사용자가 실행하는 모든 데이터베이스 작업에 대한 감사를 설정하려면 다음을 실행합니다.

finance=> ALTER ROLE alice SET pgaudit.log = 'all';

객체 감사 로깅 구성

관계에 대한 감사는 특정 데이터베이스에 대한 감사 범위보다 좁습니다. 관계에 대해 감사를 수행할 때는 시스템에서 고유한 감사 역할이 pgaudit.role 매개변수에 할당됩니다. 이 작업은 이 역할에 부여된 객체 또는 관계를 로깅합니다.

예를 들면 다음과 같습니다.

  • 직원 데이터베이스 내 급여 관계의 모든 SELECT 쿼리에 대해 감사를 구성하려면 다음을 실행합니다.
    employee=> CREATE ROLE auditor WITH NOLOGIN;
    employee=> ALTER DATABASE employee SET pgaudit.role = 'auditor';
    employee=> GRANT SELECT ON salary TO auditor;
    

또한 특정 관계에 대해 열 하위 집합을 감사할 수 있습니다.

예를 들면 다음과 같습니다.

  • incometax_status 열에 salary 관계에서 액세스할 때만 감사 로깅이 발생하도록 구성하려면 다음을 실행합니다.
    employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;