E se tu fizer, Renato, a na tua trigger o seguinte: Trigger Function: DECLARE v_senha varchar(); BEGIN select Md5(new.usu_senha) into v_senha; execute 'CREATE ROLE ' || new.usu_usuario || ' NOINHERIT LOGIN UNENCRYPTED PASSWORD ' || quote_literal(v_senha) ; return new; END;
A parte em vermelha eu mudei da que tu tinha colado. 2012/11/14 Joao Paulo Rieg <[email protected]> > ** > Correto Renato! > > A senha que envio não é criptografada, pois na tela de cadastro que fiz > não criptografo a mesma. > Na verdade, a tabela de usuarios que fiz é para fins de obter informações > mais detalhadas do mesmo. > O login do sistema nao faço pela tabela e sim pela role. se a role existe > e o usuario digitar a senha correta, ele loga no banco e terá acesso as > tabelas de acordo com as permissões concedidas à role. Neste caso o próprio > banco vai administrar essa questão das permissões aos usuarios logados. > Na questão de criptografia da senha,... o banco faz a > criptografia automatica quando crio/modifico a role e também no login. > > Att. Rieg > > > > > > 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 > <[email protected]>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 >> [email protected] >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> >> > ------------------------------ > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > >
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
