Re: [HACKERS] Role members

From: Jim Nasby <decibel(at)decibel(dot)org>
To: David Fetter <david(at)fetter(dot)org>
Cc: Akmal Akmalhojaev <akmal(dot)ilh(at)gmail(dot)com>, PostgreSQL General <pgsql-general(at)postgresql(dot)org>
Subject: Re: [HACKERS] Role members
Date: 2007-05-29 03:32:29
Message-ID: 9AC2CA53-2BE2-4DB3-8902-C9543097424E@decibel.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

On May 21, 2007, at 8:25 AM, David Fetter wrote:
> On Mon, May 21, 2007 at 02:21:52PM +0400, Akmal Akmalhojaev wrote:
>> For example I have a role ID1 with members ID2 and ID3.
>> Role ID2 has also members ID4 and ID5. It means that roles ID4 and
>> ID5 are
>> members of ID1.
>> The question: Is there any function in PostgreSQL, that finds all the
>> members of role ID1 - even such members, as ID4 and ID5.
>
> Here's a function I've written in SQL:
>
> CREATE OR REPLACE FUNCTION get_roles_under(OID)
> RETURNS SETOF OID
> LANGUAGE sql
> AS $$
> SELECT
> $1
> UNION
> SELECT
> member
> FROM
> pg_catalog.pg_auth_members
> WHERE
> roleid = $1
> UNION
> SELECT
> get_roles_over(roleid) AS "roleid"
> FROM
> pg_catalog.pg_auth_members
> WHERE
> roleid IN (
> SELECT
> member
> FROM
> pg_catalog.pg_auth_members
> WHERE
> roleid = $1
> )
> $$;

Should that call to get_roles_over be a call to get_roles_under?
--
Jim Nasby jim(at)nasby(dot)net
EnterpriseDB http://enterprisedb.com 512.569.9461 (cell)

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Jim Nasby 2007-05-29 03:38:14 Re: feature suggestions
Previous Message Chris Browne 2007-05-29 01:34:41 Re: Stored Procedures Performance: Java vs. PL/Pgsql

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Fuhr 2007-05-29 03:53:56 Re: What is the maximum encoding-conversion growth rate, anyway?
Previous Message Stephen Frost 2007-05-29 03:28:42 Re: Fixing insecure security definer functions