About
home
Tmax OpenSQL
home
💻

37. pgAudit

작성자
KMS

pgAudit 이란?

pgAudit 이란?

postgreSQL에서 제공하는 표준 로깅 기능을 통해 자세한 세션 또는 개체 감사 로깅을 제공합니다.
pgaudit는 특정 기관이나 ISO 인증 감사를 통과하는데 필요한 로그를 생성하는 도구를 제공합니다.
- pgAudit github -
pgAudit.log
세션 감사 로깅에 의해 기록되는 명령문 클래스를 지정
명령문 클래스
설명
READ
소스가 관계 또는 쿼리인 경우 SELECT 및 COPY
WRITE
대상이 관계인 경우 INSERT, UPDATE, DELETE, TRUNCATE 및 COPY
ROLE
역할 및 권한과 관련된 명령문
DDL
ROLE 클래스에 포함되지 않은 모든 DDL
MISC
기타 명령 ( 예 : DISCARD, FETCH, CHECKPOINT, VACUUM, SET )
MISC_SET
기타 SET 명령 ( 예 : SET ROLE )
ALL
위에 모든 항목을 포함
pgAudit.log_catalog
명령문의 모든 관계가 pg_catalog에 있는 경우 세션 로깅이 활성화되어야 함을 지정
이 설정을 비활성화하면 카탈로그를 많이 쿼리하는 psql 및 pgAdmin과 같은 도구의 로그 노이즈가 줄어듬
pgAudit.log_client
메시지가 psql 과 같은 클라이언트 프로세스에 표시되는지 여부를 지정
이 설정은 일반적으로 비활성화된 상태로 두어야 하지만 디버깅 또는 기타 목적에 유용할 수 있음 ( 기본값은 OFF )
pgAudit.log_level
로그 항목에 사용할 로그 수준을 지정
이 설정은 회귀 테스트에 사용되며 테스트 또는 기타 목적으로 최종 사용자에게 유용할 수도 있음 ( 기본값은 log )
pgAudit.log_parameter
감사 로깅이 명령문과 함께 전달된 매개변수를 포함해야 함을 지정
매개변수가 있으면 명령문 텍스트 뒤에 CSV 형식으로 포함 ( 기본값은 OFF )
pgAudit.log_relation
세션 감사 로깅이 SELECT 또는 DML 문에서 참조되는 각 관계( TABLE,VIEW 등 )에 대해 별도의 로그 항목을 생성 해야하는지 여부를 지정
pgAudit.log_statement_once
명령문/하위 명령문 조합의 첫 번째 로그 항목 또는 모든 항목과 함께 명령문 텍스트 및 매개변수를 로깅에 포함할지 여부를 지정
pgAudit.log_role
개체 감사 로깅에 사용할 마스터 역할을 지정
여러 그룹이 감사로깅의 다양하게 담당 가능 ( 기본 값은 NULL )

설치 요구사항

pgAudit과 호환 되는 postgreSQL 버전
pgAudit 버전
PostgreSQL 버전
pgAudit v1.7.X
postgreSQL 15
pgAudit v1.6.X
postgreSQL 14
pgAudit v1.5.X
postgreSQL 13
pgAudit v1.4.X
postgreSQL 12
pgAudit v1.3.X
postgreSQL 11
pgAudit v1.2.X
postgreSQL 10
pgAudit v1.1.X
postgreSQL 9.6
pgAudit 관련 패키지
centos-release-scl-rh
llvm-toolset-7-clang
openssl-devel

설치 요구사항

RPM 설치
-- rpm 주소 http://mirror.centos.org/centos/7/extras/x86_64/Packages/centos-release-scl-rh-2-3.el7.centos.noarch.rpm http://mirror.centos.org/centos/7/sclo/x86_64/rh/Packages/l/llvm-toolset-7-clang-5.0.1-4.el7.x86_64.rpm http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-devel-1.0.2k-19.el7.x86_64.rpm # rpm -ivh http://mirror.centos.org/centos/7/extras/x86_64/Packages/centos-release-scl-rh-2-3.el7.centos.noarch.rpm # rpm -ivh http://mirror.centos.org/centos/7/sclo/x86_64/rh/Packages/l/llvm-toolset-7-clang-5.0.1-4.el7.x86_64.rpm # rpm -ivh http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-devel-1.0.2k-19.el7.x86_64.rpm # rpm -ivh pgaudit16_14-1.6.2-1.rhel7.x86_64.rpm
SQL
복사
extension 생성
$ vi $PGDATA/postgresql.conf ... shared_preload_libraries = 'pgaudit' ... $ pg_ctl restart $ psql $ Create extension pgaudit ;
SQL
복사
pgAudit 적용 및 확인
$ SELECT name,setting FROM pg_settings WHERE name LIKE 'pgaudit%'; $ set pgaudit.log = 'read,write,ddl'; $ CREATE TABLE table1 (id int, name text); $ INSERT INTO table1 (id, name) values (3, 'name3'); $ SELECT * FROM table1;
SQL
복사
지금까지 ‘PostgreSQL의 pgAudit’에 관해 알아보았습니다
‘PostgreSQL의 환경 변수(Environment Variables)’를 바로 이어서 확인해보세요!

자유롭게 댓글을 남겨주세요