Для разрешения подключения со всех адресов пишем в файле 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
