АннотацияLink to Аннотация

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

Ограничение привилегий пользователя на БД PostgreSQLLink to Ограничение привилегий пользователя на БД 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 в соответствии с предложенными вариантами в справочном центре: Разграничение прав на схему БД.