Thread: alter table / permissions

alter table / permissions

From
"Johnson, Shaunn"
Date:

Howdy:

Running PostgreSQL 7.2.1 on RedHat Linux 7.2.

I want to change / alter someone else's table and add a column.
I think that I have to give myself permission for such things,
but when I try to make the modification, I get 'permission
denied'.

[snip example]

test_db=> \c bcn joe
You are now connected to database bcn as user joe.
test_db=> alter table tm_pg_hmp_num add column product text;
ERROR:  ALTER TABLE: permission denied
test_db=> \z tm_pg_hmp_num
       Access privileges for database "test_db"
       Table       |      Access privileges
-------------------+------------------------------
 tm_pg_hmp_num     | {=r,tom=arwdRxt,joe=arwdRxt}
 tm_pg_hmp_num_bak |
(2 rows)

[/snip example]

Since Tom is the creator of the table, is it only HE that
get's to make the modification?  I thought that we both
have the same rights and privilages.  Not true?

Thanks!

-X

Re: alter table / permissions

From
Stephan Szabo
Date:
On Fri, 7 Mar 2003, Johnson, Shaunn wrote:

>
> Howdy:
>
> Running PostgreSQL 7.2.1 on RedHat Linux 7.2.
>
> I want to change / alter someone else's table and add a column.
> I think that I have to give myself permission for such things,
> but when I try to make the modification, I get 'permission
> denied'.
>
> [snip example]
>
> test_db=> \c bcn joe
> You are now connected to database bcn as user joe.
> test_db=> alter table tm_pg_hmp_num add column product text;
> ERROR:  ALTER TABLE: permission denied
> test_db=> \z tm_pg_hmp_num
>        Access privileges for database "test_db"
>        Table       |      Access privileges
> -------------------+------------------------------
>  tm_pg_hmp_num     | {=r,tom=arwdRxt,joe=arwdRxt}
>  tm_pg_hmp_num_bak |
> (2 rows)
>
> [/snip example]
>
> Since Tom is the creator of the table, is it only HE that
> get's to make the modification?  I thought that we both
> have the same rights and privilages.  Not true?

AFAIK ALTER TABLE requires you to either be a superuser or the owner of
the table. SQL92 would seem to require that the user be the owner of the
schema that the table is in, but our permissions system is a little
different.