我将创建一个Java应用程序来收集一些企业信息。
我的问题是DBMS安全性。
编辑:我的应用程序未连接到网络,整个数据库和应用程序位于从那里访问应用程序的系统上;用户具有 ACL,因此我不希望用户能够使用磁盘上的数据库文件读取无法访问他们的数据。
我需要一个 DBMS 来加密磁盘上的数据,以保护数据免受使用文本/十六进制编辑器或其他 SQL 浏览工具(例如没有安全机制的 SQLite 或......
我可以使用哪些 DBMS 来确保只能通过我的应用程序(当然还有 DBMS 本身(访问数据,而不是直接从磁盘访问?
MySQL 或 PostgreSQL 有这样的直接磁盘访问保护机制吗?
谢谢
如果个人有权访问磁盘本身,则他很有可能可以访问应用程序的代码和其他数据。加密密钥(用于加密数据库文件(也将可用。如果计算机设备落入不法分子手中,则此问题没有通用解决方案(请参阅下面的一种方法(。
把上述放在一边,您有几种选择:
- SQLite具有全数据库加密插件。
- 您可以使用TrueCrypt或其替代方案之一装载磁盘
- 我们有几种产品(即 SolFS 和 CallbackFilter(,可让您使用虚拟磁盘 (SolFS( 动态加密数据库文件,或者通过过滤文件 I/O 请求动态加密/解密文件(回调过滤器(。
数据库数据,然后使用每个用户的密码加密此会话密钥。然后,当用户想要访问数据时,您要求他提供密码,解密会话密钥并使用密钥访问数据库。通过这种方式,用于加密数据的密钥不会以"明文"形式存储,并且对磁盘的物理访问不会泄露数据。