Re: Question about granting permissions - Mailing list pgsql-general

From Dmitriy Igrishin
Subject Re: Question about granting permissions
Date
Msg-id CAAfz9KNyQeTatzc2-iRXZJ=L=tCgvUxi3tB7xpu73mYTfrw5TQ@mail.gmail.com
Whole thread Raw
In response to Question about granting permissions  (Matvey Teplov <matvey.teplov@gmail.com>)
List pgsql-general
Hey Matvey,

2012/8/26 Matvey Teplov <matvey.teplov@gmail.com>
Hi,

Sorry to bother with the stupid question guys - I'm new to the Postgres.
I'm having issue allowing user to access the database - the user is
not allowed to access the data. I do the following:
1)   grant all on database testdb table mytable to trinity;
By the command above you're granting privileges on the database
object itself, i.e. connect, create schemas, creating the temprorary
tables.

postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |  Collation  |    Ctype    |
Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
                                                             :
postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
                                                             :
postgres=CTc/postgres
 testdb    | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =Tc/postgres
                                                             :
postgres=CTc/postgres
                                                             :
trinity=CTc/postgres
(4 rows)

But when I login (psql -d testdb -U trinity) as trinity and check it,
it doesn't work.

testdb=> select * from mytable;
ERROR:  permission denied for relation mytable
testdb=> \dp
                            Access privileges
 Schema |  Name   | Type  | Access privileges | Column access privileges
--------+---------+-------+-------------------+--------------------------
 public | mytable | table |                   |
(1 row)

There is also entry in the log:
2012-08-26 13:06:01 CEST testdb trinity ERROR:  permission denied for
relation mytable
2012-08-26 13:06:01 CEST testdb trinity STATEMENT:  select * from mytable;


Can someone explain what do I do wrong? Thank you in advance!
You need to grant on the another database object (table):
GRANT SELECT ON mytable TO trinity.

Please, see
http://www.postgresql.org/docs/9.2/static/sql-grant.html

--
// Dmitriy.


pgsql-general by date:

Previous
From: Matvey Teplov
Date:
Subject: Question about granting permissions
Next
From: Guillaume Lelarge
Date:
Subject: Re: Question about granting permissions