postgresql:阻止超级用户查看数据库中的电子邮件列

时间:2016-12-28 00:10:20

标签: ruby-on-rails database postgresql email

我在rails应用程序上有一个ruby,用户可以使用电子邮件地址注册。这些将是真正的专业人士的电子邮件地址,我不能出于隐私原因查看它们。我们假设我无法查看这些电子邮件地址。

我需要一种方法来隐藏这些电子邮件,一旦我使用选择查询,例如:

SELECT * FROM users;

在数据库上。 'users'是包含电子邮件列的表。一旦我使用此查询,我就能看到每个用户的所有电子邮件地址,这是有问题的。

以下是我尝试过的解决方案:

1)我尝试使用:

update users set email = 'testmail+user' 

一旦我进入psql数据库,它会将实际的电子邮件设置为虚拟电子邮件。问题是我每次都要在电子邮件中输入虚拟电子邮件时输入此行,如果我不键入此行,我仍然可以搜索实际的电子邮件。

2)我尝试使用数据匿名化gem(https://github.com/sunitparekh/data-anonymization),但这依赖于ruby脚本,我不太确定每次用户注册时如何运行此脚本。

3)我按照tidus gem(https://github.com/Barzahlen/tidus)的说明进行了调整,这可能会使选择列的内容匿名,但是一旦我进入psql数据库并且我进行了选择查询,电子邮件就没有改变。

4)我尝试让另一个用户不是超级用户并且REVOKING SELECT权限,但是我无权访问用户的任何其他列。

总之,我需要一种方法来在注册用户输入电子邮件后立即对其进行匿名化,或者防止我自己查看这些个人电子邮件地址。

您可以假设我仍然想查看其他列(即名字,姓氏)。

1 个答案:

答案 0 :(得分:1)

简单,加密您不是超级用户的计算机上的值。

这意味着您可以访问受限制的应用程序服务器,或者用户计算机本身。

没有其他办法可以做到这一点

如果您不想查看/使用其真实价值,为什么要录制电子邮件地址?

相关问题