Download page Ограничение привилегий пользователя на базу данных PostgreSQL.
Ограничение привилегий пользователя на базу данных PostgreSQL
Аннотация
В данной статье рассмотрена настройка ограничения привилегий пользователя на базу данных (БД) в системе управления БД (СУБД) 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 в соответствии с предложенными вариантами в справочном центре: Разграничение прав на схему БД.