none
Procedure no master não existe RRS feed

  • Pergunta

  • Estou tentando gravar um arquivo gerado pelo comando xp_cmdshell no linux,mas estou tendo problemas de permissão.

    Andei pesquisando e encontrei essa procedure do banco master sp_xp_cmdshell_proxy_account que repassa o usuario e a senha para a

    execução da procedure xp_cmdshell.A questão é a seguinte no meu banco master não existe essa procedure sp_xp_cmdshell_proxy_account

    como posso resolver essa questão de gravação do sql server gerando arquivo no linux?

    Grtao pela atenção!!!

     


    talles
    • Editado talles quarta-feira, 20 de outubro de 2010 18:35 correção
    • Movido Gustavo Maia Aguiar quarta-feira, 20 de outubro de 2010 19:30 (De:SQL Server - Desenvolvimento Geral)
    quarta-feira, 20 de outubro de 2010 16:54

Respostas

  • Boa Tarde,

    Acredito que o mais adequado seja não utilizar xp_cmdshell para esse fim, pois, além dos problemas de segurança, a transferência de arquivos pode incorrer em problemas de desempenho já que a memória utilizada para transferir o arquivo irá ser a do SQL Server (arquivos grandes podem gerar problemas significativos).

    Em todo caso, se o SQL Server for realmente utilizado para esse fim, o problema não parece estar relacionado à ausência da sp_xp_cmdshell_proxy_account. Se você não definir nada, a conta utilizada para gravação de arquivos será a conta que sobe o serviço do SQL Server. É preciso garantir que essa conta consiga escrever no Linux e provavelmente isso vai envolver configurações adicionais para que o Windows e o Linux se falem. Preferencialmente essa conta não deve ser a Local System Account ou a Network Service.

    Não adiantaria usar a sp_xp_cmdshell_proxy_account para definir usuário e senha, pois, seriam usuários e senhas de Windows e não do Linux. Vale a pena lembrar que essa alteração irá afetar todo e qualquer uso da xp_cmdshell (não somente a cópia de arquivos).

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 20 de outubro de 2010 19:30
    • Marcado como Resposta talles quarta-feira, 20 de outubro de 2010 20:35
    quarta-feira, 20 de outubro de 2010 19:30

Todas as Respostas

  • Boa Tarde,

    Acredito que o mais adequado seja não utilizar xp_cmdshell para esse fim, pois, além dos problemas de segurança, a transferência de arquivos pode incorrer em problemas de desempenho já que a memória utilizada para transferir o arquivo irá ser a do SQL Server (arquivos grandes podem gerar problemas significativos).

    Em todo caso, se o SQL Server for realmente utilizado para esse fim, o problema não parece estar relacionado à ausência da sp_xp_cmdshell_proxy_account. Se você não definir nada, a conta utilizada para gravação de arquivos será a conta que sobe o serviço do SQL Server. É preciso garantir que essa conta consiga escrever no Linux e provavelmente isso vai envolver configurações adicionais para que o Windows e o Linux se falem. Preferencialmente essa conta não deve ser a Local System Account ou a Network Service.

    Não adiantaria usar a sp_xp_cmdshell_proxy_account para definir usuário e senha, pois, seriam usuários e senhas de Windows e não do Linux. Vale a pena lembrar que essa alteração irá afetar todo e qualquer uso da xp_cmdshell (não somente a cópia de arquivos).

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 20 de outubro de 2010 19:30
    • Marcado como Resposta talles quarta-feira, 20 de outubro de 2010 20:35
    quarta-feira, 20 de outubro de 2010 19:30
  • Gustavo muito obrigado pela sua dica.

    Implementei a sua idéia e funcionou conforme o desejado.

    Muito obrigado!!!


    talles
    quarta-feira, 20 de outubro de 2010 20:35