我只是学习使用SQLite,如果可能的话,我很好奇:
加密数据库文件?
密码保护数据库的开放?
PS.我知道有这个"SQLite加密扩展(SEE).",但根据文档,"SEE是许可软件...."和"SEE的永久源代码许可证的成本是2000美元."
我使用SQLite数据库版本3与C#Windows应用程序..我想使用密码或任何其他加密方式加密SQLite数据库文件,以防止客户端从程序文件文件夹中打开它.
我不想要任何运行时加密方式,我只想在客户端尝试从程序文件中打开它时使数据库文件显示密码字段..谢谢
编辑
如果我从代码加密它,客户端可以在安装完成后打开它并将db文件传输到程序文件,然后再打开程序执行加密不是吗?
我正在使用sqlite数据库的Windows应用程序.net 2.0,我的连接字符串保持在app.config之类
<connectionStrings>
<add name="SQLiteDB"
connectionString="Data Source=|DataDirectory|database.s3db;version=3;password=mypassword;"
providerName="System.Data.Sqlite"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
在连接字符串中,我已将密码定义为"mypassword",如果我删除此密码一切正常,但是当我使用密码子句时,它给出了connection.open()语法错误
File opened that is not a database file
file is encrypted or is not a database
Run Code Online (Sandbox Code Playgroud)
我在网上搜索并发现了一些版本问题,但我只使用版本3,因为我在连接字符串中说明我也尝试删除"版本= 3"但问题仍然是相同的.
我是第一次这样做,它的解决方案是什么?
我有一个sqlite数据库,我想使用数据库的密码从我的C#程序连接.我正在使用Navicat,我用密码"test"设置加密数据库文件,然后通过代码我的连接字符串是:
_connection = new SQLiteConnection("Data Source=MedExpress.db;Version=3;Password=\"test\";");
Run Code Online (Sandbox Code Playgroud)
要么
_connection = new SQLiteConnection("Data Source=MedExpress.db;Version=3;Password=test;");
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
错误是: File opened that is not a database file
file is encrypted or is not a database
我可以没有像这样的密码连接到数据库:
_connection = new SQLiteConnection("Data Source=MedExpress.db;Version=3;");
Run Code Online (Sandbox Code Playgroud)
我的问题是如何设置sqlite数据库的密码并使用C#程序连接 System.Data.SQLite
我已经创建了一个受密码保护的sqlite数据库.我希望能够查看数据库,以便在项目开发期间检查是否正确插入了数据.我已经下载了sqlite数据库浏览器,但这似乎不允许您打开加密数据库.
有没有办法可以打开数据库文件.
感谢您的任何帮助,您可以提供.
我成功地使用Perl :: DBI模块使用Perl创建了一个SQLite3数据库.我想知道是否有办法将数据库的加密添加到我现有的Perl代码中?
我仔细阅读了以下2个链接:
但提供的示例似乎只包括专有软件或C#代码(特别是这一点/sf/answers/1704459081/).
提前致谢.
我刚刚学习如何加密/解密 SQLite 数据库。
我找到了一种加密方法,如这篇文章《具有加密/密码保护的 SQLite》
本页的最佳答案说我们可以使用SEE、wxSQLite、SQLCipher、SQLiteCrypt等...来加密。
我能够了解。
而且,另一个答案说我们可以使用:
SQLiteConnection conn = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;");
conn.SetPassword("password");
conn.open();
Run Code Online (Sandbox Code Playgroud)
此页面也说了同样的话: 密码保护 SQLite DB。是否可以?
然而,SQLiteConnection没有SetPassword也没有ChangePassword方法。我很困惑。
SetPasword或在哪里ChangePassword?这些
是在SEE、、、wxSQLite吗SQLCipher?SQLiteCrypt
[开发环境]
VisualStudio2010 .NET Framework 4 Client Profile System.Data.SQLite.dll ( https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki )
我从那里下载了 zip,然后选择了“System.Data.SQLite.dll”
我们有一个使用SQLite作为嵌入式RDBMS的应用程序.最初,该应用程序适用于单个计算机和单个用户.但随着时间的推移,项目范围已扩大.现在,我们需要的功能之一是Fine grained access control.
... SQLite不得不牺牲一些人认为有用的其他特性,例如高并发性,细粒度访问控制,丰富的内置函数集......
并在这个论坛帖子
sqlite没有用户名和密码.您无法以这种方式保护数据文件.
因此,从上面可以看出,访问控制不可用.在某种程度上它是有道理的,因为它主要用于移动应用程序,浏览器或需要嵌入式数据库的地方.
根据此SO帖子,可以加密数据库.但据我所知,我无法描述它,fine grained access control因为SQLite数据库被限制为单个加密密钥.此外,我不能拥有多个用户和不同的访问级别.
Now my question are:
fine grained access control加密相关的理解是否正确?fine grained access control什么缺点?(性能可能是其中之一,因为我们必须为每个连接解密它..不确定)Some Useful Information
注意:我知道使用任何其他可用访问控制的RDBMS都很好,但问题对SQLite非常具体.请从那个角度回答他们.谢谢.
我的应用程序使用存储在通过网络提供的文件中的数据库。到目前为止,我一直在使用MS-Access文件 (.accdb),但我正在尝试迁移到SQLite Version 3 (.db3)。
我将 SQLite NuGet 包添加到我的项目中,并使用SQLiteStudio创建了一个 SQLite 数据库。我重构了我的数据库对象以使用System.Data.SQLite.SQLiteConnection而不是System.Data.OleDb.OleDbConnection它运行良好。
但是,我以前的accdb数据库受密码保护,我不知道如何在我当前的 SQLite 数据库上应用密码。
谁能教我怎么做?提前致谢!