Для разрешения подключения со всех адресов пишем в файле postgresql.conf
listen_addresses = '*'
Для разрешения пользователей указываем в файле pg.hba.conf
#IPv4 local connections: host all all 0.0.0.0/0 md5
Выполнение команд
sudo -u postgres psql
Создание пользователя:
sudo -u postgres createuser [username]
Применение пароля для пользователя:
$ sudo -u postgres psql psql=# alter user with encrypted password '';
Создание функции с IF ELSE
CREATE OR REPLACE FUNCTION is_accesses(role_name varchar, currentuser integer, claims varchar, user_id integer) RETURNS integer AS $BODY$ BEGIN IF role_name is null and user_id is null then RETURN 1; ELSEIF (role_name is not null and claims is not null and POSITION(CONCAT('.', role_name, '.') IN claims) > 0) then RETURN 2; ELSEIF (role_name is not null and claims is not null and POSITION(CONCAT('.', role_name, '.') IN claims) > 0) then RETURN 3; ELSEIF (role_name is null and currentuser = user_id) then RETURN 4; else RETURN 0; end if; END $BODY$ LANGUAGE plpgsql;
Создание функции
CREATE OR REPLACE FUNCTION get_object_fields() RETURNS SETOF sys_users AS $ BEGIN return QUERY SELECT * from sys_users; END $ LANGUAGE plpgsql;
или
CREATE OR REPLACE FUNCTION get_object_fields() RETURNS SETOF RECORD AS $ SELECT department_id WHERE ... $ LANGUAGE sql STABLE;
Создание backup’a
sudo su - postgres pg_dump postgres > postgres_db.sql
Восстановить. Нужно заранее создать бд и пользователя.
su - postgres psql -d database -f databas.sql ==== psql -U postgres dbname < infile