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`
!!! 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`