Inquiridor
Converter procedures de Oracle para Sql Server

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) isbegin
dbms_session.set_context('tjba_context','numeroip',numeroip);
end;
A outra é:
------------------------------------------------------------------------
--------------------------------------------------------------------------
create or replace procedure set_usuario(usuario IN VARCHAR2 := USER) isbegin
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.
Todas as Respostas
-
-
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. -
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 ?
-
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.