Re: List Permissions

From: Venkat Balaji <venkat(dot)balaji(at)verse(dot)in>
To: "Maton, Brett" <matonb(at)ltresources(dot)co(dot)uk>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: List Permissions
Date: 2011-10-25 12:21:09
Message-ID: CAFrxt0geOUjJcgT7EaCjBVYGEJC-GjW+YVCQUgXqWUk6K8E==Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

My answers are in line in RED -

How can I list a users permissions table by table?
>
> i.e. User Joe
> has read/write on table1
>
has read on table2
> no access on table 3
>

For a particular user you can use below function. You can write a SQL query
or script which takes table names from "pg_tables" one by one.

has_table_privilege(user, table, privilege)

Example :

I am checking if user "postgres" has "select" privilege on "table1".

postgres=# select has_table_privilege('postgres','public.table1','select');

has_table_privilege
---------------------
t
(1 row)

For current user (user you logged in as) you can use the following function

has_table_privilege(table, privilege)

I am checking if the current_user has "select" privilege on "table1"

Example:

postgres=# select current_user;

current_user
--------------
postgres

(1 row)

postgres=# select has_table_privilege('public.table1','select');

has_table_privilege
---------------------
t

Below link has all the other functions regarding checking permissions

http://www.postgresql.org/docs/9.0/static/functions-info.html

Hope this helps !

Thanks
VB

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Maton, Brett 2011-10-25 12:34:20 Re: List Permissions
Previous Message Raghavendra 2011-10-25 11:56:25 Re: List Permissions