2012-11-22 2 views
4

Sqlite 데이터베이스의 모든 테이블과 열을 검색 할 수있는 라이브러리 또는 오픈 소스 유틸리티가 있습니까? 유일한 입력은 sqlite DB 파일의 이름입니다.검색 Sqlite 데이터베이스 - 모든 테이블 및 열

포렌식 도구를 작성하려고하고 특정 문자열에 대해 sqlite 파일을 검색하려고합니다.

답변

6

"SELECT name FROM sqlite_master WHERE type='table'" 을 사용하여 데이터베이스의 테이블 이름을 확인할 수 있습니다. 거기에서 각 테이블의 모든 행을 선택하기 쉽습니다. 예를 들어

:

import sqlite3 
import os 

filename = ... 
with sqlite3.connect(filename) as conn: 
    conn.row_factory = sqlite3.Row 
    cursor = conn.cursor()  
    cursor.execute("SELECT name FROM sqlite_master WHERE type='table'") 
    for tablerow in cursor.fetchall(): 
     table = tablerow[0] 
     cursor.execute("SELECT * FROM {t}".format(t = table)) 
     for row in cursor: 
      for field in row.keys(): 
       print(table, field, row[field]) 
+0

환상적인! 방금 추가 한 질문이 하나 더 있습니다 --- 한 번 발견 된 테이블에서 문자열 "sms"를 검색하고 있습니다. 위의 코드 조각에서 열 이름 + 테이블 이름을 어떻게 인쇄 할 수 있습니까? –

+0

'sqlite3.Row' 행 팩토리를 사용하도록 코드를 변경했습니다. 이것은'cursor'를 dict-like 행으로 반환합니다. 행 키는 열 이름입니다. – unutbu

+0

내 친구가 많이 고마워! –

관련 문제