Russian Qt Forum
Апрель 27, 2024, 20:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Пароль на SQLite  (Прочитано 12807 раз)
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?
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #1 : Декабрь 18, 2009, 10:19 »

На сколько я знаю, на sqlite невозможно установить пароль. А базовых версий sqlite две штуки 2.7 и 3.0.

Тут было обсуждение, что автор sqlite предлагает за xxx$ баков поддержку криптования - но это дорого.
Записан
silart
Гость
« Ответ #2 : Декабрь 18, 2009, 11:14 »

Вот облом!  Плачущий

А посоветуйте пожалуйста, какую лучше использовать базу данных, чтобы база была одним файлом, желательно безсерверная, как SQLite, ну и бесплатная.
В общем нужна простая база.
И чтобы можно было с ней работать в Qt.
Записан
Sahab
Гость
« Ответ #3 : Декабрь 18, 2009, 11:31 »

embedded Firebird например
Записан
silart
Гость
« Ответ #4 : Декабрь 18, 2009, 12:05 »

А как его к Qt привязать?
Записан
crossly
Гость
« Ответ #5 : Декабрь 18, 2009, 12:10 »

да собственно так же как и не embedded.... в документации есть....
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.054 секунд. Запросов: 22.