Задать вопрос
@AlmazKayum

Что такое РОЛИ в PostgreSQL?

цитата с ресурса https://www.digitalocean.com/community/tutorials/p...
Ещё одно допущение, которое делает Postgres, заключается в том, что для каждой роли, которая была использована для входа, необходимо создать базу данных с тем же именем, что и имя роли, к которой можно будет осуществлять доступ с помощью этой роли.
Поэтому для созданного нами ранее пользователя с именем sammy соответствующая роль будет по умолчанию пытаться соединиться с базой данных sammy. Вы можете создать эту базу данных с помощью команды createdb.


то есть одна роль для одной базы данных? зачем?
можно ли так: несколько ролей и одна база данных?

объясните, пожалуйста, смысл ролей в постгрес
  • Вопрос задан
  • 5086 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
объясните, пожалуйста, смысл ролей в постгрес

Пользователь - это алиас для системы ролей.

необходимо создать базу данных с тем же именем, что и имя роли, к которой можно будет осуществлять доступ с помощью этой роли

Это ложь. Необходимости нет.

Поэтому для созданного нами ранее пользователя с именем sammy соответствующая роль будет по умолчанию пытаться соединиться с базой данных sammy

А это верно. Но только если имя базы для подключения не переопределено, например, переменной окружения PGDATABASE. Ну и конечно его можно просто задавать аргументом подключения.

можно ли так: несколько ролей и одна база данных?

Разумеется. Хоть дерево со множественным наследованием ролей.

Только важный момент - роли глобальны в пределах кластера. Вы не можете сделать пользователя user в базе foo с одним паролем и пользователя user в базе bar с другим паролем. А вот дать readonly на одну базу и полные права на другую - это пожалуйста.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Maksclub
@Maksclub
maksfedorov.ru
Несколько полезных разделов про роли:
https://postgrespro.ru/docs/postgresql/9.4/user-ma...
Ответ написан
zoroda
@zoroda
Необычный Fullstack
Если базы данных расположены на одном экземпляре PostgreSQL, то они используют общие роли. Нет особого смысла создавать отдельные роли для каждой из этих баз данных.
Можно создать несколько ролей в одной базе данных. Это нормально. Например, роли админа и обычного пользователя.
Роль - это понятие, совмещающее пользователей и группы пользователей. То есть, и пользователи, и их группы по сути в PostgreSQL являются ролями. Каждой из ролей можно назначить какие-то права доступа.
Документация про роли
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы