如何限制SQL查询是非破坏性的?

时间:2010-02-21 08:48:47

标签: python sql django security sql-injection

我打算用强大的过滤器构建一个Django日志查看应用程序。我想让用户使用一些自定义(可能是特定于DB的)SELECT查询来精细过滤结果。

但是,我不喜欢让用户对数据库进行写访问。有没有办法确保查询不会更改数据库中的任何内容?就像一个'干跑'旗帜?或者有没有办法过滤SELECT查询,以便它们不会以任何方式造成伤害?

我考虑过将查询作为单独的MySQL用户运行,但我宁愿避免麻烦。我还考虑过使用Google App Engine的GQL'语言',但如果有更清晰的解决方案,我当然希望听到它:)

感谢。

2 个答案:

答案 0 :(得分:14)

与仅被授予SELECT权限的用户连接。这样的情况就是为什么存在权限的原因。

答案 1 :(得分:1)

创建并使用不可修改的视图。