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