2012-01-17 3 views
4

SQLite ODBC Driver을 사용하는 경우 Delphi에서 SQLite DB에 암호화를 사용하는 방법.
데이터 액세스를 위해 ADO 구성 요소를 사용해야합니다.Delphi OLEDB에서 SQLite 데이터베이스 암호화

+0

+1 이것이 좋은 질문이라고 생각합니다. 다 소프트에 의한 좋은 대답은 이미 하나 있습니다. 이걸 왜 닫아야합니까? IMHO는 모호하지 않습니다 - 반대로 이것은 좋은 것입니다. 물론 대답은 일반적인 것입니다 (델파이 측에서는 해결책이 없겠지만 아마도 그럴 수도 있습니다). 그러나 해결책이 존재합니다. –

+0

왜 ADO를 사용해야합니까? 내가 원하는대로 할 수있는 것들이 있습니다 : https://github.com/stijnsanders/TSQLite –

+0

예, 프로젝트에서 다른 ODBC 드라이버 (예 : Oracle 용 데이터 공급자)를 사용 했으므로 ADO 만 사용해야합니다. – artzub

답변

6

내가 ODBC 드라이버 소스, 2 개 개의 옵션 중 하나를 보듯 : 정의 WITH_SQLITE_DLLS

  1. 컴파일 ODBC 드라이버, 그래서 sqlite3.dll을 사용합니다. 그런 다음 SQLITE_HAS_CODEC으로 컴파일 된 sqlite3.dll을 제공하십시오.
  2. SQLITE_HAS_CODEC으로 ODBC 드라이버와 SQLite 엔진을 정의하십시오. 그런 다음 SQLite 엔진을 ODBC 드라이버와 정적으로 링크하십시오.

SQLITE_HAS_CODEC은 SQLite 엔진이 빌드 인 코덱으로 컴파일된다는 것을 의미합니다. 기본적으로 SQLite에는 코덱이 없습니다. 표준 SQLite 대신 SQLCipher을 사용할 수 있습니다. 또는 Encryption Extension으로 SQLite를 얻으십시오.

그런 다음 ODBC를 사용하여 암호화 된 데이터베이스에 연결하려면 연결 문자열에 PWD=xxx을 지정해야합니다.

+1

+1 꽤 좋은 분석과 설명. 암호화를 포함한 또 다른 SQLite 포트는 [wxSQLite] (http://sourceforge.net/projects/wxsqlite)입니다. –

+0

또한 암호화가있는 SQLite를 얻는 옵션은 3D 파티 라이브러리를 사용하는 것입니다. TS가 말했지만 그것은 그를위한 것이 아닙니다. –

+0

@ da-soft 아주 좋은 답변입니다. 모든 것이 설명됩니다. 고마워! – artzub