簡體   English   中英

GORM 是否支持使用加密的 SQLite 數據庫?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM