2010-11-30 30 views

Respuesta

213
ALTER DATABASE name OWNER TO new_owner; 

Ver the Postgresql manual's entry on this para más detalles.

+3

Para completar, aquí está la parte del manual que documenta esto: http://www.postgresql.org/docs/current/static/sql-alterdatabase.html –

+2

Este comando eliminó mi base de datos ... nice one – mArtinko5MB

+12

@ mArtinko5MB: Eso es imposible, ALTER no DROP una base de datos. –

7

La respuesta de Frank Heikens solo actualizará la propiedad de la base de datos. A menudo, también desea actualizar la propiedad de los objetos contenidos (incluidas las tablas). Comenzando con Postgres 8.2, REASSIGN OWNED está disponible para simplificar esta tarea.

En primer lugar, se conectan a la base de datos de administración y la propiedad de actualización de DB:

psql 
postgres=# REASSIGN OWNED BY old_name TO new_name; 

Este es un equivalente global de ALTER DATABASE comandos proporcionada en la respuesta de Frank, pero en lugar de la actualización de una determinada base de datos, se cambia la propiedad de todos los DBs de propiedad por 'old_name'.

El siguiente paso es actualizar la propiedad de tablas para cada base de datos:

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

Esto debe realizarse en cada base de datos propiedad de 'nombre_viejo'. El comando actualizará la propiedad de todas las tablas en el DB.

Cuestiones relacionadas