Background Image

FORUM

far
조회 수 1328 추천 수 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에 남습니다.


  1. CUBRID 사용자를 위한 DBeaver 도구 출시 안내

    Date2024.04.23 Byadmin Views132686
    read more
  2. Public 계정권한 문의드립니다( 보안성 검토

    Date2025.09.02 Byciel Views313
    Read More
  3. 사용자에게 그룹 매핑 시 상속

    Date2025.08.27 By킴짱가 Views414
    Read More
  4. 사용자(USER)에게 GROUP을 설정하고 싶어요

    Date2025.08.21 By킴짱가 Views453
    Read More
  5. 특정 테이블의 데이터를 담은 CSV 파일을 loaddb 로 import 하는 방법

    Date2025.08.20 Bytndus Views425
    Read More
  6. 매니저 연결후 connection reset

    Date2025.08.12 Byciel Views463
    Read More
  7. 중복 컬럼 문의

    Date2025.08.12 By깐노 Views321
    Read More
  8. Cubrid 11.4 와 manager 11.1 연결되나요?

    Date2025.08.11 Byciel Views397
    Read More
  9. unloaddb 실행시 오브젝트파일 0byte 생성

    Date2025.08.09 Byciel Views386
    Read More
  10. 프로토콜 문서 관련하여 문의 드립니다.

    Date2025.08.08 By박정현 Views325
    Read More
  11. Python3.1x 버전에서 CUBRID-Python wheel 패키지 드라이버 빌드하기

    Date2025.08.05 ByHiCLASS Views389
    Read More
  12. 어드민 툴 오류 (Software caused connection abort: recv failed)

    Date2025.07.24 By테스트맨 Views1086
    Read More
  13. jdbc utc 설정

    Date2025.07.18 Byhellosh Views1376
    Read More
  14. tranlist 확인시 sql_id 는 empty 이고 trantime 은 계속늘어나는 현상

    Date2025.07.17 By로컬백업 Views1353
    Read More
  15. killtran 이후 cubrid.jdbc.driver.CUBRIDException: A database has not been restarted.

    Date2025.07.16 By로컬백업 Views1552
    Read More
  16. cubrind tranlist tran time 관련

    Date2025.07.16 By로컬백업 Views1276
    Read More
  17. cubrid broker status 관련

    Date2025.07.16 By로컬백업 Views1386
    Read More
  18. Cannot communicate with the broker 에러

    Date2025.07.15 By로컬백업 Views1336
    Read More
  19. 특정 데이터 삭제 여부 및 존재기록 확인문의

    Date2025.07.14 Byfar Views1328
    Read More
  20. 액티브+트랜잭션 로그를 사용한 복구 방법이 있나요?

    Date2025.07.09 By로키 Views1601
    Read More
  21. function생성 질문

    Date2025.07.09 Bywltkd96 Views1579
    Read More
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