Innovating today, leading tomorrow

OpenSQL_Technical Guide
[OpenSQL] pgAudit

[OpenSQL] pgAudit

pgAudit 이란?

pgAudit 이란?

postgreSQL에서 제공하는 표준 로깅 기능을 통해 자세한 세션 또는 개체 감사 로깅을 제공합니다.

pgaudit는 특정 기관이나 ISO 인증 감사를 통과하는데 필요한 로그를 생성하는 도구를 제공합니다.

– pgAudit github –

  • pgAudit.log

세션 감사 로깅에 의해 기록되는 명령문 클래스를 지정

명령문 클래스설명
READ소스가 관계 또는 쿼리인 경우 SELECT 및 COPY
WRITE대상이 관계인 경우 INSERT, UPDATE, DELETE, TRUNCATE 및 COPY
ROLE역할 및 권한과 관련된 명령문
DDLROLE 클래스에 포함되지 않은 모든 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.XpostgreSQL 15
pgAudit v1.6.XpostgreSQL 14
pgAudit v1.5.XpostgreSQL 13
pgAudit v1.4.XpostgreSQL 12
pgAudit v1.3.XpostgreSQL 11
pgAudit v1.2.XpostgreSQL 10
pgAudit v1.1.XpostgreSQL 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

  • extension 생성

$ vi $PGDATA/postgresql.conf

shared_preload_libraries = ‘pgaudit’

$ pg_ctl restart
$ psql
$ Create extension pgaudit ;

  • 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;

지금까지 ‘PostgreSQL의 pgAudit’에 관해 알아보았습니다

‘PostgreSQL의 환경 변수(Environment Variables)’를 바로 이어서 확인해보세요!

광고성 정보 수신

개인정보 수집, 활용 목적 및 기간

(주)티맥스티베로의 개인정보 수집 및 이용 목적은 다음과 같습니다.
내용을 자세히 읽어보신 후 동의 여부를 결정해 주시기 바랍니다.

  • 수집 목적: 티맥스티베로 뉴스레터 발송 및 고객 관리
  • 수집 항목: 성함, 회사명, 회사 이메일, 연락처, 부서명, 직급, 산업, 담당업무, 관계사 여부, 방문 경로
  • 보유 및 이용 기간: 동의 철회 시까지

※ 위 개인정보 수집 및 이용에 대한 동의를 거부할 권리가 있습니다.
※ 필수 수집 항목에 대한 동의를 거부하는 경우 뉴스레터 구독이 제한될 수 있습니다.

개인정보의 처리 위탁 정보
  • 업체명: 스티비 주식회사
  • 위탁 업무 목적 및 범위: 광고가 포함된 뉴스레터 발송 및 수신자 관리
 

개인정보 수집 및 이용

개인정보 수집, 활용 목적 및 기간

(주)티맥스티베로의 개인정보 수집 및 이용 목적은 다음과 같습니다. 내용을 자세히 읽어보신 후 동의 여부를 결정해 주시기 바랍니다.

  • 수집 목적: 티맥스티베로 뉴스레터 발송 및 고객 관리
  • 수집 항목: 성함, 회사명, 회사 이메일, 연락처, 부서명, 직급, 산업, 담당업무, 관계사 여부, 방문 경로
  • 보유 및 이용 기간: 동의 철회 시까지

※ 위 개인정보 수집 및 이용에 대한 동의를 거부할 권리가 있습니다.
※ 필수 수집 항목에 대한 동의를 거부하는 경우 뉴스레터 구독이 제한될 수 있습니다.

개인정보의 처리 위탁 정보

  • 업체명: 스티비 주식회사
  • 위탁 업무 목적 및 범위: 광고가 포함된 뉴스레터 발송 및 수신자 관리
  •