Olá João Paulo.. tudo bem?
no meu caso, a senha já está criptografada em MD5.. se eu fizer como vc
fez, eu penso que a senha será criptografada 2 vezes..
Nos eu caso NEW.passwd não esta criptografado né? ou seja.. é um clear
password. correto?

valeu!

Renato


Em 14 de novembro de 2012 16:06, Joao Paulo Rieg
<jpaulor...@yahoo.com.br>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?
>
> Obrigado,
> Renato
>
>
> Tenho uma trigger que está assim:
>
> CREATE OR REPLACE FUNCTION gravar_role()
>   RETURNS trigger AS
> $BODY$
> DECLARE
>  SQL TEXT;
>  BEGIN
>   IF TG_OP = 'INSERT' THEN
>    SQL = 'CREATE ROLE '||NEW.usuario||' LOGIN PASSWORD
> '||quote_literal(NEW.passwd)||' INHERIT; ';
>    EXECUTE SQL;
>    RETURN NEW;
>   ELSEIF TG_OP = 'UPDATE' THEN
>    SQL = 'ALTER ROLE '||NEW.usuario||' PASSWORD
> '||quote_literal(NEW.passwd)||'; ';
>    EXECUTE SQL;
>    RETURN NEW;
>   ELSEIF TG_OP = 'DELETE' THEN
>    SQL = 'DROP ROLE '||OLD.usuario||'; ';
>    EXECUTE SQL;
>    RETURN OLD;
>   END IF;
>  END;
> $BODY$
>   LANGUAGE plpgsql VOLATILE;
>
> CREATE TRIGGER gravar_role
>   BEFORE INSERT OR UPDATE OR DELETE
>   ON sis_user
>   FOR EACH ROW
>   EXECUTE PROCEDURE gravar_role();
>
>
> A unica preocupação que tive que fazer na aplicação é de não permitir
> modificar o nome do usuario.
> Esta trigger modifica a senha e também remove a role caso seja removido na
> tabela.
>
> Att. Rieg
>
>
> _______________________________________________
> 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