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

votos
12

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

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

O problema é que o comando parece ter sucesso, mesmo que o FTP terminou com erro. Além disso, o uso de xp_cmdshellrequer permissões especiais e pode deixar espaço para questões de segurança.

Publicado 07/08/2008 em 02:09
fonte usuário
Em outras línguas...                            


4 respostas

votos
4

Se você estiver executando o SQL 2005 você poderia fazer isso em uma montagem de integração CLR e usar as classes de FTP no espaço de nomes System.Net para construir um cliente FTP simples.

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

Apenas alguns pensamentos.

Respondeu 07/08/2008 em 02:29
fonte usuário

votos
3

Outra possibilidade é usar DTS ou Integration Services (DTS para SQL Server 7 ou 2000, SSIS para 2005 ou superior). Ambos são da Microsoft, incluído na instalação do Sql Server (na edição Standard, pelo menos) e têm uma tarefa FTP e são projetados para trabalhos de importação / exportação a partir do SQL Server.

Respondeu 11/08/2008 em 09:17
fonte usuário

votos
2

Se você precisa fazer FTP de dentro do banco de dados, então eu iria com um assembly .NET como Kevin sugeriu. Isso daria mais controle sobre o processo, mais você seria capaz de registrar mensagens de erro significativo para uma mesa para relatar.

Outra opção seria escrever um aplicativo de linha de comando que ler o banco de dados para os comandos a serem executados. Você poderia, então, definir uma tarefa agendada para chamar esse aplicativo de linha de comando a cada minutos ou qualquer que seja o período de votação precisava ser. Isso seria mais seguro do que ativar o suporte CLR no servidor de banco de dados.

Respondeu 07/08/2008 em 03:16
fonte usuário

votos
1

Kev postou um exemplo aqui que implementa sua sugestão de "fazer isso em um conjunto de integração CLR e usar as classes de FTP no espaço de nomes System.Net para construir um cliente FTP simples."

Respondeu 15/09/2008 em 14:52
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more