[sql] 로그 기록 방법과 설정 방법

SQL 데이터베이스는 중요한 정보를 저장하는 데 사용되므로 데이터의 변경 이력을 추적할 필요가 있습니다. 사용자가 누구든지 데이터베이스에 어떤 변경을 가했는지 추적하기 위해 SQL 로그를 기록하는 것이 중요합니다. 이 포스트에서는 SQL 로그를 기록하는 방법과 설정하는 방법을 살펴보겠습니다.

로그 기록 방법

1. 테이블 생성

가장 간단한 로깅 방법은 변경 이력을 저장할 새로운 테이블을 생성하는 것입니다. 이 테이블에는 데이터베이스에 가해진 변경에 대한 정보를 저장합니다. 이 테이블에는 변경 이전 값, 변경 이후 값, 로그를 기록한 시간 등의 정보가 포함될 수 있습니다.

CREATE TABLE ChangeLog (
  id INT PRIMARY KEY AUTO_INCREMENT,
  table_name VARCHAR(100),
  column_name VARCHAR(100),
  old_value TEXT,
  new_value TEXT,
  action_time TIMESTAMP
);

2. 트리거 활용

데이터베이스 트리거를 사용하여 데이터베이스 상의 특정 이벤트가 발생할 때마다 로그를 기록할 수 있습니다. 예를 들어, INSERT, UPDATE, DELETE 등의 작업이 발생할 때마다 로그를 남길 수 있습니다.

CREATE TRIGGER log_trigger
AFTER INSERT ON target_table
FOR EACH ROW
INSERT INTO ChangeLog (table_name, column_name, old_value, new_value, action_time)
VALUES ('target_table', 'column1', NULL, NEW.column1, NOW());

설정 방법

1. 데이터베이스 로그 활성화

대다수의 데이터베이스 시스템은 로깅을 기본적으로 활성화하고 있지만, 이벤트 로그를 통해 변경 이력을 추적할 수 있도록 로깅을 활성화하는 옵션을 설정할 수 있습니다.

2. 로그 수준 설정

로깅 레벨을 설정하여 로그의 세부 수준을 제어할 수 있습니다. 로깅 레벨을 설정함으로써 필요한 로그 메시지만 기록할 수 있습니다.

이러한 설정은 데이터베이스 시스템에 따라 다르며, 각 데이터베이스의 관리자 가이드를 참조하여 설정할 수 있습니다.

SQL 로그를 기록하고 설정하는 방법에 대한 이해는 데이터베이스의 안정성과 신뢰성을 높일 수 있습니다. 데이터베이스 변경 이력을 추적할 수 있게 되면 데이터베이스 관리 및 보안에 도움이 될 것입니다.

참고자료:

  1. MySQL 공식 문서
  2. PostgreSQL 공식 문서