none
Chamad de Proc MSSQL no Oracle com DBLink RRS feed

  • Pergunta

  • Pessoal boa tarde,

    Desenvolvemos um proc no SQL e criamos um DBLink no Oracle, sendo este autenticado pelo SA, porém ao tentar executar a PROC do SQL pelo Oracle ele fala que não encontra a proc. Ja fiz alguns testes e pelo DBLink eu faço insert, update e select sem problemas.

    Será que eu tenho que dar mais alguma permissão no SQL para que o Cliente no Oracle consiga executar essa PROC?


    W.Marrane
    terça-feira, 13 de julho de 2010 16:34

Respostas

  • Marrane,

    Executando a Procedure de dentro do Oracle, você recebe a mensagem que a mesma não foi encontrada?

    Através deste DBLink, você esta estabelecendo um canal de comunicação e acesso aos objetos do SQL Server via Oracle?

    Você poderia postar o código utilizado para tentar executar este procedure? Talvez seja necessário especificar o owner da Stored Procedure no código de execução.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    quarta-feira, 14 de julho de 2010 02:09
  • Boa Tarde,

    Minha sugestão seria ligar o Profiler para verificar como o ORACLE está enviando a requisição para o SQL Server e posteriormente efetuar as correções necessárias.

    Sugiro também rever as questões de segurança, pois, "linkar" com o SA é arriscado. Da forma como está, qualquer um que tiver acesso ao DBLink poderá fazer qualquer tarefa no SQL Server. Imagino que o SA esteja sendo utilizado apenas para propósitos de troubleshooting, mas é recomendável removê-lo posteriormente.

    [ ]s,

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

    Dois anos de blog, vários artigos, muitas visitas e valiosos feedbacks
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!1105.entry


    Classifique as respostas. O seu feedback é imprescindível
    quarta-feira, 14 de julho de 2010 16:04
  • Olá W. Marrane,

    Se a requisição é feita com SA, filtre os registros do Profiler relacionados ao login SA. Se isso não for suficente você pode incluir no hostname todas as requisições feitas a partir do servidor ORACLE.

    [ ]s,

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

    Dois anos de blog, vários artigos, muitas visitas e valiosos feedbacks
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!1105.entry


    Classifique as respostas. O seu feedback é imprescindível
    • Marcado como Resposta Fernanda Simões quinta-feira, 15 de julho de 2010 18:27
    quarta-feira, 14 de julho de 2010 17:20

Todas as Respostas

  • Marrane,

    Executando a Procedure de dentro do Oracle, você recebe a mensagem que a mesma não foi encontrada?

    Através deste DBLink, você esta estabelecendo um canal de comunicação e acesso aos objetos do SQL Server via Oracle?

    Você poderia postar o código utilizado para tentar executar este procedure? Talvez seja necessário especificar o owner da Stored Procedure no código de execução.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    quarta-feira, 14 de julho de 2010 02:09
  • No PL/SQL estamos tentando executar da seguinte forma:

     

     

    beign

      ps_executa_protheus@hsodbc@qt('10.10.45.5', '6677', 'FATURA', 'wmarrane', 'fire2910', 'U_xPFATSI02', '95', '08');

    End


    W.Marrane
    quarta-feira, 14 de julho de 2010 14:28
  • Boa Tarde,

    Minha sugestão seria ligar o Profiler para verificar como o ORACLE está enviando a requisição para o SQL Server e posteriormente efetuar as correções necessárias.

    Sugiro também rever as questões de segurança, pois, "linkar" com o SA é arriscado. Da forma como está, qualquer um que tiver acesso ao DBLink poderá fazer qualquer tarefa no SQL Server. Imagino que o SA esteja sendo utilizado apenas para propósitos de troubleshooting, mas é recomendável removê-lo posteriormente.

    [ ]s,

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

    Dois anos de blog, vários artigos, muitas visitas e valiosos feedbacks
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!1105.entry


    Classifique as respostas. O seu feedback é imprescindível
    quarta-feira, 14 de julho de 2010 16:04
  • Gustavo,

    Como identifico esse processo no Profiler? A idéia de adotar o SA se deu pq precisamos tentar mitigar o problema de permissão e concordo do risco mecionado e estaremos removendo essa autenticação assim que conseguirmos executar essa procedure.

     


    W.Marrane
    quarta-feira, 14 de julho de 2010 17:18
  • Olá W. Marrane,

    Se a requisição é feita com SA, filtre os registros do Profiler relacionados ao login SA. Se isso não for suficente você pode incluir no hostname todas as requisições feitas a partir do servidor ORACLE.

    [ ]s,

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

    Dois anos de blog, vários artigos, muitas visitas e valiosos feedbacks
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!1105.entry


    Classifique as respostas. O seu feedback é imprescindível
    • Marcado como Resposta Fernanda Simões quinta-feira, 15 de julho de 2010 18:27
    quarta-feira, 14 de julho de 2010 17:20