Ограничение привилегий пользователя на базу данных PostgreSQL
Аннотация
В данной статье рассмотрена настройка ограничения привилегий пользователя на базу данных (БД) в системе управления БД (СУБД) Postgres-11.
Ограничение привилегий пользователя на БД PostgreSQL
Чтобы ограничить пользователя БД только одной его БД без возможности передачи прав на нее, нужно выдать минимум прав при создании пользователя, для этого:
- переключиться последовательно на пользователя
root
, затем наpostgres
:
:~$ sudo -s :/home/astra# su postgres
Если после выполнения команды отображается ошибка «could not change directory to "/home/": Отказано в доступе» и не появляется приглашение командной строки postgres=#
, необходимо вместо «su postgres
» использовать конструкцию «su - postgres
». Если приглашение postgres=#
появилось, то сообщение об ошибке можно проигнорировать.
- создать пользователя (по умолчанию
termidesk
) для БД в интерфейсе командной строки системы:
Роли, созданные разными методами, не идентичны! Роль, созданная в командной строке системы, будет иметь привилегии входа.
:~$ createuser termidesk
- на интерактивные запросы о привилегиях создаваемого пользователя ответить «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
- назначить новые привилегии на схему для пользователя
termidesk
в соответствии с предложенными вариантами в справочном центре: Разграничение прав на схему БД.