Re: Advice needed on application/database authentication/authorization/auditing model

Поиск
Список
Период
Сортировка
От Dmitriy Igrishin
Тема Re: Advice needed on application/database authentication/authorization/auditing model
Дата
Msg-id AANLkTik6hGquMvXiONzzpOweR7NcWJ-3P_AknSBb_mju@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Advice needed on application/database authentication/authorization/auditing model  (Tony Cebzanov <tonyceb@andrew.cmu.edu>)
Ответы Re: Advice needed on application/database authentication/authorization/auditing model  (Craig Ringer <craig@postnewspapers.com.au>)
Список pgsql-general
Hey Tony,

2010/10/27 Tony Cebzanov <tonyceb@andrew.cmu.edu>
On 10/23/10 11:01 AM, Craig Ringer wrote:
> Yep. As for not explicitly mentioning "lower" roles when granting a
> higher role (ie "admin" isn't also a "user") - role inheritance.

I knew about role inheritance, I just didn't know about the
pg_has_role() function for determining if a user has a role.  That's
helpful, but I really don't want to be hitting the database with a
pg_has_role() call for every time I want to check if a user should have
access to a certain page or function in my application.
Why not? Performance? It's just one function call.

Normally, when the user logs in, I'd cache their user info, and any
roles they have, either directly or indirectly.  But how can I do this
if I'm not directly making administrators members of the other groups
they inherit the rights of?  In other words, is there a convenience
function or view I can use to get a list of all roles the user has
access to, both directly or indirectly?


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



--
// Dmitriy.


В списке pgsql-general по дате отправления:

Предыдущее
От: Diego Schulz
Дата:
Сообщение: Re: Why Select Count(*) from table - took over 20 minutes?
Следующее
От: Diego Schulz
Дата:
Сообщение: Re: Why Select Count(*) from table - took over 20 minutes?