我有一个查询,例如select username as test , userpassword as testing, concat(userpassword,username), concat(userpassword,username) as test1 from mytable
上述查询的结果将是相应的列详细信息。此查询由用户在我们的网络应用程序中输入,我们通过显示userpassword
来限制*******
等特定列的显示。
但是在上面的查询中,由于我们的列和concat函数使用了别名,我们的密码正在显示。
我想要一个显示*******
代替别名列名的代码,即使在更改名称后,它也应仅显示为*******
。
是否有任何方法可以将as
查询和concat
查询仅限制为我们要显示为*******
的列。
答案 0 :(得分:0)
如果可能,请不要让用户运行自己的SQL。另外,请勿在DB中以纯文本格式存储密码。如果您真的无法做任何事情,首选解决方案在某种程度上取决于您的DBMS可用的安全级别。但无论如何,应该将用户添加到数据库中,该数据库的访问权限仅限于您希望允许用户使用的数据和操作 - 并且在建立连接时由您的应用程序使用。在DBMS手册中查找权限和/或授权。如果您很幸运,它支持列级安全性,以便您可以禁用对密码列的访问。 DBMS将处理任何别名。