【发布时间】:2016-03-12 05:29:40
【问题描述】:
我们有一个使用 SQLite 作为嵌入式 RDBMS 的应用程序。最初,该应用程序是为单机和单用户设计的。但随着时间的推移,该项目的范围已经扩大。现在我们需要的功能之一是 Fine grained access control.
现在正如Appropriate Uses For SQLite 中提到的那样
... SQLite 不得不牺牲其他 一些人认为有用的特征,例如高 并发,细粒度的访问控制,丰富的内置 函数...
在这个forum post
sqlite 没有用户名和密码。你无法保护数据 以这种方式保存文件。
所以,从上面很明显,访问控制不可用。从某种意义上说,它主要用于移动应用程序、浏览器或任何需要嵌入式数据库的地方。
根据SO post,可以加密数据库。但据我所知,我不能将其描述为fine grained access control,因为 SQLite 数据库绑定到单个加密密钥。另外,我不能有多个用户和不同的访问级别。
Now my question are:
- 是否可以在 SQLite 中启用访问控制? (我可能已经回答了我的问题,但为了我内心的满足,我还是问了这个问题:))
- 我对@987654327@与加密相关的理解是否正确?
- 假设我对单机和单用户使用加密,那么与真正的
fine grained access control相比,它的缺点是什么? (性能可能是其中之一,因为我们必须为每个连接解密它......不确定)
Some Useful Information
- 我们使用的是最新版本的 SQLite。
- SQLite 作为源代码的一部分嵌入。
- 在其全部容量下,我们可以预期一个大小为 1 GB 或左右的数据库。
注意:我知道使用任何其他可以访问控制的 RDBMS 都很好,但问题是针对 SQLite 的。请从这个角度回答他们。谢谢。
【问题讨论】:
标签: c encryption sqlite access-control