我将创建一个Java应用程序来收集一些企业信息
我的问题是DBMS的安全性
编辑:我的应用程序未连接到网络以及整个数据库和应用程序。位于应用程序的系统上。从那里访问;用户具有ACL,因此我不希望用户能够通过使用磁盘上的数据库文件来读取无法访问它们的数据。
我需要一个DBMS来加密磁盘上的数据,以使用Text / HEX编辑器或其他SQL浏览工具(如没有安全机制的SQLite或......)来保护数据。
我可以使用哪个DBMS来确保数据只能通过我的应用程序(当然还有DBMS本身)访问,而不是直接从磁盘访问?
MySQL或PostgreSQL是否有这样的直接磁盘访问保护机制?
由于
答案 0 :(得分:3)
如果个人可以访问磁盘本身,那么他很有可能访问您的应用程序的代码和其他数据。并且加密密钥(用于加密DB文件)也将可用。如果计算机设备进入不法行为者手中,则此问题没有通用解决方案(请参阅下面的一种方法)。
如上所述,您有几种选择:
如果您能够让用户以某种方式提供密码/密钥,则可以使用会话密钥加密数据库数据,然后使用每个用户的密码加密此会话密钥。然后,当用户想要访问数据时,您要求他输入密码,解密会话密钥并使用密钥访问数据库。以这种方式,用于加密数据的密钥不存储在“明文”中,并且获得对磁盘的物理访问不会泄露数据。