【问题标题】:How can I limit an SQL query to be nondestructive?如何将 SQL 查询限制为非破坏性的?
【发布时间】:2011-01-19 07:21:48
【问题描述】:

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

但是,我不喜欢授予用户对数据库的写入权限。有没有办法确保查询不会更改数据库中的任何内容?像“试运行”标志?或者有没有办法过滤 SELECT 查询,使它们不会以任何方式有害?

我曾考虑以单独的 MySQL 用户身份运行查询,但我宁愿避免麻烦。我还考虑过使用 Google App Engine 的 GQL“语言”,但如果有更简洁的解决方案,我当然想听听 :)

谢谢。

【问题讨论】:

    标签: python sql django security sql-injection


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-11
        • 1970-01-01
        • 1970-01-01
        • 2011-12-16
        • 1970-01-01
        • 1970-01-01
        • 2017-08-26
        • 2019-09-04
        相关资源
        最近更新 更多