SQL SELECT-only查询文本验证

时间:2012-01-13 09:02:11

标签: java mysql validation select

我有一个sql查询的文本。此文本只能包含select语句(它必须始终以“select”开头)。

文本不应以任何方式改变数据库。我如何验证它(以确保它不会影响我的数据库并仅从中获取数据)?

我正在使用Java和mySQL。

谢谢。

2 个答案:

答案 0 :(得分:3)

您应该考虑仅创建新用户和GRANT SELECT权限。然后,您不必担心解析SQL查询并检查它们是否可以更改数据库。

另一方面,如果查询以select开头,我认为它不能改变您的数据库,因为选择不能包含嵌套更新或删除。

答案 1 :(得分:-1)

您可以使用正则表达式执行此操作。

String yourQuery = "SELECT";
if(Pattern.compile("SELECT .*").matcher(yourQuery).find())
{
// do stuff
}