views:

1020

answers:

2

Hi,
I'm having trouble granting privileges to another user in PostgreSQL 8.3. While the GRANT command gives me no error, the privileges do not show up. Do I need to "flush" them?

sirprize=# CREATE DATABASE testdb;
CREATE DATABASE
sirprize=# GRANT ALL PRIVILEGES ON DATABASE testdb TO testuser;
GRANT
sirprize=# \c testdb
You are now connected to database "testdb".
testdb=# \z
 Access privileges for database "testdb"
 Schema | Name | Type | Access privileges
--------+------+------+-------------------
(0 rows)

testdb=#
+4  A: 

\z Shows you table, view, and sequence permissions, for the objects contained within the Database. It does not show permissions on the database itself. If you create a table or some other object within 'testdb', it will then show up in \z's output.

You can see which Databases exist on your system with \l (or \l+ for a bit more info).

See section 9.22. of the PostgreSQL 8.3 manual for information about how to programatically determine which permissions exist for a user on a given database.

Flimzy
Thanks! Now I only have to find out why phpPgAdmin does not sohw the database when connecting as testuser, thus preventing even the creation of a new table. But that's going to be another question here ;)
sirprize
A: 

This page will explain some of the db object permissions as well: http://www.postgresql.org/docs/8.3/interactive/sql-grant.html

Arthur Thomas