checktable

지정한 날짜 범위의 테이블 데이터 무결성을 검사합니다. 대상 테이블이 다이제스트 알고리즘이 설정된 암호화 프로파일을 사용하는 경우에만 무결성 검사를 수행하며, HMAC 시그니처를 포함하지 않는 테이블은 검사에서 자동으로 제외됩니다.

명령어 속성

항목설명
명령어 유형드라이버 쿼리
필요 권한관리자
라이선스 사용량해당 없음
병렬 실행미지원
분산 실행수집 노드에서 실행 (mapper)

문법

checktable [from=STR] [to=STR] [trace=BOOL] [TABLE, ...]

옵션

from=STR
무결성 검사 대상 시작 날짜를 yyyyMMdd 포맷으로 지정합니다.
to=STR
무결성 검사 대상 끝 날짜를 yyyyMMdd 포맷으로 지정합니다.
trace=BOOL
t로 설정하면 무결성 검증에 성공한 블록도 함께 출력합니다. 미지정 시 무결성 검증에 실패하거나 손상된 블록만 출력합니다.
TABLE, ...
무결성 검사 대상 테이블 이름을 쉼표로 구분하여 지정합니다. 와일드카드(*)를 지원합니다. 미지정 시 전체 로컬 테이블을 대상으로 검사합니다.

출력 필드

필드타입설명
table문자열테이블 이름
day날짜데이터 파티션 날짜
sk문자열파티션 서브 키 (16진수)
era문자열파티션 에라
block_id32비트 정수블록 식별자. 정상적으로 블록을 읽은 경우에 할당합니다.
last_block_id32비트 정수마지막으로 정상 읽기에 성공한 블록 식별자. 파일 읽기 오류 시에 할당합니다.
signature바이너리블록에 저장된 HMAC 시그니처
hash바이너리블록 데이터로 계산한 HMAC 해시값
msg문자열무결성 검사 결과. valid (정상), modified (변조됨), corrupted (손상됨)

오류 코드

파싱 오류
오류 코드메시지설명
11100권한이 없습니다.관리자 권한이 없는 경우
11101시작 날짜 포맷([from])이 형식(yyyyMMdd)에 맞지 않습니다.from 옵션의 값이 yyyyMMdd 형식이 아닌 경우
11102끝 날짜 포맷([to])이 형식(yyyyMMdd)에 맞지 않습니다.to 옵션의 값이 yyyyMMdd 형식이 아닌 경우
런타임 오류

해당 사항 없음

설명

checktable 명령어는 각 테이블의 데이터 파일을 블록 단위로 읽어 HMAC 시그니처를 검증합니다. 암호화 프로파일에 다이제스트 알고리즘이 설정되어 있고 .key 파일이 존재하는 파티션만 검사 대상이 됩니다.

각 블록의 데이터를 다이제스트 키로 HMAC 해시를 계산하고, 저장된 시그니처와 비교하여 valid, modified, corrupted 중 하나를 msg 필드에 할당합니다. trace 옵션을 지정하지 않으면 modified 또는 corrupted 상태의 블록만 출력합니다.

파일 읽기 도중 I/O 오류나 암호화 오류가 발생하면 해당 파티션의 msg 필드에 corrupted를 할당하고, 마지막으로 정상 처리한 블록 번호를 last_block_id 필드에 할당합니다.

사용 예

  1. 전체 테이블의 무결성 검사

    checktable from=20260101 to=20260317
    
  2. 특정 테이블의 무결성 검사 (상세 모드)

    checktable from=20260301 to=20260317 trace=t firewall_logs
    
  3. 와일드카드를 사용한 테이블 지정

    checktable from=20260101 to=20260131 web_*,app_*
    

호환성

checktable 명령어는 소나 4.0 이전 버전부터 제공되었습니다.