Nossa.. muito bom Matheus! Sua dica vai resolver meu problema.. Vou ganhar
um fôlego até pensar certinho sobre criar  as roles diretamente no banco..

Obrigado a todos que deram suas sugestões..

Abraço!

Renato


Em 16 de novembro de 2012 11:55, Matheus de Oliveira <
matioli.math...@gmail.com> escreveu:

>
> Em 14/11/2012 17:36, "Renato Ricci" <renatoricc...@gmail.com> escreveu:
> >
> > Na realidade, pensei em criar os usuários no banco pois quero criar
> auditoria nas minhas tabelas e pegar o current_user. Tento um único usuário
> conectado no banco ficaria meio trabalhoso eu fazer essa auditoria, pois eu
> teria que criar uma coluna chamada 'usuário' e alimentá-la através da minha
> aplicação quando um usuário fizesse ins/upd/del nas tabelas. Creio que
> através de triggers seria o ideal. Assim posso seguir esse exemplo de
> auditoria:  http://wiki.postgresql.org/wiki/Audit_trigger
>
> Se for só por isso, então você não precisa de ficar criando ROLES. Você
> pode fazer o seguinte:
>
> 1. Edite o postgresql.conf e adicione uma classe em
> CUSTOM_VARIABLE_CLASSES (se for na 9.2, não precisa disso). Por exemplo,
> app.
> 2. Pela sua aplicação assinale uma variável nessa classe. Ex:
> SER app.current_user TO seu_usuário;
> 3. Use essa variável na trigger.
>
> Agora, usar as roles, pode ser uma boa para segurança.
>
> >
> > valeu!
> >
> > Renato
> >
> >
> > Em 14 de novembro de 2012 17:29, JotaComm <jota.c...@gmail.com>
> escreveu:
> >
> >> Opa,
> >>
> >> Em 14 de novembro de 2012 17:25, Renato Ricci <renatoricc...@gmail.com>
> escreveu:
> >>>
> >>> Humm! Entendido Matheus! Faz sentido... Vou ver o que posso fazer para
> passar a senha descriptografada.. talvez eu execute o comando create role
> direto da aplicação quando o usuário digitar a senha(antes de criptografar)
> ao invés da trigger. Mas vou analisar com cautela a situação..
> >>>
> >>> De qualquer maneira muito obrigado pelo esclarecimento..
> >>
> >>
> >> Uma curiosidade: Para cada usuário da aplicação você vai criar um
> usuário no banco? Realmente existe esta necessidade?
> >>>
> >>>
> >>> T+
> >>>
> >>> Renato
> >>>
> >>>
> >>> Em 14 de novembro de 2012 17:17, Matheus de Oliveira <
> matioli.math...@gmail.com> escreveu:
> >>>>
> >>>>
> >>>> 2012/11/14 Matheus de Oliveira <matioli.math...@gmail.com>
> >>>>>
> >>>>>
> >>>>> 2012/11/14 Renato Ricci <renatoricc...@gmail.com>
> >>>>>>
> >>>>>> Não acontece erro.. O usuário é criado normalmente no banco..
> apenas sua autenticação que não é aceita..
> >>>>>> Fiz alguns testes, tipo
> >>>>>>
> >>>>>> Criei um usuario na mão:
> >>>>>>
> >>>>>> Create role teste with password '123456';
> >>>>>> a senha gerada para o usuario teste é:
> >>>>>> 'md5ce5b428f93ab83af44e2780e51c339e9'
> >>>>>>
> >>>>>> porém, um usuário da minha tabela, também com a senha 123456,
>  quando a trigger executa o create role, o usuário é criado com a senha:
> >>>>>> 'md5e10adc3949ba59abbe56e057f20f883e'
> >>>>>>
> >>>>>> Creio que a autenticação não esteja funcionando por esse motivo..
> >>>>>>
> >>>>>
> >>>>> Exato.
> >>>>>
> >>>>> O PostgreSQL não faz um MD5 puro, ele utiliza um sal (ou salt). Sem
> a senha original não vai dar, a não ser que você procure pelo exato método
> usado para o sal, é possível que seja baseado no MD5 original da senha, daí
> será possível, carece de pesquisa (ou estudo do código-fonte).
> >>>>>
> >>>>
> >>>>
> >>>> Fiz uma pergunta rápida no IRC, e parece que o método é md5(senha +
> salt), sendo o "salt" baseado no nome do usuário. Logo, a partir da senha
> já em MD5 não vai rolar.
> >>>>
> >>>> O ideal é você recriar senhas para esses usuários e pedirem pra
> recadastrarem, ou então, cria um furo de segurança temporário na aplicação
> e salva a senha quando o cara logar (evite).
> >>>>
> >>>>
> >>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> Em 14 de novembro de 2012 15:42, JotaComm <jota.c...@gmail.com>
> escreveu:
> >>>>>>
> >>>>>>> Opa,
> >>>>>>>
> >>>>>>> Em 14 de novembro de 2012 15:26, Renato Ricci <
> renatoricc...@gmail.com> escreveu:
> >>>>>>>>
> >>>>>>>> Olá pessoal..
> >>>>>>>>
> >>>>>>>> Tenho uma tabela de usuários onde armazeno o usuário e senha de
> acesso do sistema. A senha já está criptografada com MD5.
> >>>>>>>>
> >>>>>>>> Eu preciso replicar esses usuários para a tabela nativa de
> usuários do PostgreSQL através do comando create role e manter a mesma
> senha. Já tentei o comando abaixo, mas sem sucesso:
> >>>>>>>>
> >>>>>>>> Trigger Function:
> >>>>>>>> DECLARE
> >>>>>>>> v_senha varchar();
> >>>>>>>> BEGIN
> >>>>>>>> v_senha := 'md5' || (new.usu_senha);
> >>>>>>>>   execute 'CREATE ROLE ' || new.usu_usuario || ' NOINHERIT LOGIN
> UNENCRYPTED PASSWORD ' || quote_literal(v_senha) ;
> >>>>>>>>   return new;
> >>>>>>>> END;
> >>>>>>>>
> >>>>>>>> Alguma sugestão?
> >>>>>>>
> >>>>>>>
> >>>>>>> Qual o problema/erro que você esta tendo?
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>
> >>>>
>
> Abraços.
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a