Використання psql
метакоманд:
https://www.postgresql.org/docs/current/static/app-psql.html
Перехід на сторінку за допомогою Ctrl + F дає:
\ddp [ pattern ]
Указує параметри привілеїв доступу за умовчанням.
\dp [ pattern ]
Перелічує таблиці, представлення та послідовності з відповідними правами доступу.
\l[+] [ pattern ]
Перерахуйте бази даних на сервері та покажіть .... права доступу.
Також згадано вище, але не знайдено зі словом "привілеї" на сторінці керівництва:
\du+
для ролей з логіном та \dg+
для ролей без - буде подано файл, "Member of"
де ви знайдете ролі, надані ролям.
Я навмисно пропускаю тут функціональні та мовні привілеї, які в psql
посібнику знаходяться як ледве маніпульовані (і якщо ви користуєтесь цими привілеями, ви не збираєтесь приходити сюди за порадою). те ж саме для визначених користувачем типів, доменів тощо - використання "+" після мета-команди покаже вам привілеї, якщо це можливо.
Трохи екстремальним способом перевірки привілеїв є відмова користувача від трансакції, наприклад:
s=# begin; drop user x;
BEGIN
Time: 0.124 ms
ERROR: role "x" cannot be dropped because some objects depend on it
DETAIL: privileges for type "SO dT"
privileges for sequence so
privileges for schema bin
privileges for table xx
privileges for table "csTest"
privileges for table tmp_x
privileges for table s1
privileges for table test
Time: 0.211 ms
s=# rollback;
ROLLBACK
Time: 0.150 ms
Коли список довший ніж N (принаймні в 9.3), попередження зі списком привілеїв згортається, але ви все одно можете знайти його повним у журналах ...
\z myTable
ідеально підходить для того, щоб ви успішно надали доступ до когось і уникали виглядати як ідіот, коли говорите: «гаразд, це працює зараз? це не так »