Установить пароль для базы данных SQLite v3

Мое приложение использует базу данных, хранящуюся в файле, доступном по сети. До сих пор я использовал файл MS-Access (.accdb), но пытаюсь перейти на SQLite версии 3 (.db3).

Я добавил в свой проект пакет SQLite NuGet и создал базу данных SQLite, используя SQLiteStudio. Я реорганизовал объекты базы данных для работы с System.Data.SQLite.SQLiteConnection вместо System.Data.OleDb.OleDbConnection, и это сработало.

Однако моя предыдущая база данных accdb была защищена паролем, и я не знаю, как применить пароль к моей текущей базе данных SQLite.

Может ли кто-нибудь научить меня этому? Заранее спасибо!


person VBobCat    schedule 02.01.2017    source источник
comment
Возможно, это поможет вам   -  person Wudge    schedule 02.01.2017


Ответы (1)


Я перешел по ссылке, которая Wudge любезно назначен в комментарии выше, и он работает, но я бы предпочел пояснить, что нужно сделать:

  1. Чтобы установить пароль к незащищенной базе данных:

    Dim conn = New SQLite.SQLiteConnection(
        "Data Source=C:\yourFolder\yourDB.db3;Version=3;")
    conn.Open()
    conn.ChangePassword("password")
    conn.Close()
    
  2. Чтобы открыть базу данных, защищенную паролем:

    Dim conn = New SQLite.SQLiteConnection(
        "Data Source=C:\yourFolder\yourDB.db3;Version=3;")
    conn.SetPassword("password")
    conn.Open()
    conn.Close()
    

    or

    Dim conn = New SQLite.SQLiteConnection(
        "Data Source=C:\yourFolder\yourDB.db3;Version=3;Password=password;")
    conn.Open()
    conn.Close()
    
  3. Чтобы удалить пароль из базы данных, защищенной паролем:

    Dim conn = New SQLite.SQLiteConnection(
        "Data Source=C:\yourFolder\yourDB.db3;Version=3;Password=password;")
    conn.Open()
    conn.ChangePassword(String.Empty)
    conn.Close()
    

PS. Менеджер баз данных с открытым исходным кодом SQLiteStudio может открывать файлы, которые были таким образом защищены паролем. , пока вы выбираете System.Data.SQLite вместо Sqlite 3 в качестве типа вашей базы данных. (Требуется v 3.1.1, текущая версия).

person VBobCat    schedule 02.01.2017
comment
Привет, VBobCat, я делаю то же самое в своем проекте vb.net, но это не работает, и я не понимаю, в чем я ошибаюсь. Я использую System.Data.SQLite (загруженный оффициальный sqlite-netFx46-setup-bundle-x86-2015-1.0.101.0.exe). Менеджеры также использовали DB.Browser.for.SQLite-3.10.1 и SQliteStudio. Я пробовал установить пароль из кода и из браузера БД. Это мой код: Dim mDbConnection as String = Data Source = C: \ TestDB.s3db; Version = 3; Dim cnn как новый SQLiteConnection (mDbConnection) cnn.SetPassword (test) cnn.Open () cnn.Close () - person Anchor; 17.01.2018
comment
Это исключение: открытый файл, не являющийся файлом базы данных, зашифрован или не является базой данных. - person Anchor; 17.01.2018
comment
Без понятия. Но в прошлом у меня были проблемы, я думал, что установил пароль, а на самом деле он не был установлен. В SQLiteStudio щелкните правой кнопкой мыши значок корня базы данных и выберите «Редактировать базу данных», чтобы увидеть, действительно ли установлен пароль. Кроме того, я ничего не понимаю. - person VBobCat; 17.01.2018
comment
Даже если я установил пароль в DB Broswer, SQLiteStudio это не нравится, и если бы я действительно хотел установить пароль в SQLiteStudio, я не знаю, как я могу это сделать. Итак: я открыл базу данных без пароля, установленного кодом (аналогично приведенному выше коду), я немедленно изменил пароль, чтобы установить его (cnn.ChangePassword (test)), и теперь каждый раз, когда я хочу открыть базу данных, строка Data Source = C: \ TestDB.s3db; Версия = 3; Пароль = тест работает. И после этого я могу управлять базой данных с помощью SQLiteStudio. Спасибо! - person Anchor; 17.01.2018