【问题标题】:Finding SQL queries in compiled app在已编译的应用程序中查找 SQL 查询
【发布时间】:2008-09-20 22:17:04
【问题描述】:

我刚刚继承了一个服务器应用程序,但是似乎数据库的唯一副本已损坏并且工作版本已消失,因此是否可以找到应用程序正在运行的查询以便我可以尝试重建表?

编辑:我有一些没有扩展名的文件,我的命名与数据库相同,IDK 如果有什么可以用它们做的,但如果有人有任何想法。

接受的答案似乎最有可能成功,但是我能够找到另一个备份,所以我没有测试它。

【问题讨论】:

    标签: sql-server


    【解决方案1】:

    打开 SQL 查询日志并观察应用程序的要求。

    【讨论】:

    • 任何建议如何做到这一点?我是个 LAMP 人,而且我在我的领域之外。
    • 使用 SQL Server 配置管理器访问服务器。 (例如从 MSDN 安装。)然后您可以编辑服务器属性,包括日志记录属性。打开最详细的日志。日志条目本身很明显,因为它们显然是 SQL 查询。
    【解决方案2】:

    如果您可以访问 unix 机器,或者可以安装 cygwin 实用程序 (http://www.cygwin.com/),则有一个名为“strings”的命令将搜索任何文件类型并打印出任何连续的字符数据序列 (可能只是ASCII)。该工具应该可以帮助您识别应用程序中嵌入的 sql 查询。

    【讨论】:

    • 字符串 | grep -E 'UPDATE|SELECT|...' 可能会很好用。 :-)
    【解决方案3】:

    查找 SQL Profiler,它(取决于您拥有的版本)通常可以从查询分析器 (isqlw.exe) 或管理工作室(在更高版本中)的工具菜单中获得。

    使用 SQL 分析器,您可以在服务器上运行跟踪,它可以显示应用程序正在请求哪些查询。

    【讨论】:

      【解决方案4】:

      您可以在程序上运行 UNIX 命令“strings”来查看它是否嵌入了 sql 字符串:

      http://en.wikipedia.org/wiki/Strings_(Unix)

      【讨论】:

        【解决方案5】:

        您可以对要搜索的文件进行正则表达式

        • “选择 *”
        • “更新 *”
        • “从 * 中删除”
        • “插入 *”

        【讨论】:

        • 这些是已编译的应用程序。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-22
        相关资源
        最近更新 更多