在java中限制SQL查询

时间:2017-03-20 06:17:16

标签: java mysql sql sql-server oracle

我有一个查询,例如select username as test , userpassword as testing, concat(userpassword,username), concat(userpassword,username) as test1 from mytable

上述查询的结果将是相应的列详细信息。此查询由用户在我们的网络应用程序中输入,我们通过显示userpassword来限制*******等特定列的显示。

但是在上面的查询中,由于我们的列和concat函数使用了别名,我们的密码正在显示。

我想要一个显示*******代替别名列名的代码,即使在更改名称后,它也应仅显示为*******

是否有任何方法可以将as查询和concat查询仅限制为我们要显示为*******的列。

1 个答案:

答案 0 :(得分:0)

如果可能,请不要让用户运行自己的SQL。另外,请勿在DB中以纯文本格式存储密码。如果您真的无法做任何事情,首选解决方案在某种程度上取决于您的DBMS可用的安全级别。但无论如何,应该将用户添加到数据库中,该数据库的访问权限仅限于您希望允许用户使用的数据和操作 - 并且在建立连接时由您的应用程序使用。在DBMS手册中查找权限和/或授权。如果您很幸运,它支持列级安全性,以便您可以禁用对密码列的访问。 DBMS将处理任何别名。