DB

Percona MySQL 감사로그 설정

구로모논 2025. 12. 28. 19:49

8.4 기준

컴포넌트 설치(MySQL 클라이언트)

-- 컴포넌트 설치
INSTALL COMPONENT 'file://component_audit_log_filter';

-- 설치 확인
SELECT * FROM mysql.component;

-- 감사 로그 설정 확인
SHOW VARIABLES LIKE 'audit_log%';

-- 감사 로그 파일 위치
SELECT @@datadir;

 

설정

-- 설치 후에 다음을 실행
-- DB 툴에서는 실행되지 않고, MySQL 직접 접근하여 실행해야 함.
SOURCE /usr/share/mysql/audit_log_filter_linux_install.sql;
-- 다음 내용부터는 DB툴에서 실행 가능
SET @filter_json = '{
	"filter": {
		"class": {
			"name": "connection"
		}
	}
}';
-- log에 남길 내용 설정. 아래는 연결할 때 로그를 남기겠다는 설정
SELECT audit_log_filter_set_filter('log_connections', @filter_json);
-- 연결 시, 로그를 남길 사용자 설정. 아래는 모든 사용자를 기록하겠다는 의미.
SELECT audit_log_filter_set_user('%', 'log_connections');
-- 설정 확인
SELECT * FROM mysql.audit_log_filter;
SELECT * FROM mysql.audit_log_user;

 

로그 파일 내용(예시)

xml 형식으로 구성되어 있는데 NAME이라는 항목을 우선적으로 보면 된다.
 

NAME 별 설명

  • <NAME>Pre Authenticate</NAME>

→ 아직 로그인 전, 핸드쉐이크 단계 (USER 비어있음)

  • <NAME>Connect</NAME>

실제 로그인 성공

  • <NAME>Disconnect</NAME>

→ 그 커넥션이 끊긴 시점

→ 실제 접속 기록은 NAME이 Connect인 것만 확인하면 된다.

'DB' 카테고리의 다른 글

Percona MySQL TDE 설정  (0) 2025.12.28
[DB] 풀 인덱스 스캔, 인덱스 전용 스캔(커버링 인덱스)  (0) 2025.12.28
Database Table Lock  (0) 2025.04.14
[MySQL] 테이블 파티셔닝  (0) 2025.04.14