З CREATE ROLE
документації :
Зауважте, що ролі визначаються на рівні кластера бази даних, і тому вони дійсні у всіх базах даних кластера.
Оскільки pg_dump
зберігає єдину базу даних, ви не можете витягти ролі за допомогою цієї утиліти. pg_dumpall --roles-only
Команда , яку ви запропонували робитиме роботу - проте вам може знадобитися фільтрувати свій висновок так , що тільки бажані ролі будуть створюватися в новому кластері.
Ролі зберігаються у pg_authid
каталозі, який фізично зберігається у data/global/
підпапці установки PostgreSQL разом з іншими таблицями, що мають широкий кластер. Ви можете запитувати вміст pg_authid
через pg_roles
перегляд.
ПРИМІТКА : для скидання ролей вам знадобляться права суперпользователя. В іншому випадку, ви отримаєте дозвіл на Відмовлено SELECT
на pg_authid
- і навіть тоді , коли привілейований користувач надає SELECT
права, ви отримаєте ту ж помилку. У цьому випадку, однак, ви можете перелічити ролі, запитуючи їх pg_authid
безпосередньо COPY
у файл та виконайте якусь магію, щоб створити необхідні CREATE ROLE
та ALTER ROLE
заяви.