Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / получение информации о членстве в ролях (обладании ролью) PostgreSQL / 3 сообщений из 3, страница 1 из 1
16.05.2016, 23:43
    #39236979
MrVash
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получение информации о членстве в ролях (обладании ролью) PostgreSQL
Добрый вечер. Исследую роли в PostgreSQL. Возник вопрос о членстве ролей в других ролях. Знаю, что получить информацию об этом можно с помощью команды \du. Однако вопрос заключается в том, можно ли получить информацию о членстве в ролях из какой-либо системной таблицы? Просто в дальнейшем необходимо будет произвести иерархический запрос и получить все роли, привилегии которых получает пользователь. А для иерархического запроса нужно иметь именно таблицу, как я понимаю.
...
Рейтинг: 0 / 0
17.05.2016, 08:07
    #39237054
Alexius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получение информации о членстве в ролях (обладании ролью) PostgreSQL
MrVash,

проверить наличие привилегий конкретной роли можно с помощью функции pg_has_role :

Код: sql
1.
select pg_has_role('username', 'rolename', 'MEMBER');



как работает \du можно подглядеть с помощью \set ECHO_HIDDEN on:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
postgres=# \set ECHO_HIDDEN on
postgres=# \du
********* QUERY **********
SELECT r.rolname, r.rolsuper, r.rolinherit,
  r.rolcreaterole, r.rolcreatedb, r.rolcanlogin,
  r.rolconnlimit, r.rolvaliduntil,
  ARRAY(SELECT b.rolname
        FROM pg_catalog.pg_auth_members m
        JOIN pg_catalog.pg_roles b ON (m.roleid = b.oid)
        WHERE m.member = r.oid) as memberof
, r.rolreplication
FROM pg_catalog.pg_roles r
ORDER BY 1;
**************************
...
Рейтинг: 0 / 0
23.05.2016, 00:29
    #39241046
MrVash
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получение информации о членстве в ролях (обладании ролью) PostgreSQL
Alexius,

Огромное спасибо, очень помогли
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / получение информации о членстве в ролях (обладании ролью) PostgreSQL / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]