Recosh
@Recosh
Программист студент

Как в Postgres скрыть из списка базы данных, которые не доступны пользователю?

Приветствую. Как сделать так что бы пользователи не могли видеть в списке базы, к которым они не могут подключиться?
У меня будет устроено так, что каждый пользователь может работать только с одной базой имя которой соответствует его логину.
Кроме пользователя manager, который как раз таки занимается администрированием баз, пользователей и правами на доступ.
6156bca47b8d0442671714.png
  • Вопрос задан
  • 891 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Xtensive
Если не залезать в глубь системной БД postgres - никак.

По умолчанию пользователь может видеть все другие экземпляры БД на кластере(в терминах Постгрес), даже если у него нет прав на подключение к другим БД, кроме своей.

Быстрый поиск даёт такой и такой ответы на SO.

Во втором варианте предлагают у простого пользователя отнять права на Select из Information Schema в системной БД. К сожалению такие действия могут привести к непредсказуемым последствиям.

Как альтернативу - можно размещать данные пользователей в одной БД, но в разных схемах, таким образом проще управлять доступом, т.к. один пользователь будет видеть только свою схему и свои данные.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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