簡體   English   中英

SQL Server 2005 存儲過程中 FTP 的最佳實踐是什么?

[英]What is best practice for FTP from a SQL Server 2005 stored procedure?

從 SQL Server 存儲過程執行 FTP 命令的最佳方法是什么? 我們目前使用這樣的東西:

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

問題是即使 FTP 以錯誤結束,命令似乎也能成功。 此外, xp_cmdshell的使用需要特殊權限,並且可能為安全問題留有余地。

如果您正在運行SQL 2005,則可以在CLR集成程序集中執行此操作,並使用System.Net命名空間中的FTP類來構建簡單的FTP客戶端。

您可以從捕獲和處理異常中受益,並降低必須使用xp_cmdshell的安全風險。

只是一些想法。

另一種可能性是使用DTS或Integration Services(DTS用於SQL Server 7或2000,SSIS用於2005或更高版本)。 兩者都來自Microsoft,包含在Sql Server安裝中(至少在標准版中),並且具有FTP任務,專為從Sql Server導入/導出作業而設計。

如果你需要在數據庫中進行FTP,那么我會像Kevin建議的那樣使用.NET程序集。 這將提供對流程的最大控制,此外,您還可以將有意義的錯誤消息記錄到表中以進行報告。

另一種選擇是編寫一個命令行應用程序來讀取數據庫以運行命令。 然后,您可以定義一個計划任務,以便每隔幾分鍾調用該命令行應用程序,或者輪詢所需的任何時間。 這比在數據庫服務器中啟用CLR支持更安全。

Kev 在這里發布了一個例子它實現了他的建議“在CLR集成組件中執行此操作,並使用System.Net命名空間中的FTP類來構建一個簡單的FTP客戶端。”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM