阻止访问自托管mysql服务器上的数据库

时间:2017-10-23 13:23:06

标签: mysql database security

我们的应用程序使用sql数据库来存储用户不能修改的数据。

现在我们使用的是本地sqlite数据库,它通过sqlcipher加密,然后解密 应用程序以我们设置的私钥开始。这样,用户无法在不知情的情况下修改任何数据 这个密钥甚至可以在他最喜欢的数据库浏览器中加载数据库。

我们现在想要允许数据库在mysql服务器上。但据我所知 一种保护数据的平等方式是不可能的。特别是因为我们想要用户 能够托管他自己的服务器(就像他使用他自己的"本地sqlite文件一样)我知道有一个所谓的"静止"现在加密mysql中的innodb,但这对用户来说似乎是完全透明的。因此,如果用户连接到数据库,则他不必输入密钥进行解密,但这将在后台自动发生。

是否有办法允许用户使用自己的mysql服务器,但阻止他修改 我们在其上创建的任何数据库?或者这只适用于我们自己托管的服务器?

1 个答案:

答案 0 :(得分:0)

首先让我简单介绍一下你迄今使用的方法。

我认为这个概念首先是错误的,因为它不安全。解密密钥必须在应用程序中,否则您的用户将无法打开数据库。一旦应用程序运行,用户就可以使用众所周知的方法/工具从RAM中提取该密钥。

相反,在锁定的房间中使用服务器时,如果服务器软件没有允许用户攻击它的错误,则真正的安全。

因此,您的问题的答案是:

  • 是的,升级到MySQL是明智的。

  • 对所有实际位于普通用户无权访问的用户使用一台服务器。

  • 不,如果您唯一担心的是用户无法更改数据,请不要尝试加密磁盘上的MySQL表文件。

  • 相反,请正确地为中央数据库和表分配访问权限。如果普通用户只对所有表具有读权限,则他们将无法通过网络修改任何数据,但可以读取所有数据。据我了解,这就是你想要的。

相关问题