2010-11-30 16 views

Odpowiedz

213
ALTER DATABASE name OWNER TO new_owner; 

Aby uzyskać więcej informacji, zobacz the Postgresql manual's entry on this.

+3

Dla kompletności tutaj znajduje się część podręcznika, która dokumentuje to: http://www.postgresql.org/docs/current/static/sql-alterdatabase.html –

+2

to polecenie usunęło moją bazę danych ... nice one – mArtinko5MB

+12

@ mArtinko5MB: To niemożliwe, ALTER nie SPADA bazy danych. –

7

Odpowiedź Frank Heikens aktualizuje tylko własność bazy danych. Często chcesz również zaktualizować prawa własności zawartych obiektów (w tym tabel). Począwszy od Postgres 8.2, REASSIGN OWNED jest dostępny do uproszczenia tego zadania.

Najpierw należy podłączyć do bazy danych administratora i własności Aktualizacja DB:

psql 
postgres=# REASSIGN OWNED BY old_name TO new_name; 

Jest to globalny odpowiednik polecenia ALTER DATABASE dostarczone w odpowiedzi Franka, ale zamiast aktualizowania szczególną DB, to zmienić własność wszystkich DB posiadanych przez "old_name".

Następnym krokiem jest aktualizacja własności tabele dla każdej bazy danych:

psql old_name_db 
old_name_db=# REASSIGN OWNED BY old_name TO new_name; 

ta musi być wykonywana na każdym DB należącego „OLD_NAME”. Komenda zaktualizuje własność wszystkich tabel w bazie danych.

Powiązane problemy