Инструменты пользователя

Инструменты сайта


Боковая панель


Программное обеспечение
Черновики


Краткая инструкция

howto:services:postgresql

postgresql

Команды psql

\l - список баз данных.

\c dbname - подсоединение к БД dbname.

\dn - список схем

\dt - список всех таблиц.

\d table - структура таблицы table.

\du - список всех пользователей и их привилегий.

\dt+ - список всех таблиц с описанием.

\dt *s* - список всех таблиц, содержащих s в имени.

\i FILE - выполнить команды из файла FILE.

\o FILE - сохранить результат запроса в файл FILE.

\a - переключение между режимами вывода: с/без выравнивания.

\q - выход

Схема

создать схему:

CREATE SCHEMA имя_схемы [ AUTHORIZATION указание_роли ] [ элемент_схемы [ … ] ]

Пользователи и права

Создание пользователя

CREATE USER username WITH PASSWORD 'your_password';

Смена пароля

ALTER USER user WITH PASSWORD 'password';

Ввод хэшированного пароля пароля

ALTER USER User WITH ENCRYPTED PASSWORD 'md5788e7531f05a27b36bbb6187d58db2c8';

Где пароль хэшируется алгоритмом 'md5' || md5('Pass' || 'User'). Например, в Python3:

import hashlib
print('md5' + hashlib.md5("PassUser".encode()).hexdigest())

Включение пользователя в группу

GRANT group TO user;

Разрешения

подключение к БД

GRANT CONNECT ON DATABASE database_name TO role_name;

Кроме того, для удалённого подключения с паролем нужно добавить в pg_hba.conf:

# TYPE DATABASE       USER      CIDR-ADDRESS   METHOD
host   database_name  user_name 192.168.0.1/32 md5

# or for coonect all users to all databases from all ip-addresses:
host   all            all       0.0.0.0/0      md5

использование схемы

GRANT USAGE ON SCHEMA schema_name TO role_name;

селект в таблице

GRANT SELECT ON table_name TO role_name;

селект во всех таблицах схемы

GRANT SELECT ON ALL TABLES IN SCHEMA schema_name TO role_name;

разрешение по-умолчанию для новых таблиц схемы

ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT SELECT ON TABLES TO role_name;

Просмотр разрешений

SELECT * FROM information_schema.role_table_grants;
howto/services/postgresql.txt · Последние изменения: 2023/12/04 10:49 — Алексей Кожевников