是否可以在没有xp_cmdshell的情况下从SQL服务器上传ftp文件?



理想情况下,希望从SQL查询或SQL代理作业运行某些内容,以FTP将文件上传到外部站点,但不能使用xp_cmdshell。

是的。您需要将工作拆分为两个单独的任务:

  1. 如何从 SQL Server 中运行可执行文件或批处理程序,而无需求助于xp_cmdshell。
    有关如何执行此操作的示例可以在:
    https://www.mssqltips.com/sqlservertip/2014/replace-xpcmdshell-command-line-use-with-sql-server-agent/中找到。
    您应该修改此示例以满足您的特定需求。建议的存储过程将:
    • run 命令作为参数在创建的动态 SQL 作业中传递(指示 CmdExec 子系统)
    • 等待 SQL 作业完成(查询 msdb.dbo.sysjobactivity)或在达到预定义超时值时终止作业
    • 返回作业执行结果(查询 msdb.dbo.sysjobhistory)
    • 删除作业

注意:需要完整版本的 SQL Server。如果您使用的是快速版本,则必须手动定义 Windows 计划任务。

  1. 如何使用批处理程序通过 ftp 发送文件。
    请参阅:
    如何使用批处理文件进行ftp?

最新更新