fix
All checks were successful
Build MkDocs / build-and-deploy (push) Successful in 12s

This commit is contained in:
Илья Макаров 2025-02-05 22:15:33 +03:00
parent 6d8287780e
commit b99cf60de4

View File

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