[英]Does GORM support working with encrypted SQLite DB?
我需要在我的 Go 應用程序中使用 ORM,該應用程序可以連接到 postgreSQL db 或 Z49778657A9C5B2C1.
gorm 的文檔沒有提到任何關於連接到加密的 sqlite 數據庫的內容。
是否可以使用它或以任何方式為 sqlite 提供自定義驅動程序,該驅動程序將與加密的 SQlite DB 一起使用?
更新
根據 Ezequiel Muns 的評論,我更新了 gorm SQLite 驅動程序代碼以使用github.com/mutecomm/go-sqlcipher 。
這個新的 GORM 驅動程序可以在這里找到。
干杯!!
Gorm 使用一個驅動系統來調整各個數據庫客戶端以供其使用。
您必須創建一個復制go-gorm/driver/sqlite
源但更新https://github.com/go-gorm/sqlite/blob/master/sqlite.go#L8的新模塊以導入備用您選擇的圖書館。 由於這些是 fork 並且它們符合數據庫/sql 接口,因此它應該可以正常工作。 然后你就可以在 gorm 中正常使用這個新的驅動了:
import (
"gorm.io/gorm"
sqliteEncrypt "path.to/your/gorm-sqlite-encrypt"
)
db, err := gorm.Open(sqliteEncrypt.Open("file:dbFileName?_crypto_key=auxten"), gorm.Options{})
if err != nil {
panic("failed to connect database")
}
// ...
注意:您可以嘗試通過使用go.mod 替換指令來避免更新go-gorm/driver/sqlite
中的任何源,盡管我不知道它如何與自己沒有的 CGO 模塊一起使用一個go.mod
文件,就像您鏈接的兩個庫一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.