Bom dia!
Gostaria de tira uma duvida, estou usando uma função chamada ts_read_client_info serve para retorna o usuário que esta logado na aplicação, mas esta função n esta funcionando corretamente trás usuários
Errados e às vezes certo. O que quero saber se existe outra função que eu possa usar para retorna o do usuário logado no banco.
Atenciosamente
Cícero Almeida
Função usuario
-
- Rank: Estagiário Sênior
- Mensagens: 12
- Registrado em: Seg, 05 Abr 2010 3:11 pm
- Localização: BAHIA
-
- Rank: Analista Sênior
- Mensagens: 164
- Registrado em: Sex, 22 Ago 2008 12:28 pm
- Localização: SP
-
- Rank: DBA Sênior
- Mensagens: 389
- Registrado em: Ter, 27 Jul 2010 1:34 pm
- Localização: Sapiranga - RS
- Contato:
Quem falou que programar era fácil??
Quanto mais dificil for a implementação mais valorizado seu trabalho será!
Acessem: www.gfkauer.com.br
Quanto mais dificil for a implementação mais valorizado seu trabalho será!
Acessem: www.gfkauer.com.br
Se você quer o usuário do banco tambem pode usar User.
-
- Rank: Estagiário Sênior
- Mensagens: 12
- Registrado em: Seg, 05 Abr 2010 3:11 pm
- Localização: BAHIA
Olha só a tabela v$session pode até ajudar mostra os usuários logado no banco da uma olha na função que já existia que esta sendo usada em todo sistema aqui, mas acho que ela esta se perdendo n consigo corrigi
Da uma olhada nela, por favor.
Da uma olhada nela, por favor.
CREATE OR REPLACE Function TS_SEC.TS_READ_CLIENT_INFO RETURN varchar2 IS
v_usuario varchar2(20);
v_ip varchar2(50);
v_retorno_client varchar2(100);
v_posicao number(3);
v_tamanho number(3);
v_nova_posicao number(3);
v_nome_nivel varchar2(25);
Begin
DBMS_APPLICATION_INFO.READ_CLIENT_INFO(v_Retorno_Client);
v_Posicao := INSTR(v_Retorno_Client, '@');
v_Tamanho := LENGTH(v_Retorno_Client);
v_Usuario := SUBSTR(v_Retorno_Client,1,(v_Posicao - 1));
v_Nova_Posicao := INSTR(v_Retorno_Client, '@', v_Posicao + 1);
v_IP := SUBSTR(v_Retorno_Client, (v_Posicao + 1), (v_Nova_Posicao - v_Posicao)-1);
IF v_usuario IS NULL THEN
v_usuario := USER;
END IF;
return v_usuario;
END;
/
-
- Rank: Analista Sênior
- Mensagens: 164
- Registrado em: Sex, 22 Ago 2008 12:28 pm
- Localização: SP
Essa função traz nada mais nada menos que o usuário logado na sessão.
Não vi problema nenhum na mesma.
Att,
Diego Monteiro
Não vi problema nenhum na mesma.
Att,
Diego Monteiro
-
- Rank: Estagiário Sênior
- Mensagens: 12
- Registrado em: Seg, 05 Abr 2010 3:11 pm
- Localização: BAHIA
você teria uma outra função que pra eu testa aqui estão reclamando muito desta.
-
- Rank: DBA Sênior
- Mensagens: 389
- Registrado em: Ter, 27 Jul 2010 1:34 pm
- Localização: Sapiranga - RS
- Contato:
Quem falou que programar era fácil??
Quanto mais dificil for a implementação mais valorizado seu trabalho será!
Acessem: www.gfkauer.com.br
Quanto mais dificil for a implementação mais valorizado seu trabalho será!
Acessem: www.gfkauer.com.br
Que tal esta?
CREATE OR REPLACE FUNCTION SRS_OBTER_USUARIO_FNC RETURN VARCHAR2 IS
v_usuario VARCHAR2(4000) := '';
BEGIN
BEGIN
v_usuario := NVL( owa_util.get_cgi_env('REMOTE_USER'), USER );
EXCEPTION
WHEN OTHERS THEN
v_usuario := USER;
END;
--
RETURN v_usuario;
END;
-
- Rank: Estagiário Sênior
- Mensagens: 12
- Registrado em: Seg, 05 Abr 2010 3:11 pm
- Localização: BAHIA
Não deu muito certo não, deu uns erros aqui no sistema preciso de uma função que pegue nome do usuario logado na aplicação .
Grato.
Grato.
-
- Rank: DBA Sênior
- Mensagens: 389
- Registrado em: Ter, 27 Jul 2010 1:34 pm
- Localização: Sapiranga - RS
- Contato:
Quem falou que programar era fácil??
Quanto mais dificil for a implementação mais valorizado seu trabalho será!
Acessem: www.gfkauer.com.br
Quanto mais dificil for a implementação mais valorizado seu trabalho será!
Acessem: www.gfkauer.com.br
Se seu usuário de aplicação for o mesmo que executa as consultas no banco por baixo, faz um teste usando User.
Dependendo da sua aplicação, o usuário logado nela será diferente do usuário de BANCO, dono da sessão ativa.
Muitas aplicações utilizam um sistema de autenticação próprio, com tabelas de usuários e senhas (, etc...). Este é o seu caso?
Se não for, e o usuário da APLICAÇÃO for o mesmo USUÁRIO DE BANCO, então o USER como todos já disseram antes vai retornar o que você quer.
Se você estiver logado no banco com algum client, para testar isso, é só fazer:[/quote]
Muitas aplicações utilizam um sistema de autenticação próprio, com tabelas de usuários e senhas (, etc...). Este é o seu caso?
Se não for, e o usuário da APLICAÇÃO for o mesmo USUÁRIO DE BANCO, então o USER como todos já disseram antes vai retornar o que você quer.
Se você estiver logado no banco com algum client, para testar isso, é só fazer:
selet USER from dual;
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
select USER, uid from dual;
-
- Rank: Estagiário Sênior
- Mensagens: 12
- Registrado em: Seg, 05 Abr 2010 3:11 pm
- Localização: BAHIA
Meu caso é o primeiro sistema de autenticação próprio, com tabelas de usuários e senhas essa função esta se perdendo com multiplos acessos.
n teria um que traga o usuario logado na aplicação?
n teria um que traga o usuario logado na aplicação?
-
- Rank: DBA Sênior
- Mensagens: 365
- Registrado em: Ter, 24 Mai 2005 2:24 pm
- Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP
Araraquara - SP
E ai Cicero, beleza?
uma opção seria você setar um parametro com o usuário q está logado, essa rotina iria logo após o seu código q faz a validação dele no seu sistema...
Setar :
Recuperar
[]s!!
uma opção seria você setar um parametro com o usuário q está logado, essa rotina iria logo após o seu código q faz a validação dele no seu sistema...
Setar :
SQL> begin
2 dbms_application_info.set_client_info ('Cristiano');
3 end;
4 /
SQL> set serveroutput on;
SQL>
SQL>
SQL> declare
2 vuser varchar2(50);
3 begin
4 dbms_application_info.read_client_info (vuser);
5 dbms_output.put_line('Usuário : '||vuser);
6 end;
7 /
Usuário : Cristiano
PL/SQL procedure successfully completed
-
- Rank: Estagiário Sênior
- Mensagens: 12
- Registrado em: Seg, 05 Abr 2010 3:11 pm
- Localização: BAHIA
A aplicação já funciona dessa forma, mas setando o Clint_info logo na validação ele sempre vai pegar o ultimo usuário logado, como tem muitos usuários logados simultaneamente executando diversos procedimentos quando usamos a função em um determinado ponto ela n trás o usuário correto e sim o ultimo logado.
Estou pensando em uma solução.
Estou pensando em uma solução.
-
- Rank: Estagiário Sênior
- Mensagens: 12
- Registrado em: Seg, 05 Abr 2010 3:11 pm
- Localização: BAHIA
Existe uma função no oracle que trate multiusuário ?
-
- Rank: DBA Sênior
- Mensagens: 365
- Registrado em: Ter, 24 Mai 2005 2:24 pm
- Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP
Araraquara - SP
Cicero,
Acho que nesse caso a melhor opção tecnica é você não ter uma tabela de usuários que o seu sistema possui e sim criar o usuário dentro do proprio banco...
[]s!
Acho que nesse caso a melhor opção tecnica é você não ter uma tabela de usuários que o seu sistema possui e sim criar o usuário dentro do proprio banco...
[]s!
-
- Rank: Estagiário Júnior
- Mensagens: 2
- Registrado em: Sáb, 05 Fev 2011 12:20 am
- Localização: Pato Branco
Ale
Uma forma de que daria para resolver isso era se cada usuario tiver um codigo quando é criado.
Exemplo..PCOD da pessoa, quando gravava um novo usuario ou os velhos gravar algo unico para cada pessoa...Ai em cada tabela do banco ter um campo pcod(tabela) o qual conteria o codigo do usuario que fez o registro...algo assim..ficaria padrão e ajudaria em muitas coisas.
Exemplo..PCOD da pessoa, quando gravava um novo usuario ou os velhos gravar algo unico para cada pessoa...Ai em cada tabela do banco ter um campo pcod(tabela) o qual conteria o codigo do usuario que fez o registro...algo assim..ficaria padrão e ajudaria em muitas coisas.
-
- Moderador
- Mensagens: 1177
- Registrado em: Qui, 15 Out 2009 10:28 am
- Localização: Recife
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 12 visitantes