不允许用户从查询中编辑数据库

时间:2014-09-11 11:44:13

标签: php mysql sql

我创建了一个用户可以在textarea中放入查询的页面,当他们单击提交按钮时,它会生成一个填充了该查询数据的表。

现在我想确保用户不能使用其他类型的查询,例如:INSERT,DROP,ALTER,UPDATE,RENAME以及可以编辑数据库中表格的所有其他查询。

我找不到任何好的例子。 (或没有正确搜索)

这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:2)

为此目的创建一个新用户。该用户应该只有SELECT个数据库访问权限。

GRANT SELECT ON database_name.* TO 'someuser'@'somehost';

利用这种方法,您不必混淆正则表达式(除非您需要客户端验证),即使验证失败,数据库本身也会适当地处理权限。

您的表单需要使用someuser来连接和运行查询,而不是应用程序其余部分使用的用户。

答案 1 :(得分:0)

如果使用MySQL并使用dbuser限制dML,则可以使用GRANT。我不知道确切的语法。或者您也可以regexstripos

验证查询
相关问题