Ошибка с REASSIGN OWNED BY в PostreSQL

Я в Postgres 9.2. В документации https://www.postgresql.org/docs/9.2/static/sql-reassign-owned.html говорится: REASSIGN OWNED only affects the objects in the current database, Именно то, что мне нужно, но это кажется ложным.
Эта команда также меняет владельца всех баз данных, принадлежащих старому пользователю.

Вот что я сделал:

Скопируйте базу данных:

$ sudo -u postgres -i
$ createdb -O faire-pp -T vozatou_db1 test_db
postgres=# \l
                              List of databases
    Name     |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-------------+----------+----------+-------------+-------------+-----------------------
test_db      | faire-pp | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
vozatou_db1  | vozatou  | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 

Права доступа к таблицам в новой базе данных неверны (по-прежнему старый пользователь):

postgres=# \c test_db
You are now connected to database "test_db" as user "postgres".
test_db=# \d
                        List of relations
 Schema |                   Name                   |   Type   |  Owner  
--------+------------------------------------------+----------+---------
 public | auth_group                               | table    | vozatou
 public | auth_group_id_seq                        | sequence | vozatou

Измени это:

test_db=# REASSIGN OWNED BY "vozatou" TO "faire-pp";
REASSIGN OWNED
test_db=# \d
                     List of relations
 Schema |                   Name                   |   Type   |  Owner   
--------+------------------------------------------+----------+----------
 public | auth_group                               | table    | faire-pp
 public | auth_group_id_seq                        | sequence | faire-pp

Все выглядит хорошо, но:

postgres=# \l
                              List of databases
    Name     |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-------------+----------+----------+-------------+-------------+-----------------------
test_db      | faire-pp | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
vozatou_db1  | faire-pp | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 

Почему изменился владелец моей исходной базы данных?

В документации конкретно сказано: The REASSIGN OWNED command does not affect the ownership of any databases owned by the role.

Есть идеи?

ОБНОВЛЕНИЕ: Согласно комментарию ниже, проблема может быть связана с shared objectsЯ попытался определить, с каким объектом общего доступа SELECT * FROM pg_shdepend; но это не показало мне что-то пригодное для использования.

0 ответов

Другие вопросы по тегам