reassign_fdw.log

text/plain

Filename: reassign_fdw.log
Type: text/plain
Part: 0
Message: Re: REASSIGN OWNED lacks support for FDWs
$ psql postgres
psql (9.2devel)
Type "help" for help.

postgres=# CREATE ROLE reassign_fdw_user LOGIN SUPERUSER;
CREATE ROLE
postgres=# SET SESSION AUTHORIZATION 'reassign_fdw_user';
SET
postgres=# CREATE ROLE regress_test_role;
CREATE ROLE
postgres=# CREATE ROLE regress_test_role2;
CREATE ROLE
postgres=# CREATE ROLE regress_test_role_super SUPERUSER;
CREATE ROLE
postgres=# CREATE FOREIGN DATA WRAPPER foo;
CREATE FOREIGN DATA WRAPPER
postgres=# \dew
         List of foreign-data wrappers
 Name |       Owner       | Handler | Validator
------+-------------------+---------+-----------
 foo  | reassign_fdw_user | -       | -
(1 row)

postgres=# REASSIGN OWNED BY reassign_fdw_user TO regress_test_role;
ERROR:  permission denied to change owner of foreign-data wrapper "foo"
HINT:  The owner of a foreign-data wrapper must be a superuser.
postgres=# REASSIGN OWNED BY reassign_fdw_user TO regress_test_role_super;
REASSIGN OWNED
postgres=# \dew
            List of foreign-data wrappers
 Name |          Owner          | Handler | Validator
------+-------------------------+---------+-----------
 foo  | regress_test_role_super | -       | -
(1 row)

postgres=# REASSIGN OWNED BY regress_test_role_super TO regress_test_role;
ERROR:  permission denied to change owner of foreign-data wrapper "foo"
HINT:  The owner of a foreign-data wrapper must be a superuser.
postgres=# REASSIGN OWNED BY regress_test_role_super TO reassign_fdw_user;
REASSIGN OWNED
postgres=# GRANT USAGE ON FOREIGN DATA WRAPPER foo TO regress_test_role;
GRANT
postgres=# SET ROLE regress_test_role;
SET
postgres=> CREATE SERVER t1 FOREIGN DATA WRAPPER foo;
CREATE SERVER
postgres=> REASSIGN OWNED by regress_test_role TO regress_test_role2;
ERROR:  permission denied to reassign objects
postgres=> RESET ROLE;
RESET
postgres=# REASSIGN OWNED by regress_test_role TO regress_test_role2;
REASSIGN OWNED
postgres=# \des+
                                              List of foreign servers
 Name |       Owner        | Foreign-data wrapper | Access privileges | Type | V
ersion | FDW Options | Description
------+--------------------+----------------------+-------------------+------+--
-------+-------------+-------------
 t1   | regress_test_role2 | foo                  |                   |      |
       |             |
(1 row)

postgres=#