【问题标题】:Code to Validate SQL SELECT Statement Script验证 SQL SELECT 语句脚本的代码
【发布时间】:2014-08-06 12:17:29
【问题描述】:

如何在不使用 .Net 和 C# 执行的情况下验证 SELECT 语句?

如果 sql 无效或 sql 不是 SELECT 操作(例如:alter、insert、delete ......)我想返回错误行。

这个问题很像:Code to validate SQL Scripts。但我不想接受任何 sql 脚本。我只想接受 SELECT 语句。

【问题讨论】:

    标签: c# sql .net sql-server


    【解决方案1】:

    【讨论】:

    • 感谢您的帮助,但这解决了 SQL 脚本验证问题。如何解决我关于 SELECT 的问题?我只想验证选择语句。
    • 您可以按照 SverreN 的回答进行检查,但这可能非常不安全。最好按照这个答案检查它,并且只在一个非常有限的 SQL 用户帐户下运行它,该用户帐户只有 SELECT 权限。
    • 跳出框框思考,您可以确保用户是只读用户。然后他们永远无法更新数据。不要依赖手动解析来排除数据更改。他们可以运行一个执行更新/插入的存储过程,而你不会知道。
    【解决方案2】:

    使用正则表达式检查:
    regex = "SELECT [*] FROM [*]"

    【讨论】:

    • 好主意,但必须非常小心,使用的正则表达式不允许像 cmets 等注入向量。
    猜你喜欢
    • 2011-03-17
    • 2011-06-08
    • 1970-01-01
    • 2020-01-22
    • 2020-01-12
    • 2012-10-02
    • 2014-12-05
    • 2013-10-10
    • 1970-01-01
    相关资源
    最近更新 更多