2012-01-17 116 views
4

如何在Delphi中對SQLite數據庫使用加密,如果我使用的是SQLite ODBC Driver
我必須使用ADO組件進行數據訪問。在Delphi中加密SQLite數據庫OLEDB

+0

+1因爲我認爲這是一個很好的問題。 da-soft已經有一個很好的答案。爲什麼要關閉這個?恕我直言,它遠非模糊 - 相反,這是一個很好的。當然,答案將是通用的(德爾福方面沒有解決方案 - 但也許它可能是一個),但解決方案存在。 – 2012-01-17 08:43:42

+0

爲什麼_必須使用ADO?我可以通過以下任何方式執行任何操作:https://github.com/stijnsanders/TSQLite – 2012-01-18 18:16:15

+0

是的,我必須只使用ADO,因爲在項目中使用了其他ODBC驅動程序,例如Oracle的數據提供程序。 – artzub 2012-01-19 12:37:38

回答

6

正如我從ODBC驅動源,的2個選項之一見:

  1. 編譯ODBC驅動程序定義WITH_SQLITE_DLLS,所以它會使用sqlite3.dll。然後提供用SQLITE_HAS_CODEC編譯的sqlite3.dll。
  2. 編譯ODBC驅動程序和SQLite引擎,並定義SQLITE_HAS_CODEC。然後將SQLite引擎靜態鏈接到ODBC驅動程序。

SQLITE_HAS_CODEC表示SQLite引擎是使用內置編解碼器編譯的。默認情況下,SQLite沒有編解碼器。您可以使用SQLCipher而不是標準SQLite。或者用Encryption Extension獲取SQLite。

然後,要使用ODBC連接到加密的數據庫,您需要在連接字符串中指定PWD=xxx

+1

+1相當不錯的分析和解釋。另一個包含加密的SQLite端口是[wxSQLite](http://sourceforge.net/projects/wxsqlite)。 – 2012-01-17 08:38:09

+0

另外一個獲得SQLite加密的選項是使用3D派對庫。雖然TS說,但他不可能。 – 2012-01-17 10:54:37

+0

@ da-soft一個非常好的答案。一切都被解釋了。謝謝! – artzub 2012-01-19 12:43:20

相關問題