Разрешение Postgres - PullRequest
       6

Разрешение Postgres

0 голосов
/ 24 мая 2019

У меня есть схема, принадлежащая app_owner. Я выполнил следующие гранты другому пользователю:

GRANT USAGE ON SCHEMA app_schema TO app_writer;
ALTER DEFAULT PRIVILEGES IN SCHEMA app_schema
  GRANT ALL ON TABLES to app_writer;

Как проверить (возможно, через месяц), имеет ли app_writer все эти привилегии?

1 Ответ

1 голос
/ 24 мая 2019

Вы можете просто запросить метаданные, чтобы проверить, предоставлены ли все привилегии для всех таблиц в схеме:

SELECT t.table_name,
       bool_and(
          has_table_privilege(
             'app_writer',
             format('%I.%I', t.table_schema, t.table_name),
             p.priv
          )
       ) AS has_all_privs
FROM information_schema.tables AS t
   CROSS JOIN (
      VALUES ('SELECT'), ('INSERT'), ('UPDATE'), ('DELETE'),
             ('TRUNCATE'), ('REFERENCES'), ('TRIGGER')
   ) AS p(priv)
WHERE t.table_schema = 'app_schema'
GROUP BY t.table_name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...