diff --git a/docs/postgresql/Разное.md b/docs/postgresql/Разное.md index 5222af9..07ccb18 100644 --- a/docs/postgresql/Разное.md +++ b/docs/postgresql/Разное.md @@ -6,7 +6,8 @@ - `sudo -u postgres psql postgres` - подключиться к базе данных `postgres` от имени пользователя Linux `postgres` !!! tip "" - Если не указано имя базы данных, psql попытается подключиться к базе данных с именем, совпадающим с именем пользователя. В данном случае это будет база данных postgres + `sudo -u postgres psql` + Если не указано имя базы данных при подключении, psql попытается подключиться к базе данных с именем, совпадающим с именем пользователя. В данном случае это будет база данных postgres - `sudo -u postgres psql -d имя_базы_данных -f путь_к_скрипту.sql` - выполнить SQL-скрипт на базе - `sudo -u postgres psql -d имя_базы_данных -c "SQL-запрос"` - выполнить SQL-скрипт на базе @@ -31,17 +32,21 @@ Роль (ROLE) — это более общее понятие. Она может быть как пользователем, так и группой. Роль по умолчанию НЕ ИМЕЕТ права на подключение к базе данных (если не указан атрибут LOGIN) Роли (и пользователи) могут иметь дополнительные атрибуты, которые определяют их поведение. Вот основные атрибуты: - - `LOGIN` - Позволяет роли подключаться к базе данных (по умолчанию для USER) - - `SUPERUSER` - Дает роли права суперпользователя - - `CREATEDB` - Позволяет роли создавать базы данных - - `CREATEROLE` - Позволяет роли создавать другие роли - - `INHERIT` - Позволяет роли наследовать права от других ролей (по умолчанию TRUE) - - `REPLICATION`- Позволяет роли использоваться для репликации - - `PASSWORD` - Устанавливает пароль для роли + + - `LOGIN` - Позволяет роли подключаться к базе данных (по умолчанию для USER) + - `SUPERUSER` - Дает роли права суперпользователя + - `CREATEDB` - Позволяет роли создавать базы данных + - `CREATEROLE` - Позволяет роли создавать другие роли + - `INHERIT` - Позволяет роли наследовать права от других ролей (по умолчанию TRUE) + - `REPLICATION`- Позволяет роли использоваться для репликации + - `PASSWORD` - Устанавливает пароль для роли + ```sql CREATE ROLE admin WITH LOGIN PASSWORD 'password' CREATEDB CREATEROLE ``` + PostgreSQL пользователя (USER) можно добавить в роль (ROLE). Когда пользователь добавляется в роль, он автоматически наследует все права, связанные с этой ролью. + ```sql -- Создаем роль CREATE ROLE read_only; @@ -51,7 +56,7 @@ GRANT read_only TO myuser; ``` ```sql - # удалить пользователя из роли + -- удалить пользователя из роли REVOKE имя_роли FROM имя_пользователя; ``` - `GRANT ALL PRIVILEGES ON DATABASE имя_базы TO имя_пользователя;` @@ -245,16 +250,16 @@ FROM pg_stat_database; #### Где что лежит?? 1. Каталог данных -- `/var/lib/postgresql/<версия>/main/` - Debian/Ubuntu -- `/var/lib/pgsql/<версия>/data/` - CentOS/Fedora -- `psql -U postgres -c "SHOW data_directory;"` + - `/var/lib/postgresql/<версия>/main/` - Debian/Ubuntu + - `/var/lib/pgsql/<версия>/data/` - CentOS/Fedora + - `psql -U postgres -c "SHOW data_directory;"` 2. Конфигурационные файлы (могут находится в каталоге данных) -- `/etc/postgresql/<версия>/main/` -- `psql -U postgres -c "SHOW config_file;"` - путь к конфигу -- `psql -U postgres -c "SHOW hba_file;"` - путь к настройкам аутентификации + - `/etc/postgresql/<версия>/main/` + - `psql -U postgres -c "SHOW config_file;"` - путь к конфигу + - `psql -U postgres -c "SHOW hba_file;"` - путь к настройкам аутентификации 3. Каталог логов -- `/var/log/postgresql/` -- `psql -U postgres -c "SHOW log_directory;"` + - `/var/log/postgresql/` + - `psql -U postgres -c "SHOW log_directory;"` --- - `SHOW shared_preload_libraries;` - список библиотек, которые были загружены при старте PostgreSQL с помощью параметра `shared_preload_libraries` в `postgresql.conf`