【问题标题】:What is best practice for FTP from a SQL Server 2005 stored procedure?SQL Server 2005 存储过程中的 FTP 最佳实践是什么?
【发布时间】:2010-09-05 11:27:42
【问题描述】:

从 SQL Server 存储过程执行 FTP 命令的最佳方法是什么?我们目前使用这样的东西:

EXEC master..xp_cmdshell 'ftp -n -s:d:\ftp\ftpscript.xmt 172.1.1.1'

问题在于,即使 FTP 以错误结束,该命令似乎也成功了。此外,使用xp_cmdshell 需要特殊权限,可能会出现安全问题。

【问题讨论】:

    标签: sql-server ftp


    【解决方案1】:

    如果您运行的是 SQL 2005,您可以在 CLR 集成程序集中执行此操作,并使用 System.Net 命名空间中的 FTP 类来构建一个简单的 FTP 客户端。

    您将受益于能够捕获和处理异常并降低必须使用 xp_cmdshell 的安全风险。

    只是一些想法。

    【讨论】:

      【解决方案2】:

      另一种可能性是使用 DTS 或集成服务(DTS 用于 SQL Server 7 或 2000,SSIS 用于 2005 或更高版本)。两者都来自 Microsoft,包含在 Sql Server 安装中(至少在标准版中)并具有 FTP 任务,并且专为从 Sql Server 导入/导出作业而设计。

      【讨论】:

        【解决方案3】:

        如果您需要从数据库中进行 FTP,那么我会按照 Kevin 的建议使用 .NET 程序集。这将提供对流程的最大控制,而且您可以将有意义的错误消息记录到表中以进行报告。

        另一种选择是编写一个命令行应用程序来读取数据库以运行命令。然后,您可以定义一个计划任务,以每分钟或任何需要的轮询周期调用该命令行应用程序。这比在数据库服务器中启用 CLR 支持更安全。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-24
          • 2013-05-25
          • 1970-01-01
          • 2010-12-28
          • 2010-09-17
          • 2011-12-03
          相关资源
          最近更新 更多