Разрешение в PostgreSQL - PullRequest
       2

Разрешение в PostgreSQL

0 голосов
/ 02 ноября 2018

Я хочу выполнить запрос к базе данных PostgreSQL. Запрос выглядит следующим образом:

select * from pg_stat_activity;

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

Я дал разрешение только пользователю просматривать таблицы системного каталога.

Но когда другой пользователь подключается к базе данных, его IP-адрес не появляется, и в столбце запроса указывается, что ему не разрешено видеть, какой запрос он выполнил.

Как я могу дать разрешение на отображение этих данных без разрешения пользователя на доступ к общим таблицам?

1 Ответ

0 голосов
/ 02 ноября 2018

Если у вас PostgreSQL версии 10 или выше, вы можете предоставить пользователю роль pg_read_all_stats. Это позволяет видеть все статистические данные, в частности все записи в pg_stat_activity.

Для версий старше v10 вы можете создать функцию SECURITY DEFINER, которая принадлежит суперпользователю и выполняет запрос. Вы должны заметить, что документация говорит о SECURITY DEFINER функциях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...