none
Converter procedures de Oracle para Sql Server RRS feed

  • Pergunta

  • Olá pessoal, tudo bem?

    Estou com um problema em minha aplicação. Estou migrando um sistema de Oracle para SQL Server 2000 e tenho duas procedures que não tô conseguindo converter. São as seguintes:
    ------------------------------------------------------------------------
    create or replace procedure set_numeroip(numeroip IN VARCHAR2) is

    begin

    dbms_session.set_context('tjba_context','numeroip',numeroip);

    end;
    ------------------------------------------------------------------------

    A outra é:

    --------------------------------------------------------------------------
    create or replace procedure set_usuario(usuario IN VARCHAR2 := USER) is

    begin

     dbms_session.set_context('my_context','app_user',usuario);

    end;
    --------------------------------------------------------------------------


    A primeira pega o IP do usuário do sistema e seta na sessão do usuário do banco. A segunda pega o usuário do sistema e seta na sessão do usuário do banco. O que não consegui fazer é como setar algo na sessão do usuário do banco no SQL Server. Como poderei converter essas procedures?

    Abraços.

    segunda-feira, 3 de julho de 2006 19:27

Todas as Respostas

  •  

     vc. nao precisa fazer isso no sql server, se pegar o

     

    select host_name() , user_name(), @@SPID

     

    vc. vai ter essas informacoes, veja se e isso qualquer coisa retonre.;

     

    Abs;

    segunda-feira, 3 de julho de 2006 19:52
  •  Marcelo Colla wrote:

    vc. nao precisa fazer isso no sql server, se pegar o

    select host_name() , user_name(), @@SPID

    vc. vai ter essas informacoes, veja se e isso qualquer coisa retonre.;

    Abs;



    Valeu Marcelo mas creio que vou precisar realmente fazer isso porque o sistema utiliza essas informações. É um sistema de segurança em que são cadastrados outros sistemas.

    Se não setar essas informações na sessão do usuario no banco o sistema não funciona. A procedure seta o usuário que logou no sistema na sessão do banco.

    Abraços.
    segunda-feira, 3 de julho de 2006 19:58
  • entendo, mais nao sei extamente como o oracle faz isso na pratica, vc. pode criar as procs como eu te passei onde ele vai pegar o host, ( caso seja um endereco externo ele vai logar o ip ) e a sessao @@spid, acho que existe alguma diferenca de conceito de banco, vc. pode detalhar mais como usuaria essas procs na sua aplicacao ?
    segunda-feira, 3 de julho de 2006 22:27
  • Marcelo, o sistema funciona assim:

    É um sistema WEB que cria perfis de usuários para outros sistemas. É um sistema de autenticação que foi concebido inicialmente utilizando banco Oracle e eu tive a incumbência de converter para SQL Server.

    O sistema pega o ip e o login do usuário que acabou de logar e seta na sessão do usuário no banco para criar um usuário único no banco para aquele usuário logado no sistema. O Oracle tem a idéia de contexto de usuário. É o que faz o dbms_session.set_context. Tô tendo dificuldade porque conheço mais Oracle do que SQL Server.

    Fiquei na dúvida em relação ao código que você me passou porque o banco vai pegar o usuário e o ip do cara que logar... mas o login vai ser em uma máquina diferente da que tá o banco. Fiquei na dúvida sde o banco vai pegar o endereço correto.

    Como é um sistema WEB, pode ocorrer de ter mais de um usuário acessando o sistema ao mesmo tempo. É um sistema que vai funcionar na intranet de uma Universidade e quem vai acessar vai ser somente funcionários da Universidade.

    A idéia do sistema é essa. Caso esteja um pouco complicado pra entender e você precise de mais informações pode mandar um e-mail pra mim: joilton@gmail.com

    Desde já agradeço a atenção e a ajuda.

    Abraços,

    Joilton.
    terça-feira, 4 de julho de 2006 03:35