Я нахожусь в процессе миграции сервера баз данных и не могу понять (после поиска в Google и поиска здесь), как я могу перечислить привилегии базы данных (или все привилегии на сервере) на PostgreSQL с помощью psql
инструмента командной строки?
Я нахожусь на Ubuntu 11.04 и моя версия PostgreSQL - 8.2.x.
postgresql
ubuntu
permissions
psql
pedrosanta
источник
источник
\z myTable
идеально подходит для того, чтобы убедиться, что вы успешно предоставили доступ кому-то, и избегать выглядеть как идиот, когда говорите: «Хорошо, это работает сейчас, это не так? »возможно, вы имеете в виду перечисление пользователей и их привилегий для базы данных - я не могу точно сказать из вопроса:
источник
Вы можете сделать это следующим образом:
Это дает вам такой вывод:
источник
Использование
psql
мета-команд:https://www.postgresql.org/docs/current/static/app-psql.html
Переход по странице с помощью Ctrl + F дает:
Также упомянуто выше, но не найдено со словом «привилегии» на странице руководства:
\du+
для ролей с логином и\dg+
для ролей без - будет файл, в"Member of"
котором вы найдете роли, предоставленные ролям.Я намеренно пропускаю здесь функциональные и языковые привилегии, которые в
psql
руководстве рассматриваются как едва манипулируемые (и если вы используете эти привилегии, вы не придете сюда за советом). То же самое для пользовательских типов, доменов и т. д. - использование «+» после мета-команды покажет вам привилегии, если применимо.Немного экстремальный способ проверки привилегий - удаление пользователя в транзакции, например:
Когда список длиннее N (по крайней мере, в 9.3), предупреждение со списком привилегий свернуто, но вы все равно можете найти его полным в журналах ...
источник
Undercovers psql использует приведенный ниже запрос при вводе
\du
команды.источник
(Возможно, очевидный) дополнительный шаг - стать пользователем postgres, иначе вы можете получить ошибки о несуществующих ролях.
или же
источник
выход
источник