SQL Server 2005 저장 프로시저의 FTP에 대한 모범 사례는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/4246

  •  08-06-2019
  •  | 
  •  

문제

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(SQL Server 7 또는 2000의 경우 DTS, 2005 이상의 경우 SSIS)를 사용하는 것입니다.둘 다 Microsoft에서 제공되며 SQL Server 설치(적어도 Standard Edition)에 포함되어 있고 FTP 작업이 있으며 SQL Server에서 가져오기/내보내기 작업용으로 설계되었습니다.

데이터베이스 내에서 FTP를 수행해야 한다면 Kevin이 제안한 대로 .NET 어셈블리를 사용하겠습니다.그러면 프로세스를 최대한 제어할 수 있을 뿐만 아니라 보고용 테이블에 의미 있는 오류 메시지를 기록할 수도 있습니다.

또 다른 옵션은 실행할 명령에 대한 데이터베이스를 읽는 명령줄 앱을 작성하는 것입니다.그런 다음 매 분마다 또는 필요한 폴링 기간에 관계없이 해당 명령줄 앱을 호출하도록 예약된 작업을 정의할 수 있습니다.이는 데이터베이스 서버에서 CLR 지원을 활성화하는 것보다 더 안전합니다.

Kev가 예시를 게시했습니다. 여기 이는 "CLR 통합 어셈블리에서 이 작업을 수행하고 System.Net 네임스페이스의 FTP 클래스를 사용하여 간단한 FTP 클라이언트를 구축"하라는 그의 제안을 구현합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top