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

2 投票
2 回答
607 浏览
提问于 2025-04-15 19:32

我打算做一个Django的日志查看应用,里面有强大的过滤功能。我希望用户能够通过一些自定义的(可能是数据库特定的)SELECT查询,来精细地过滤结果。

不过,我不太想让用户有写入数据库的权限。有没有办法确保查询不会对数据库造成任何改变?比如说,有没有类似“干运行”这样的标志?或者有没有办法过滤SELECT查询,让它们不会造成任何伤害?

我考虑过用一个单独的MySQL用户来运行这些查询,但我更想避免这种麻烦。我也想过使用Google App Engine的GQL“语言”,但如果有更简单的解决方案,我当然很想听听 :)

谢谢。

2 个回答

1

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

14

连接一个只被授予了SELECT权限的用户。像这样的情况就是为什么权限存在的原因。

撰写回答