Я создал базу данных SQLite3
и защитил ее паролем («тест») благодаря приложению DB browser for SQLite
.
Чтобы подключиться к моей базе данных через Python
, мне нужно предоставить пароль, но я не могу понять, как это сделать. Я попробовал следующий код:
conn=sqlite3.connect("mydatabase.db", Password="test")
cur=conn.cursor()
EDIT:
Моя база данных SQLite3
была зашифрована с помощью SQLCipher
(см. Изображение).
Если я запускаю следующий код:
conn=sqlite3.connect("mydatabase.db")
cur=conn.cursor()
Я получаю эту ошибку:
sqlite3.DatabaseError: file is encrypted or is not a database
Как я могу передать пароль для соединения с моим db
через Python?
РЕДАКТИРОВАТЬ 2
Вот краткое изложение того, чего я пытаюсь достичь. Я разрабатываю приложение с Python 3
, для которого требуется предварительно заполненная база данных, но эта база данных должна быть защищена паролем.
После обширных исследований кажется сложным подключить зашифрованную базу данных SQLite3
через Python 3
. Библиотека звонков pysqlcipher
существует, но только для Python 2.7. Мой следующий вопрос будет, возможно, слишком широким, и я заранее извиняюсь. Существует ли еще одна переносимая база данных, позволяющая мне защитить ее паролем и получить доступ к Python?
Другая идея, которую я имею в виду, чтобы решить мою проблему, - это использовать библиотеку zipfile
. В этой ссылке упоминается, что модуль zipfile
не поддерживает шифрование, но неясно, относится ли шифрование к базе данных SQLite3
или к zip-файлу. Идея состояла бы в том, чтобы заархивировать мою незащищенную DB
в защищенный zip-файл, как мне кажется, я могу это сделать ( link ).
Цель этого редактирования - получить новые идеи о том, как решить мою проблему. Спасибо