我有一個sqlite數據庫,我想打開使用sqlite3.exe。現在,當我嘗試進行查詢時,出現錯誤,提示「文件已加密或不是數據庫」。這可能看起來很愚蠢,但我一直在環顧四周,我只是沒有找到如何提供密碼(或密鑰)到sqlite3.exe來解密數據庫。 sqlite3.exe的-help選項或.help命令不顯示任何內容......是否可以這樣做,如果可以,我該怎麼做?如何爲sqlite3.exe提供密碼?
2
A
回答
0
數據庫不可能被加密,除非你有理由相信它。你是否可以打開數據庫,或者一旦你發出一些SQL查詢就會得到這個錯誤?如果它是前者,你的文件可能不是一個sqlite數據庫開始,或者它已經損壞;如果是後者,請檢查你的數據庫的完整性:
pragma integrity_check;
有關此編譯的詳細信息,請參閱http://www.sqlite.org/pragma.html#pragma_integrity_check。
在任何情況下,除非你的數據庫真的被加密(sqlite本身不支持),你的數據庫可能是不可用的。
0
SQLite在向它傳遞一個文件時報告錯誤,該文件實際上不是SQLite數據庫,或者已被損壞。有幾個支持加密的SQLite插件,但除此之外,SQLite沒有加密。
當您嘗試使用SQLite v2打開SQLite v3數據庫(可能還有其他版本不匹配)時,也會發生這種情況。
假設您經歷過損壞(而不僅僅是傳遞錯誤的文件或使用錯誤版本的SQLite),您可能需要檢查您正在使用的PRAGMA synchronous
設置,並且還要查看the list of fixed data-corrupting bugs。
0
結帳這個這個forum here。那傢伙和你有同樣的問題。問題在於,沒有任何形式的保護作爲sqlite3 API中的標準包提供,但您可以嘗試System.Data.SQLite。這些是論壇上發佈的代碼:
#include <SQLite.au3> don't include sqlite.dll.au3 !!!
_SQLite_Startup ("System.Data.SQLite.dll")
ConsoleWrite(_SQLite_LibVersion() & @LF)
_SQLite_Open("testcrypt.db")
_SQLite_Exec(-1, "pragma key = 'Radu is happy!';create table if not exists test (id integer, val text);" & _
"insert into test values (1, 'abc');")
Local $row
_SQLite_QuerySingleRow(-1, "select * from test;", $row)
ConsoleWrite($row[1] & @LF)
_SQLite_Close()
_SQLite_Shutdown()
希望有幫助。
相關問題
- 1. 提供密碼
- 2. 用密碼提供密碼
- 3. 如何向POWER_STATE_PASSWORD提供密碼?
- 4. 如何通過Java提供sftp密碼
- 5. 如何向java進程提供密碼
- 6. Hybris如何提供MD5密碼哈希?
- 7. sqlite3.programmingerror不正確號碼提供給
- 8. 如何比較Microsoft Access密碼與用戶提供的密碼?
- 9. 如何/何處爲Vagrant shell provisioner提供sudo密碼?
- 10. 提供密碼到SFTP
- 11. fe_sendauth:沒有密碼提供
- 12. 使用fabric如何爲psql提供密碼?
- 13. 如何爲作曲家安裝提供用戶名和密碼?
- 14. 如何以非交互方式爲PostgreSQL的createdb提供密碼?
- 15. 在GPG中解密時提供密碼
- 16. 如何僅將密碼提交給heroku而不提供給github?
- 17. 提供的密碼無效。密碼必須符合爲默認供應商配置的密碼強度要求
- 18. 在gnupg-for-java中爲GnuPG密鑰提供密碼
- 19. 如何爲守護進程或服務提供加密密鑰?
- 20. 如何複製提供的密碼和salt的密碼哈希值(PHP/MySQL)
- 21. 在AWS API網關中,如何將HTTPS密碼限制爲提供完美轉發保密的密碼?
- 22. 如何自動生成密碼,如果沒有提供與authlogic
- 23. 我有md5加密密碼,當他使用「忘記密碼」時如何給用戶提供密碼?
- 24. SQLCipher提供哪些密碼和模式?
- 25. 鐵軌 - heroku沒有提供密碼
- 26. 提供的密碼無效 - Symfony2
- 27. 密碼不提供ssh登錄
- 28. 持久化提供密碼困境
- 29. Python和Postgresql:OperationalError:fe_sendauth:沒有提供密碼
- 30. 使用Shell腳本提供密碼
你確定該文件是一個有效的sqlite數據庫,並沒有損壞? –
我不確定,因爲有人通過電子郵件將它發送給我,但我知道密碼應該是什麼,如果它是一個有效的加密數據庫。這就是爲什麼我想驗證它。如果我向sqlite3提供密碼,並且仍然出現此錯誤,那麼它將會是數據庫已損壞的標誌,但現在我還沒有發現如何提供密碼。 – Carl
那個通過電子郵件發給我的傢伙正在度假2周,所以我不能問他該怎麼做。但他給了我一個密碼,所以我想我的數據庫是加密的。 – Carl