• Как использовать в Ruby 2.1.1 user defined type postgresql?

    @BorisIvanov Автор вопроса
    спустя год, отвечу сам себе :) надо использовать json, это решит проблему передачи комплексных данных, postgresql с 9.4 весьма успешно работает с json.
    Офтоп. и да вместо RoR, я выбрал django в python есть возможность использовать пользовательские типы для передачи в postgresql
    Ответ написан
    Комментировать
  • Требуется хранить пароль в базе - как?

    @BorisIvanov
    можно шифровать пароли следующим образом
    CREATE OR REPLACE FUNCTION el_encrypt
    (
    	value text
    )
    RETURNS bytea
    AS $BODY$
    BEGIN
    	RETURN pgp_pub_encrypt(value, dearmor(pg_read_file('pgpkeys/pgp-pg-el-public.key')));  
    END;
    $BODY$ LANGUAGE plpgsql
    SECURITY DEFINER;


    расшифровывать

    CREATE OR REPLACE FUNCTION el_decrypt
    (
    	value bytea
    ) RETURNS text AS 
    $BODY$
    BEGIN
     RETURN pgp_pub_decrypt(value, dearmor(pg_read_file('pgpkeys/pgp-pg-el-private.key')));
    END;
    $BODY$
    LANGUAGE plpgsql
    SECURITY DEFINER;


    при получении дампа базы, данные не возможно прочесть без ключей, ключи хранятся в файловой системе. это достаточно простой и относительно защищенный вариант хранения. как генерить ключи есть в описании postgresql
    Ответ написан
    Комментировать