O que é a melhor prática para o FTP a partir de um SQL Server 2005 procedimento armazenado?

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

  •  08-06-2019
  •  | 
  •  

Pergunta

Qual é o melhor método para a execução de comandos FTP a partir de um procedimento armazenado do SQL Server?estamos actualmente a usar algo como isto:

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

O problema é que o comando parece bem-sucedida mesmo se o FTP terminou em erro.Além disso, o uso de xp_cmdshell requer permissões especiais e poderão deixar a sala por questões de segurança.

Foi útil?

Solução

Se você estiver executando o SQL 2005, você pode fazer isso em um CLR integration montagem e use o FTP classes no System.Net espaço de nomes para construir um simples cliente de FTP.

Você tinha vantagem de ser capaz de interceptar e manipular exceções e reduzir o risco de segurança de ter que usar xp_cmdshell.

Apenas alguns pensamentos.

Outras dicas

Outra possibilidade é usar o DTS ou Integration Services (DTS para o SQL Server 7 ou 2000, o SSIS 2005 ou superior).Ambos são da Microsoft, incluído na instalação do Sql Server (em Standard edition, no mínimo) e ter uma tarefa FTP e são projetados para importação/exportação de postos de trabalho do Sql Server.

Se você precisa fazer FTP a partir de dentro do banco de dados, então eu gostaria de ir com um .LÍQUIDO de montagem como Kevin sugeriu.Que iria fornecer mais controle sobre o processo, além disso, você seria capaz de fazer mensagens de erro significativo para uma tabela para relatórios.

Outra opção seria escrever um aplicativo de linha de comando que ler o banco de dados para os comandos a executar.Em seguida, você pode definir uma tarefa agendada chamar o aplicativo de linha de comando a cada minutos, ou qualquer que seja o período de pesquisa precisava ser.Que seria mais seguro do que o habilitando o suporte do CLR no servidor de banco de dados.

Kev postado um exemplo aqui que implementa a sua sugestão para "fazer isso em uma integração do CLR, montagem e use o FTP classes no System.Net espaço de nomes para construir um simples cliente de FTP."

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top