Re: [pgbr-geral] REF: Listar triggers das Tabelas.
Nesta solução cada trigger aparece N vezes, uma pra cada combinação condição/evento; a anterior era mais limpa. Como meu objetivo é apenas comparar bancos de dados, mostrar tudo numa linha só gera menos linhas no diff. Acabei colocando na minha view de comparação a primeira solução, apesar de não ser tão elegante. Em 14 de novembro de 2012 12:04, JotaComm jota.c...@gmail.com escreveu: Pessoal, Em 13 de novembro de 2012 10:53, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2012/11/13 Paulo pa...@visualpsistemas.com.br Ola Pessoal, ** ** Preciso saber quais tabelas e quais triggers cada uma delas possui. Alguém conhece o comando para esta consulta ¿ ** O ideal seria usar o information_schema, mas pelo catálogo seria isso: SELECT r.relname AS tblname, t.tgname, pg_catalog.pg_get_triggerdef(t.oid, true) AS tgdef, t.tgenabled FROM pg_catalog.pg_class r INNER JOIN pg_catalog.pg_trigger t ON r.oid = t.tgrelid WHERE r.relkind = 'r' AND NOT t.tgisinternal ORDER BY 1, 2; Segue uma solução através do information_schema: SELECT triggers.trigger_schema, triggers.trigger_name, triggers.condition_timing, triggers.event_manipulation, tables.table_schema, tables.table_name, triggers.action_orientation, triggers.action_statement FROM information_schema.tables JOIN information_schema.triggers ON tables.table_name=triggers.event_object_table; Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados PostgreSQL Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Abraços -- JotaComm http://jotacomm.wordpress.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Atenciosamente, Alexsander da Rosa ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] REF: Listar triggers das Tabelas.
Opa, Em 14 de novembro de 2012 12:30, Alexsander Rosa alexsander.r...@gmail.comescreveu: Nesta solução cada trigger aparece N vezes, uma pra cada combinação condição/evento; a anterior era mais limpa. Como meu objetivo é apenas comparar bancos de dados, mostrar tudo numa linha só gera menos linhas no diff. Acabei colocando na minha view de comparação a primeira solução, apesar de não ser tão elegante. Sim, nesta solução se a trigger tem mais uma ação, logo vai aparecer mais de uma vez, e Isso foi proposital. Em 14 de novembro de 2012 12:04, JotaComm jota.c...@gmail.com escreveu: Pessoal, Em 13 de novembro de 2012 10:53, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2012/11/13 Paulo pa...@visualpsistemas.com.br Ola Pessoal, ** ** Preciso saber quais tabelas e quais triggers cada uma delas possui. Alguém conhece o comando para esta consulta ¿ ** O ideal seria usar o information_schema, mas pelo catálogo seria isso: SELECT r.relname AS tblname, t.tgname, pg_catalog.pg_get_triggerdef(t.oid, true) AS tgdef, t.tgenabled FROM pg_catalog.pg_class r INNER JOIN pg_catalog.pg_trigger t ON r.oid = t.tgrelid WHERE r.relkind = 'r' AND NOT t.tgisinternal ORDER BY 1, 2; Segue uma solução através do information_schema: SELECT triggers.trigger_schema, triggers.trigger_name, triggers.condition_timing, triggers.event_manipulation, tables.table_schema, tables.table_name, triggers.action_orientation, triggers.action_statement FROM information_schema.tables JOIN information_schema.triggers ON tables.table_name=triggers.event_object_table; Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados PostgreSQL Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Abraços -- JotaComm http://jotacomm.wordpress.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Atenciosamente, Alexsander da Rosa ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Abraços -- JotaComm http://jotacomm.wordpress.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] REF: Listar triggers das Tabelas.
2012/11/14 JotaComm jota.c...@gmail.com Opa, Em 14 de novembro de 2012 12:30, Alexsander Rosa alexsander.r...@gmail.com escreveu: Nesta solução cada trigger aparece N vezes, uma pra cada combinação condição/evento; a anterior era mais limpa. Como meu objetivo é apenas comparar bancos de dados, mostrar tudo numa linha só gera menos linhas no diff. Acabei colocando na minha view de comparação a primeira solução, apesar de não ser tão elegante. Sim, nesta solução se a trigger tem mais uma ação, logo vai aparecer mais de uma vez, e Isso foi proposital. Nada que um array_agg ou string_agg não resolva facilmente... =D Em 14 de novembro de 2012 12:04, JotaComm jota.c...@gmail.com escreveu: Pessoal, Em 13 de novembro de 2012 10:53, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2012/11/13 Paulo pa...@visualpsistemas.com.br Ola Pessoal, ** ** Preciso saber quais tabelas e quais triggers cada uma delas possui.*** * Alguém conhece o comando para esta consulta ¿ ** O ideal seria usar o information_schema, mas pelo catálogo seria isso: SELECT r.relname AS tblname, t.tgname, pg_catalog.pg_get_triggerdef(t.oid, true) AS tgdef, t.tgenabled FROM pg_catalog.pg_class r INNER JOIN pg_catalog.pg_trigger t ON r.oid = t.tgrelid WHERE r.relkind = 'r' AND NOT t.tgisinternal ORDER BY 1, 2; Segue uma solução através do information_schema: SELECT triggers.trigger_schema, triggers.trigger_name, triggers.condition_timing, triggers.event_manipulation, tables.table_schema, tables.table_name, triggers.action_orientation, triggers.action_statement FROM information_schema.tables JOIN information_schema.triggers ON tables.table_name=triggers.event_object_table; Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados PostgreSQL Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Atualização para 9.2 com problemas causados pelo tsearch2
Alguém já teve problemas usando o pg_upgrade causados pelo tsearch2? O pg_upgrade gerou um arquivo 'tables_using_reg' e nele contém: public.pg_ts_dict.dict_init public.pg_ts_dict.dict_lexize public.pg_ts_parser.prs_start public.pg_ts_parser.prs_nexttoken Já tentei executar drops e nada ocorre: drop FUNCTION ts_headline ( regconfig, text, tsquery ); ERROR: cannot drop function ts_headline(regconfig,text,tsquery) because it is required by the database system Bruno E. A. Silva. Analista de Sistemas. Bacharel em Sistemas de Informação Pós-graduando em Gerência de Projetos Certified Scrum Master LPIC-1 SCJP, SE 6 Novell CLA / DCTS ECR DBA Postgres --- “A caixa dizia: Requer MS Windows ou superior. Então instalei Linux.” - Sábio Desconhecido Alguns prestam serviço/consultoria de Qualidade, os outros vendem licença! ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Como usar o CRETE ROLE com password já criptografado?
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 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Como usar o CRETE ROLE com password já criptografado?
Opa, Em 14 de novembro de 2012 15:26, Renato Ricci renatoricc...@gmail.comescreveu: 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? Obrigado, Renato ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Abraços -- JotaComm http://jotacomm.wordpress.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Como usar o CRETE ROLE com password já criptografado?
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.. Renato 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.comescreveu: 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? Obrigado, Renato ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Abraços -- JotaComm http://jotacomm.wordpress.com ___ 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
Re: [pgbr-geral] Como usar o CRETE ROLE com password já criptografado?
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
Re: [pgbr-geral] Como usar o CRETE ROLE com password já criptografado?
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.brescreveu: ** 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
Re: [pgbr-geral] Como usar o CRETE ROLE com password já criptografado?
Renato, A criptografia para 123456 realmente é e10adc3949ba59abbe56e057f20f883e. Utilize no seu psql a query select Md5('senha'); para gerar a criptografia da senha que você utilizará na criação do usuário, não copie da tela do PgAdmin de um user já criado, por exemplo. Jacson Crauss 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.. Renato 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.comescreveu: 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? Obrigado, Renato ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Abraços -- JotaComm http://jotacomm.wordpress.com ___ 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 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Como usar o CRETE ROLE com password já criptografado?
É o que eu estou fazendo Jacson... gero a senha md5 e gravo na minha tabela.. ai a trigger dispara e cria o usuário no banco.. porém, no momento da criação do usuário no banco, eu não tenho a senha descriptografada.. ou seja.. eu queria criar o usuário no banco com a senha que veio da tabela (que já está no formato MD5) Renato Em 14 de novembro de 2012 16:16, Crauss, Jacson cra...@gmail.com escreveu: Renato, A criptografia para 123456 realmente é e10adc3949ba59abbe56e057f20f883e. Utilize no seu psql a query select Md5('senha'); para gerar a criptografia da senha que você utilizará na criação do usuário, não copie da tela do PgAdmin de um user já criado, por exemplo. Jacson Crauss 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.. Renato 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.comescreveu: 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? Obrigado, Renato ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Abraços -- JotaComm http://jotacomm.wordpress.com ___ 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 ___ 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
Re: [pgbr-geral] Como usar o CRETE ROLE com password já criptografado?
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). 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.comescreveu: 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? Obrigado, Renato ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Abraços -- JotaComm http://jotacomm.wordpress.com ___ 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 -- Matheus de Oliveira Analista de Banco de Dados PostgreSQL Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Como usar o CRETE ROLE com password já criptografado?
Opa, Em 14 de novembro de 2012 17:25, Renato Ricci renatoricc...@gmail.comescreveu: 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.comescreveu: 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? -- Matheus de Oliveira Analista de Banco de Dados PostgreSQL Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres ___ 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 Abraços -- JotaComm http://jotacomm.wordpress.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral