Аннотация

В данной статье рассмотрена настройка ограничения привилегий пользователя на базу данных (БД) в системе управления БД (СУБД) Postgres-11.

Ограничение привилегий пользователя на БД PostgreSQL

Чтобы ограничить пользователя БД только одной его БД без возможности передачи прав на нее, нужно выдать минимум прав при создании пользователя, для этого:

  • переключиться последовательно на пользователя root, затем на postgres:
:~$ sudo -s
:/home/astra# su postgres
BASH

Если после выполнения команды отображается ошибка «could not change directory to "/home/": Отказано в доступе» и не появляется приглашение командной строки postgres=#, необходимо вместо «su postgres» использовать конструкцию «su - postgres».  Если приглашение postgres=# появилось, то сообщение об ошибке можно проигнорировать.

  • создать пользователя (по умолчанию termidesk) для БД в интерфейсе командной строки системы:

Роли, созданные разными методами, не идентичны! Роль, созданная в командной строке системы, будет иметь привилегии входа.

:~$ createuser termidesk
BASH
  • на интерактивные запросы о привилегиях создаваемого пользователя ответить «n»:
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
BASH
  • назначить новые привилегии на схему для пользователя termidesk в соответствии с предложенными вариантами в справочном центре: Разграничение прав на схему БД.