Russian Qt Forum

Программирование => Базы данных => Тема начата: silart от Декабрь 18, 2009, 06:50



Название: Пароль на SQLite
Отправлено: silart от Декабрь 18, 2009, 06:50
Добрый день!

Возможно ли установить пароль на базу данных SQLite средствами Qt?
Я раньше не работал с базами данных SQLite, поэтому задал такой вопрос.

Метод QSqlDriver::open() который принимает имя базы данных, пароль и т. д. в классе QSQLiteDriver реализован таким образом, что строка пароля никуда не передается, т. е. используется только имя базы данных (которое в смысле SQLITE является путем к файлу базы данных), а остальные параметры просто игнорируются.

Проанализировав плагин QSQLiteDriver было выяснено, что этот класс имеет конструктор, который принимает указатель на нативное соединение sqlite3*. То есть можно самому создать подключение к базе данных, а потом на его основе создать объект драйвера базы данных, который можно будет использовать в дальнейшей работе.

Так вот, каким образом создать это нативное соединение и задать ему пароль?

В файле sqlite3.h были найдены следующие функции:

Код:
SQLITE_API int sqlite3_key(
  sqlite3 *db,                   /* Database to be rekeyed */
  const void *pKey, int nKey     /* The key */
);

SQLITE_API int sqlite3_rekey(
  sqlite3 *db,                   /* Database to be rekeyed */
  const void *pKey, int nKey     /* The new key */
);

Они предназначены для работы с паролем.
Но их описание отсутствует в официальной документации на SQLite, а в заголовочном файле написано, что

The code to implement this API is not available in the public release of SQLite.

Какие вообще бывают релизы SQLite? И какой релиз использует Qt?


Название: Re: Пароль на SQLite
Отправлено: Admin от Декабрь 18, 2009, 10:19
На сколько я знаю, на sqlite невозможно установить пароль. А базовых версий sqlite две штуки 2.7 и 3.0.

Тут было обсуждение, что автор sqlite предлагает за xxx$ баков поддержку криптования - но это дорого.


Название: Re: Пароль на SQLite
Отправлено: silart от Декабрь 18, 2009, 11:14
Вот облом!  :'(

А посоветуйте пожалуйста, какую лучше использовать базу данных, чтобы база была одним файлом, желательно безсерверная, как SQLite, ну и бесплатная.
В общем нужна простая база.
И чтобы можно было с ней работать в Qt.


Название: Re: Пароль на SQLite
Отправлено: Sahab от Декабрь 18, 2009, 11:31
embedded Firebird например


Название: Re: Пароль на SQLite
Отправлено: silart от Декабрь 18, 2009, 12:05
А как его к Qt привязать?


Название: Re: Пароль на SQLite
Отправлено: crossly от Декабрь 18, 2009, 12:10
да собственно так же как и не embedded.... в документации есть....