SQLite Expert

Digital Forensic Wikipedia
둘러보기로 가기 검색하러 가기

소개[편집]

SQLite Expert는 Bogdan Ureche에서 제공하는 상용 유틸리티(라이선스가 없는 경우 트라이얼 버전)가 있고, 무료 유틸리티가 있다. 최신버전은 3.5.6이고, 본 항에서는 3.5.59 버전을 기반으로 보고서를 작성하였다. SQLite Expert는 상용 유틸리티인 경우에는 라이선스 없이 30일 동안 트라이얼 버전을 이용 할 수 있다. 설치 후 30일 이후에는 라이선스를 구입해야만 이용이 가능하다. SQLite Expert는 Windows에서 GUI로 동작한다. 입력 가능한 파일은 SQLite 데이터베이스 파일만 된다.


사용법[편집]

[그림 1] SQLite Expert 실행 화면

SQLite Expert를 실행하면 [그림 1]와 같다. 데이터베이스의 정보와 수정 등이 가능하다. 크게는 SQL 쿼리 기능, 재구성 기능, 데이터 가져오기 및 내보내기, 데이터 편집 등의 다양한 기능을 지원하고 있다.





도구 기능[편집]

SQLite Expert에서는 주로 화면 상단에 있는 메뉴들을 통해 기능 이용이 가능하다. 메뉴에는 [그림 2]와 같이 메뉴모음 창이 있고, 그 아래에는 메뉴 모음에 있는 기능 바로 이용할 수 있는 단축 아이콘이 있고, 단 축 아이콘 아래에는 현재 입력한 SQLite 데이터베이스의 이름, 테이블 이름, 저장되어 있는 경로를 표시해주고 있다.

[그림 3] SQLite Expert 메뉴



메뉴모음 창에는 File, Database, Impot/Expot, Table, View, SQL, Transaction, Scripting, Tools, Help의 메뉴가 있다. File 메뉴에서는 [그림 3]와 같이 새로운 SQLite 데이터베이스를 생성하거나 열기, 닫기, 등록, 다른 데이터베이스 붙이기, dll파일 읽어 들이기, 암호키 입력하기 등의 기능이 있다.

[그림 3] File 메뉴






File 메뉴에 대한 단축 아이콘은 [그림 4] 와 같다. File 메뉴의 거의 모든 메뉴가 단축 아이콘으로 표시되어 있다.

[그림 4] File 메뉴의 단축 아이콘 메뉴



New Database 메뉴를 클릭하면 새로운 SQL 데이터베이스를 생성 할 수 있다. 데이터베이스를 생성할 때 [그림 5]와 같이 몇 가지 옵션에 대해 설정이 가능하다. 인코딩에서는 UTF-8, UTF-16, UTF-16le, UTF-16be 중에서 1개를 선택 할 수 있고, 페이지 크기에서는 512, 1024, 2048, 4096, 8192, 16384, 32768 중에서 1개를 선택 할 수 있다. Auto Vacuum에서는 0, 1 중에서 1개를 선택 할 수 있다.

[그림 5] 새로운 데이터베이스 생성의 옵션



DataBase 메뉴에서는 [그림 6]와 같이 새로 고침, 무결성 체크, Vacuum, Reindex, Repair, Backup 기능이 있다.

[그림 6] Database 메뉴




Database 메뉴에 대한 단축 아이콘은 존재하지 않는다. Repair는 [그림 7]와 같이 원본 데이터베이스에 Repair를 할지, 새로 Repair한 파일을 생성할지 여부를 선택 해서 저장 할 수 있다.

[그림 7] 성공적으로 Repair한 결과



Backup 기능에는 [그림 8]와 같이 현재 입력한 데이터베이스나 새로 생성한 데이터베이스에 대해 백업할 경로를 지정하고 백업 할 수 있다.

[그림 8] 백업 완료한 화면




Import/Export 메뉴에서는 [그림 9]와 같이 SQLite 데이터베이스를 들여오거나 내보내기가 가능하고, Csv, Tsv파일에 대해서도 들여오기가 가능 하다. 일반적으로 들여오기, 내보내기 기능은 Data Transfer Wizard 메뉴를 클릭하면 가능하다.

[그림 9] Import/Export 메뉴


Data Transfer Wizard 메뉴를 클릭하면 [그림 10]와 같이 들여오기, 내보내기 선택이 가능하다.

[그림 10] 들여오기/내보내기 선택 화면

들여오기 기능인 Import에서는 들여오기 할 SQL 데이터베이스와 인코딩을 선택하면 들여올 수 있다. Export에서는 내보내기 할 SQL 데이터베이스에 대해 인코딩 선택, Object Type(테이블구조, 테이블 데이터, 인덱스, 트리거, 뷰 등)에 대해 선택해서 내보낼 수 있다.

Import/Export 메뉴의 단축 아이콘 메뉴는 [그림 11]와 같다.

[그림 11] Import/Export 단축 아이콘 메뉴

Table 메뉴에는 [그림 12]와 같이 Table을 생성하고, Table 이름 재설정, Reindex, 새로고침 기능이 있다.

[그림 12] Table 메뉴

New Table 메뉴를 클릭하면 화면의 가운데에 [그림 13]와 같이 Schema 창과 Design 창이 활성화 된다. Design 창에서 새로 생성할 테이블의 필드, 인덱스, 외래키, 제약조건(Constraints), 트리거에 대해 설정이 가능하다.

[그림 13] 활성화된 Schema 창과 Design 창


활성화된 Design창에서의 새로 생성할 테이블 이름을 설정 할 수 있다. 그리고 Fields 메뉴에서 화면의 하단에 위치하는 Add 버튼을 클릭하면 [그림 14]와 같이 필드를 추가 할 수 있다. 추가될 필드의 이름, 타입, 크기, Not null 등의 설정이 가능하다. Delete 버튼을 클릭하면 필드를 삭제 할 수 있고, Modify 버튼을 클릭하면 필드를 수정 할 수 있다. Move Up, Move Down 버튼을 클릭하여 테이블에 존재하는 필드를 위로 한 칸, 아래로 한 칸 이동시킬 수 있다.

[그림 14] 테이블에 필드 추가하는 화면


Index 메뉴에서 화면의 하단에 위치하는 Add 버튼을 클릭하면 [그림 15]와 같이 인덱스를 추가 할 수 있다. 추가 될 인덱스의 Primary, Unique, Autoincrement, On Conflict의 설정이 가능하다. Delete 버튼을 클릭하면 인덱스를 삭제 할 수 있고, Modify 버튼을 클릭하면 인덱스를 수정 할 수 있다. Move Up, Move Down 버튼을 클릭하여 테이블에 존재하는 인덱스를 위로 한 칸, 아래로 한 칸 이동시킬 수 있다.

[그림 15] 테이블에 인덱스 추가하는 화면

Foreign Keys 메뉴에서 화면의 하단에 위치하는 Add 버튼을 클릭하면 [그림 16]와 같이 인덱스를 추가 할 수 있다. 추가 될 외래키의 이름, Parent Table, Child Key, Parent Key 등의 설정이 가능하다. Delete 버튼을 클릭하면 외래키를 삭제 할 수 있고, Modify 버튼을 클릭하면 외래키를 수정 할 수 있다. Move Up, Move Down 버튼을 클릭하여 테이블에 존재하는 외래키를 위로 한 칸, 아래로 한 칸 이동시킬 수 있다.

[그림 16] 테이블에 외래키 추가하는 화면

Constraints 메뉴를 [그림 17]와 같이 클릭하면 제약조건을 설정 할 수 있다.

[그림 17] Constraints 설정 화면

Triggers 메뉴를 [그림 18]와 같이 클릭하면 트리거 설정이 가능하다.

[그림 18] 테이블에 트리거 설정 화면

Table 메뉴에 대한 단축 아이콘은 [그림 19] 와 같다. View 메뉴와 함께 있다. 아이콘 순서대로 테이블 생성, 테이블 이름 수정, 새로고침, 테이블 비우기, View 생성 기능이 있다.

[그림 19] Table 메뉴와 View 메뉴의 단축 아이콘


View 메뉴에는 [그림 20]와 같이 View를 생성하는 기능이 있다.

[그림 20] View 메뉴


New View 메뉴를 클릭하면 [그림 21]와 같이 Design 창에서 DDL로 뷰를 생성하면 된다.

[그림 21] 뷰 생성하려는 화면


SQL 메뉴에는 [그림 22]와 같이 SQL문 빌드, 실행, SQL script 읽기, 저장 등의 기능이 있다.

[그림 22] SQL 메뉴


실제 사용자가 직접 입력하고 실행할 SQL문 입력은 [그림 23]화면의 가운데에 보이는 SQL창에서 하면 된다.

[그림 23] SQL 입력 창


SQL 메뉴의 단축 아이콘은 [그림 24]와 같다. SQL실행과 SQL script에 대한 기능의 아이콘이다.

[그림 24] SQL 메뉴의 단축 아이콘


Transactions 메뉴에는 트랜잭션에 대해 [그림 25]와 같이 Begin, Save Point, Commit, Rollback 등의 설정하는 기능이 있다.

[그림 25] Transactions 메뉴


Transactions 메뉴의 단축 아이콘은 [그림 26]와 같다. Begin, Commit, Rollback의 기능에 대한 아이콘이다.

[그림 26] Transactions 메뉴의 단축 아이콘


Scripting 메뉴에는 Lua언어의 스크립트와 Pascal언어의 스크립트 실행하거나 읽어 들이거나 저장 할 수 있는 기능이 있다. [그림 27]와 같이 화면의 가운데에 있는 Scripting 창에서 Lua 언어와 Pascal 언어를 선택하고 스크립트를 작성 할 수 있다.

[그림 27] Scripting 창


Lua 언어를 선택하면 Scripting 메뉴가 [그림 28]와 같이 보인다.

[그림 27] Lua 언어 선택 시 Scripting 메뉴


Pascal 언어를 선택하면 Scripting 메뉴가 [그림 29]와 같이 보인다.

[그림 29] Pascal 언어 선택 시 Scripting 메뉴


Scripting 메뉴의 단축 아이콘은 [그림 30]와 같다.

[그림 30] Scripting 메뉴의 단축 아이콘


Tools 메뉴에는 SQLite Expert에 대한 옵션 설정, Auto Extensions, Database DDL 비교, Toolbar 보이기, 필터 보이기, 화면과 폰트에 대한 조절 등의 기능이 있다. 이는 [그림 31]와 같다.

[그림 31] Tools 메뉴


SQLite Expert의 왼쪽 화면에는 [그림 32]와 같이 SQLite의 데이터베이스와 그 안의 테이블에 대한 정보를 확인 할 수 있다. 그리고 화면의 가운데에는 기본적으로 Database, Extensions, Schema, SQL Builder, SQL, Data, Design, DDL, Scripting 창이 있다.

[그림 32] SQL 데이터베이스 테이블 구조


Database 창에는 SQL 데이터베이스에 대한 자세한 정보를 [그림 33]와 같이 화면에 출력해준다.

[그림 33] Database 창 화면


그리고 Schema 화면에는 데이터베이스의 스키마에 대한 정보를 [그림 34]와 같이 화면에 출력해준다.

[그림 34] Schema 창 화면


그리고 SQL Builder 창에는 [그림 35]사용자가 직접 테이블의 컬럼 값들을 선택하여 SQL쿼리문을 생성해주는 기능을 지원한다.

[그림 35] SQL Builder 창 화면


[그림 36] Data 창 화면

[그림 36]Data 창에서는 사용자가 직접 레코드에 대한 편집이 가능하다.

제한사항[편집]

SQL 쿼리를 기본적으로 알고 있지 않다면, SQLite Expert 사용이 불가능할 정도로 기능이 매우 복잡하다.


수사 활용 방안[편집]

SQLite Expert는 SQLite의 데이터베이스에 대해서 모든 조작이 가능하다. SQLite Expert는 단순히 데이터베이스를 보여주는 것뿐만 아니라 데이터베이스에 대해 자세하고 상세한 분석 지원을 해주고, 사용자가 필요하다면 파일을 생성하거나 백업 작업도 할 수도 있다. 그렇기 때문에 수사에서 SQLite 기반의 데이터베이스를 분석하거나 백업을 해야 할 경우에는, SQLite Expert는 매우 유용하게 사용 될 수 있다.