Background Image

FORUM

far
조회 수 1686 추천 수 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 143825
4248 JDBC에서 SEQUENCE OF 타입의 컬럼 값을 조회하는 방법 문의 새옹지마 2025.12.11 56
4247 DB 운영중 LOCK 관련 이슈가 있어 문의 드립니다. 1 file 용원아빠 2025.12.11 56
4246 spring boot 3.5.8 + cubrid 11.4 JPA설정 문의 2 뵤라 2025.12.10 69
4245 slow.log 파일에서 'server execution statistics' 출력 조건이 궁금합니다. 5 file ogu 2025.12.02 227
4244 Cubrid 11.4의 컬럼명과 도움말의 컬럼명이 다릅니다. 1 엘L 2025.11.28 214
4243 CUBRIDException: The argument is invalid. 3 큐피 2025.11.17 235
4242 CUBRIDException: POSIX external storage error: /ces_029... Permission denied 3 큐피 2025.11.10 241
4241 캐릭터셋 변경 질문드립니다. 1 file 엘L 2025.10.29 292
4240 특정 사용자 ID 에 대한 에러 문의 1 헤이선 2025.10.28 405
4239 [긴급] DB 조회 문의 1 헤이선 2025.10.23 553
4238 dba 계정 생성 방법 3 큐피 2025.10.22 401
4237 오류 메시지 확인 요청 1 file 헤이선 2025.10.22 440
4236 Heartbeat 구성으로 Slave 로 구동되어 있는 상태, master 올릴 때 데이터 정합성 문제 1 tndus 2025.10.20 533
4235 cubrid 11.3.4 HA 장애(비정상 DWON) 후 복구 1 서커스 2025.10.17 527
4234 레플리카 오류 문의 1 file 헤이선 2025.10.15 527
4233 스트링타입을 타임스탬프로 변경시 오류가 발생합니다 1 윤덕현 2025.09.17 570
4232 slave 조인이 불가능한 상태에서 재구축하려고 합니다 2 cubrid1shot 2025.09.13 662
4231 JDBC 다른 유저에 생성된 Table plan 조회 문의 3 lys 2025.09.12 696
4230 큐브리드 admin 데이터 가져오기(csv) 시, 구분자를 변경할 수 있나요? 1 tndus 2025.09.08 769
4229 CUBRID HA구성시 SLAVE의 복제 보관 로그 삭제 방법 6 wodud0170 2025.09.08 694
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