У меня есть проект, в котором postgres db помещается в файл .sql на тестовом сервере ci. Это будет построено и опубликовано как изображение докера.Тестирование базы данных Postgres DB для правильных разрешений программно, после заполнения из .sql-файла
Теперь я не буду единственным, нажимая эти .sql-файлы на сервер. Поэтому мне нужно проверить разрешения всех пользователей postgres (и, возможно, будущих пользователей) на все базы данных, представленные этим файлом.
Пример: Пользователь A и B. Пользователь A является суперпользователем и владеет всеми базами данных. Пользователь B должен только читать быть в состоянии прочитать в базе данных X. и так далее
Есть ли способ, чтобы проверить это programmaticaly? Помимо «попытаться считать B с ошибкой Y ->?
Все остальные решения, которые я нашел до сих пор, являются либо вручную, либо «попытками/ошибками».
[Доступ к функциям привилегий запрос] (https://www.postgresql.org/docs/current/static/functions-info.html#FUNCTIONS- INFO-ACCESS-TABLE) –
Спасибо. Но: SELECT has_schema_privilege ('B', 'X', 'select'); Результаты: ОШИБКА: непризнанный тип привилегий: "select" Есть ли способ спросить «has_table_privilege» для выбора во всех таблицах в схеме «P»? Есть ли короткий путь, чтобы исключить все остальное? – MrOerni