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

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


howto:services:postgresql

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
howto:services:postgresql [2017/11/02 00:08]
Алексей Кожевников создано
howto:services:postgresql [2024/05/15 14:27] (текущий)
Алексей Кожевников
Строка 3: Строка 3:
 ===== Команды psql ===== ===== Команды psql =====
  
-\l - список баз данных.+''​\l'' ​- список баз данных.
  
-\c dbname - подсоединение к БД dbname+''​\c'' ​dbname - подсоединение к БД dbname.
-\dt - список всех таблиц.+
  
-\d table - структура таблицы table.+''​\dn'' ​- список схем
  
-\du - список всех ​пользователей и их привилегий.+''​\dt'' ​- список всех ​таблиц.
  
-\dt+ - список всех ​таблиц ​с описанием.+''​\d table'' ​- структура ​таблицы table.
  
-\dt *s* - список всех ​таблиц, содержащих в имени.+''​\du'' ​- список всех ​пользователей и их привилегий.
  
-\i FILE выполнить команды из файла FILE.+''​\dt+'' ​список всех таблиц с описанием.
  
-\o FILE - сохранить результат запроса в файл FILE.+''​\dt *s*''​ - список всех таблиц,​ содержащих s в имени. 
 + 
 +''​\i FILE''​ - выполнить команды из файла FILE. 
 + 
 +''​\o FILE'' ​- сохранить результат запроса в файл FILE. 
 + 
 +''​\a''​ - переключение между режимами вывода:​ с/без выравнивания. 
 + 
 +''​\q''​ - выход 
 + 
 +===== Схема ===== 
 + 
 +создать схему:​ 
 + 
 +CREATE SCHEMA имя_схемы [ AUTHORIZATION указание_роли ] [ элемент_схемы [ ... ] ] 
 + 
 +===== Пользователи и права ===== 
 + 
 +==== Создание пользователя ==== 
 +<​code>​ 
 +CREATE USER username WITH PASSWORD '​your_password';​ 
 +</​code>​ 
 + 
 +==== Смена пароля ==== 
 +<​code>​ 
 +ALTER USER user WITH PASSWORD '​password';​ 
 +</​code>​ 
 + 
 +==== Ввод хэшированного пароля пароля ==== 
 +<​code>​ 
 +ALTER USER User WITH ENCRYPTED PASSWORD '​md5788e7531f05a27b36bbb6187d58db2c8';​ 
 +</​code>​ 
 +Где пароль хэшируется алгоритмом '​md5'​ || md5('​Pass'​ || '​User'​). 
 +Например,​ в Python3: 
 +<​code>​ 
 +import hashlib 
 +print('​md5'​ + hashlib.md5("​PassUser"​.encode()).hexdigest()) 
 +</​code>​ 
 + 
 +==== Включение пользователя в группу ==== 
 +<​code>​ 
 +GRANT group TO user; 
 +</​code>​ 
 + 
 +==== Разрешения ==== 
 + 
 +=== подключение к БД === 
 +<​code>​ 
 +GRANT CONNECT ON DATABASE database_name TO role_name;​ 
 +</​code>​ 
 + 
 +Кроме того, для удалённого подключения с паролем нужно добавить в pg_hba.conf:​ 
 +<​code>​ 
 +# 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 
 +</​code>​ 
 + 
 + 
 +=== использование схемы === 
 +<​code>​ 
 +GRANT USAGE ON SCHEMA schema_name TO role_name;​ 
 +</​code>​ 
 + 
 +=== селект в таблице === 
 +<​code>​ 
 +GRANT SELECT ON table_name TO role_name;​ 
 +</​code>​ 
 + 
 +=== селект во всех таблицах схемы === 
 +<​code>​ 
 +GRANT SELECT ON ALL TABLES IN SCHEMA schema_name TO role_name;​ 
 +</​code>​ 
 + 
 +=== разрешение по-умолчанию для новых таблиц схемы === 
 +<​code>​ 
 +ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT SELECT ON TABLES TO role_name;​ 
 +</​code>​ 
 + 
 +==== Просмотр разрешений ==== 
 +<​code>​ 
 +SELECT * FROM information_schema.role_table_grants;​ 
 +</​code>​ 
 + 
 +===== Примерное количество строк в таблице ===== 
 +<​code>​ 
 +select n.nspname, c.relname, c.reltuples::​bigint 
 +FROM pg_class c 
 +left join pg_namespace n on relnamespace = n.oid 
 +where relname like '​u%'​ 
 +and n.nspname = '​app'​ 
 +and relkind = '​r'​ 
 +order by relname 
 +</​code>​ 
 + 
 + ​{{tag>​ postgresql }}
  
-\a - переключение между режимами вывода:​ с/без выравнивания. 
  
-{{tag> postgresql }} 
howto/services/postgresql.1509570497.txt.gz · Последние изменения: 2017/11/02 00:08 — Алексей Кожевников