Background Image

FORUM

far
조회 수 1685 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

 Cent os7

CUBRID Ver.

[cubrid_rel] cubrid 10.5

CUBRID TOOL Ver.

[도움말]-[버전정보] 확인

응용 환경(API)

Apache, jboss


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.


에러 내용 및 재현 방법재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------



안녕하세요, 운영 중인 시스템에서 사용자 정보를 저장하는 테이블에서 특정 부서의 데이터가 삭제된 것으로 보입니다.



- 테이블명: [user_info]

- 누락된 대상: 부서코드 'XXX'에 해당하는 사용자 전체

- 확인 일시: 2025-07-07

- 참고 사항:

  - 해당 부서의 데이터는 이전에 타 페이지(예: 부서별 사용자 조회 화면 등)에서 정상 조회되었음을 확인한 이력이 있습니다.

  - 부서 담당자 측에서는 삭제 작업을 수행하지 않았다고 합니다.

 혹시 CUBRID에서 아래와 같은 사항을 로그 등을 통해 확인할 수 있을지 문의드립니다:

1. 해당 테이블에서 DELETE 혹은 UPDATE가 수행된 내역을 확인할 수 있는 방법

2. 특정 사용자가 실행한 SQL 로그 추적 가능 여부

3. 별도로 활성화된 감사(audit) 로그 기능이 있는 경우 위치 및 확인 방법


4.broker/sql_log 디렉토리 등

- 로그 설정이 활성화되어 있을 경우, 누가 어떤 쿼리를 언제 실행했는지 확인 가능 여부

- 클라이언트 IP, 접속 계정 등의 정보도 남는지 여부


삭제 이력 테이블에는 관련 데이터가 남아 있지 않은 상황인데 만약 SQL로 직접 삭제한 것이 아니라면 실제로 해당 데이터가 과거에 존재했는지를 확인할 수 있는 다른 방법이 있을지 문의드립니다.








  • ?
    큐브02 2025.07.14 09:57

    안녕하세요. 버전 정보에 10.5라고 기재해주셨는데 10.1.5를 말씀하시는 것이 맞으실까요?
    update/delete는 별도 audit 로그로 남거나 하지는 않습니다.
    또한 사용자가 실행한 sql은 모두 $CUBRID/log/broker/sql_log 디렉터리 내에 보관되어 해당 로그에서 확인 하실 수 있으며, sql log에서 말씀하신 클라이언트 IP 등을 확인하실 수 있습니다.
    다만 sql log의 용량이 제한되어 있어 정해진 용량을 초과할 경우 덮어쓰기 되어 원하시는 로그가 없을 가능성도 있습니다.
    sql log는 용량을 초과했을 경우 log.bak 확장자로 1개까지 백업 파일이 생성되나 그 이전 로그는 확인하실 수 없습니다.

    추가로 과거에 데이터가 존재했었는지 확인하실 수 있는 방법은 따로 없으며, 백업을 주기적으로 받고 있으시다면 백업 파일을 통해 확인하는 방법 뿐일 것 같습니다.
    감사합니다.

     

    - 혹시 부서 테이블에 해당 부서 코드 데이터는 남아 있을까요? 부서 테이블과 유저 테이블 사이에 FK 제약관계가 있다면, FK관계로 인해 데이터가 삭제되었을 가능성이 있는지 검토해보시면 좋을 것 같습니다. 

  • ?
    정만영 2025.07.14 10:08

    안녕하세요.
    CUBRID 로그(DDL/DML) 관리 문의 사항별 답변드립니다.

    1. DELETE/UPDATE 이력 확인 방법
    CUBRID에서는 테이블에서 발생한 DELETE 또는 UPDATE 이력만을 직접적으로 “감사 로그”처럼 조회하는 기능은 없지만 로그 관리 방식(방안)을 다음과 같이 안내합니다.
    - 브로커 SQL 로그 활용
    cubrid_broker.conf 설정에서 SQL_LOG 파라미터를 ON으로 설정하면, 애플리케이션 서버(CAS)가 처리한 모든 SQL 문이 $CUBRID/log/broker/sql_log/ 디렉터리의 로그 파일에 기록됩니다. 이때 생성되는 파일명은 <broker_name>_<app_server_num>.sql.log 형식이며, 파일 내용에는 실행 시점의 SQL 문이 순차적으로 남습니다. 이를 통해 특정 테이블에 대해 언제 어떤 UPDATE/DELETE가 실행되었는지 추적할 수 있습니다.
    - Flashback 유틸리티 이용 (11.2 버전 이상 가능)

    이미 실행된 트랜잭션 단위로 INSERT/UPDATE/DELETE를 되돌리거나, 트랜잭션 내역을 시간순으로 조회할 수 있는 cubrid flashback 유틸리티를 사용하면, 특정 시점에 실행된 DML 이력을 확인할 수 있습니다.

     

    2. 특정 사용자의 SQL 로그 추적 가능 여부
    - 브로커 SQL 로그에는 기본적으로 SQL 문만 기록되며, 사용자명이나 클라이언트 IP 정보는 포함되지 않습니다, 다만, DDL 감사 로그(ddl_audit_log)는 CAS 레벨의 DDL 실행 시 IP와 사용자명을 남기므로, DDL에 한해서는 CAS의 DDL Audit 로그 형식을 참고할 수 있습니다.
    - DML에 대해서는 애플리케이션 쪽에서 JDBC의 CUBRIDConnection.toString()를 통해 얻은 CAS 정보(<host>:<port>,<cas id>,<cas pid>)를 애플리케이션 로그에 남기고, 이 CAS ID로 해당 SQL 로그 파일을 찾아 추적하는 방식이 권장됩니다.

    3. 감사(audit) 로그 기능 설정 (11.2 버전 이상 가능)
    -$CUBRID/conf/cubrid.conf 환경설정(DDL 감사 로그 파라미터 설정)
    # 활성화 파라미터: ddl_audit_log = yes
    # 저장 위치: $CUBRID/log/ddl_audit


    4. log/broker/sql_log 디렉터리 활용
    - 로그 내용: 실행된 모든 SQL(SELECT, INSERT, UPDATE, DELETE) 문이 순차적으로 기록됩니다, 장기 실행 쿼리는 별도로 $CUBRID/log/broker/sql_log/*.slow.log에 남길 수 있습니다(SLOW_LOG = ON).
    - 기록되는 정보: 타임스탬프: 로그 행마다 SQL 실행 시점이 기록되고 SQL 텍스트: 실제 실행된 SQL이 남습니다, 클라이언트 IP/사용자명: 기본 브로커 SQL 로그에는 포함되지 않으므로 DDL만 남기는 ddl_audit_log나, 애플리케이션 로그를 함께 활용해야 합니다.
    - 추가 설정: ACCESS_LOG를 ON으로 설정하면 브로커 접속 로그에 클라이언트 IP, 접속 시간, 사용자명 등이 $CUBRID/log/broker/*.access에 남습니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 21 admin 2024.04.23 143800
» 특정 데이터 삭제 여부 및 존재기록 확인문의 2 far 2025.07.14 1685
4207 액티브+트랜잭션 로그를 사용한 복구 방법이 있나요? 1 로키 2025.07.09 1968
4206 function생성 질문 4 wltkd96 2025.07.09 1913
4205 gettransactioninfo 응답 값에 sql_text가 없는 이유 문의드립니다. 1 file ogu 2025.07.09 1879
4204 트리거 조회시 권한 없음 1 큐피 2025.06.26 1904
4203 CUBRID 9.3 & 디비버(DBeaver)에서 테이블 탐색기 없음 관련 문의1 1 빠리 2025.06.26 2460
4202 큐브리드 데이터베이스 디스크 변경 문의사항입니다. 1 난지수 2025.06.25 2078
4201 11.3 서비스 오픈 바인드 변수 처리 시 성능 5 file abc123 2025.06.25 2220
4200 jdbc 연동 오류 문의 2 cuji 2025.06.25 2272
4199 11.3 version tranlist 에서 tran time 이 계속 증가하는 원인 파악 하는 방법 문의 1 abc123 2025.06.24 2125
4198 cubrid 11.4 이후 버전에서 시스템 카탈로그 뷰 조회시 반드시 소문자를 사용 해야 하는데 정책이 변경 된 것인가요? 1 두목원슝 2025.06.13 2538
4197 윈도우를 재 설치 하면서 cubrid를 재 사용 하려고 합니다. mango 2025.06.11 2489
4196 CM 에서 DB 로그인 시 Request is rejected due to invalid token. Please reconnect 에러 발생 1 정원 2025.06.05 2727
4195 cubrid shutdown 현상 1 hyoseon-_- 2025.05.28 2597
4194 테이블 생성시 TIMESTAMP 타입의 컬럼이 생성되지 않습니다 4 file 윤덕현 2025.05.27 2586
4193 숫자형 데이터를 지정된 패턴 형식으로 표시 방법 문의 2 종이 2025.05.22 2361
4192 cubrid cci 함수 실행시 SIGPIPE 오류 가을이아빠 2025.05.22 2290
4191 프로시저 작성시 로그 관련 문의 3 바보똥개 2025.05.22 2197
4190 DB 이중화 설정 1 file 유비 2025.05.21 2441
4189 Rocky 8.10 으로 전환 관련 문의 1 루비 2025.05.07 2636
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 213 Next
/ 213

Contact Cubrid

영업문의 070-4077-2112 / 기술문의 070-4077-2148 / 대표전화 070-4077-2110 / Email. contact_at_cubrid.com
Contact Sales