postgresql

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

Добавить комментарий