用视图替换纯文本用户表


Replacing a plaintext user table with a view

我们继承了一些东西,有些比另一些更糟糕。

最近继承了一个具有明文密码的用户表。通常情况下,这不是什么大问题,但桌子是由许多web应用程序连接的——其中一些我不能指望找到没有他们破坏和人们抱怨。

我想加密这个密码列,而不需要修改这些神秘应用程序的连接字符串或硬编码sql。我认为可以通过使用'OR'子句替换此表的mysql视图来验证两种方式。这个想法类似于encrypted_sql_check或plaintext_sql_check,其中明文sql检查看起来类似于md5(plaintextpw, salt)或类似的东西,本质上是通过使用盐的加密器运行明文提交并检查是否匹配。

我不是dba,所以这只是一个codemonkey的一些想法。这可行吗?我会遇到插入/更新/等查询问题吗?换句话说……有人能告诉我为什么这不会工作吗?这个数据库表也将用作drupal用户表,所以如果有任何原因可能会引起一些问题,知道它也是很好的。

谢谢!

数据库中的视图通常是只读的,因此,当尝试通过这样的视图更新或插入值时,确实会遇到问题。另一方面,在原始表上工作应该可以立即更新视图。