다음으로 로그 기록 pgaudit

PostgreSQL 감사 확장 기능(pgaudit)은 IBM Cloud® Databases for PostgreSQL 배포 환경에서 세션 로깅을 활성화할 수 있게 해줍니다. 감사 로그를 보려면 로그 기록 Cloud Databases 기능을 활성화하고 로그를 로 전송할 수 있는 권한을 부여하기 S2S 위한 인증 IBM® Cloud Logs 생성 단계를 완료했는지 확인하십시오.

세션 로깅

세션 로깅은 기본적으로 해제되어 있습니다. 특정 감사 이벤트 유형 그룹에 대한 모든 활동을 기록하는 세션 로깅 매개변수를 활성화할 수 있습니다. 세션 로깅이 전체 DB 클러스터에 대해 사용으로 설정되며 특정 이벤트 유형에 대해서는 on 또는 off입니다.

이벤트 유형

세션 로깅은 이벤트 유형별로 구성됩니다. 모든 버전에서 지원되는 이벤트 유형은 다음과 같습니다.

  • 함수
  • 역할
  • DDL
  • 읽기
  • 쓰기
  • MISC
  • MISC_SET
  • 없음(로깅을 비활성화하려면)

자세한 정보는 pgaudit의 내용을 참조하십시오.

pgaudit 세션 로깅 활성화

pgaudit 세션 로깅을 활성화하려면 관리자 사용자로 로그인한 후, 적절한 이벤트 매개변수를 지정하여 set_pgaudit_session_logging 함수를 호출하십시오. 세션 로깅은 데이터베이스에서 직접 사용으로 설정되며 API 또는 CLI 액세스는 제공되지 않습니다.

예를 들어, DDL 및 ROLE을 사용으로 설정하려면 다음을 호출할 수 있습니다.

SELECT public.set_pgaudit_session_logging(current_database(),'{ddl, role}');

Current_database() 함수 대신 dbname 를 사용하여 데이터베이스를 지정할 수 있습니다.

pgaudit 사용자 로깅 활성화

pgaudit 사용자 로깅을 활성화하려면 관리자 계정으로 로그인한 후, 적절한 이벤트 매개변수를 지정하여 set_pgaudit_user_logging 함수를 호출하십시오. 데이터베이스의 모든 사용자가 아닌 특정 사용자에 대해 사용자 로깅이 활성화됩니다.

예를 들어 읽기 및 쓰기를 활성화하려면 다음 명령을 사용합니다:

SELECT public.set_pgaudit_user_logging(<CREATED USER>,'{read, write}');

pgaudit 데이터베이스 로깅 활성화

pgaudit 데이터베이스 전용 로깅을 활성화하려면, 관리자 사용자로 로그인한 후 적절한 이벤트 매개변수를 지정하여 set_pgaudit_database_logging 함수를 호출하십시오. 인스턴스에서 여러 데이터베이스를 사용할 수 있는 경우 특정 데이터베이스에 대해 데이터베이스 로깅이 활성화됩니다.

예를 들어 현재_데이터베이스에서 DDL 및 역할을 사용하려면 다음 명령을 사용합니다:

SELECT public.set_pgaudit_database_logging(current_database(),'{ddl, role}');

or

SELECT public.set_pgaudit_database_logging('sampledatabase','{read, write, ddl}');

후속 호출은 기존 구성을 대체합니다. 후속 호출은 추가 항목이 아닙니다. 예를 들어, 이후 SELECT public.set_pgaudit_session_logging('{misc}'); 를 호출하면 misc 만 기록되고, ddlrole 는 비활성화됩니다.

사용 안함 pgaudit

감사 로깅을 비활성화하려면 none 를 지정하여 동일한 함수를 호출하십시오. 예를 들어, 다음과 같습니다.

SELECT public.set_pgaudit_session_logging(current_database(),'{none}');

데이터베이스 활동을 인터럽트하지 않고 이 함수를 호출하는 즉시 감사 레벨 변경이 발생합니다.

감사 로그

감사 이벤트는 다음과 같은 형식으로 IBM® Cloud Logs Routing에 표시됩니다.

LOG: AUDIT: SESSION,1,1,DDL,CREATE TABLE,,,create table f2 (id int);,<not logged>

양식에 대한 자세한 내용은 pgaudit 형식을 참조하세요.

현재 로그 레벨을 보려면 다음 명령을 실행할 수 있습니다.

show pgaudit.log;