Суперпользовательские нологин ролей? - PullRequest
2 голосов
/ 11 марта 2019

При поиске примеров команд ALTER и GRANT я замечаю, что бывают случаи, когда superuser предоставляется, а login - нет.

Более того, оказывается, что если у вас GRANT SELECT привилегии для роли, но не LOGIN, они все равно не смогут выполнять запросы выбора, поскольку это зависит от имени входа.

Так какой смысл использовать нологин суперпользователь , или действительно нологин роль полной остановки?Является ли единственная причина, когда роль используется в качестве группы?

1 Ответ

2 голосов
/ 11 марта 2019

Есть две вещи, которые может выполнять роль, даже если она не может войти в систему:

  • Может владеть объектами.

  • Он может иметь другие роли в качестве участников, то есть он может действовать как группа пользователей.

Насколько я могу судить, владелец суперпользователя имеет значение только для функций, которые объявлены SECURITY DEFINER. Такие функции выполняются в контексте владельца функций, то есть с привилегиями суперпользователя. Мощный, но опасный.

Участие в роли суперпользователя позволяет временно принять привилегии суперпользователя, выдав

SET ROLE the_su_role;

Вы можете вернуться, чтобы быть смертным пользователем с

RESET ROLE;

Это может быть полезно, если вы хотите иметь возможность давать команды суперпользователя, но не хотите подвергать себя риску постоянного использования суперпользователя, аналогично командам su и sudo в UNIX .

...