Обсуждение: check user in group
Hello, how can I check if a user is within a group? I use current_user() to get the logged-in user, but I have a group "service"and I need a check if the user is member of the group Thanks Phil
Hello you can try create or replace function is_member_of(text, text) returns boolean as $$ select exists(select rolname from pg_catalog.pg_auth_members m JOIN pg_catalog.pg_roles b ON m.roleid = b.oid where m.member = (select oid from pg_roles where rolname = $1) and rolname = $2) $$ language sql ; postgres=# select is_member_of('pavel','admin'); is_member_of -------------- t (1 row) Regards Pavel Stehule 2012/12/25 Philipp Kraus <philipp.kraus@flashpixx.de>: > Hello, > > how can I check if a user is within a group? I use current_user() to get the logged-in user, but I have a group "service"and I need a check if the user is member of the group > > Thanks > > Phil > > -- > Sent via pgsql-general mailing list (pgsql-general@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-general
On 12/25/2012 01:51 AM, Philipp Kraus wrote: > Hello, > > how can I check if a user is within a group? I use current_user() to get the logged-in user, but I have a group "service"and I need a check if the user is member of the group > In recent versions of Postgres user and group have been folded into roles. The terms still exist, to roughly mean user=role with login, group=role without login. There are built in functions to work with roles and privileges. See: http://www.postgresql.org/docs/9.2/interactive/functions-info.html Table 9-51. Access Privilege Inquiry Functions ... pg_has_role(user, role, privilege) boolean does user have privilege for role pg_has_role(role, privilege) boolean does current user have privilege for role There are more available. > Thanks > > Phil > -- Adrian Klaver adrian.klaver@gmail.com