Background Image

FORUM

far
조회 수 1326 추천 수 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 132664
4225 Public 계정권한 문의드립니다( 보안성 검토 1 ciel 2025.09.02 313
4224 사용자에게 그룹 매핑 시 상속 1 킴짱가 2025.08.27 412
4223 사용자(USER)에게 GROUP을 설정하고 싶어요 4 킴짱가 2025.08.21 453
4222 특정 테이블의 데이터를 담은 CSV 파일을 loaddb 로 import 하는 방법 1 tndus 2025.08.20 424
4221 매니저 연결후 connection reset 3 ciel 2025.08.12 463
4220 중복 컬럼 문의 1 file 깐노 2025.08.12 321
4219 Cubrid 11.4 와 manager 11.1 연결되나요? 3 ciel 2025.08.11 394
4218 unloaddb 실행시 오브젝트파일 0byte 생성 6 ciel 2025.08.09 386
4217 프로토콜 문서 관련하여 문의 드립니다. 6 박정현 2025.08.08 323
4216 Python3.1x 버전에서 CUBRID-Python wheel 패키지 드라이버 빌드하기 file HiCLASS 2025.08.05 389
4215 어드민 툴 오류 (Software caused connection abort: recv failed) 2 file 테스트맨 2025.07.24 1086
4214 jdbc utc 설정 1 hellosh 2025.07.18 1375
4213 tranlist 확인시 sql_id 는 empty 이고 trantime 은 계속늘어나는 현상 3 로컬백업 2025.07.17 1352
4212 killtran 이후 cubrid.jdbc.driver.CUBRIDException: A database has not been restarted. 1 로컬백업 2025.07.16 1552
4211 cubrind tranlist tran time 관련 2 로컬백업 2025.07.16 1275
4210 cubrid broker status 관련 4 로컬백업 2025.07.16 1383
4209 Cannot communicate with the broker 에러 로컬백업 2025.07.15 1336
» 특정 데이터 삭제 여부 및 존재기록 확인문의 2 far 2025.07.14 1326
4207 액티브+트랜잭션 로그를 사용한 복구 방법이 있나요? 1 로키 2025.07.09 1601
4206 function생성 질문 4 wltkd96 2025.07.09 1578
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