Re: SI en postgreSQL ... NO en PHP

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Victor Lopez <v(dot)lopez(dot)s(at)ono(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: SI en postgreSQL ... NO en PHP
Date: 2006-11-20 14:03:58
Message-ID: 20061120140358.GA11835@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Victor Lopez escribió:

> ese trozo es que lo copie mal ... era 'db_data-#' en lugar de 'postgres=#'
> (copy/paste 'rabioso')

Eso no tiene nada que ver, porque lo que hay en el prefijo es el nombre
de la base de datos a la que estas conectado. Para ver el usuario en
curso usa la función CURRENT_USER o SESSION_USER.

> Veo algo verdaderamente raro, para mi.
>
> Desde el propio psql ...
>
> 1 - Creo el TABLESPACE ... con un propietario distinto a 'postgres'
> 2 - Creo la DATABASE en su TABLESPACE ... con un propietario distinto
> a 'postgres'
> 3 - Creo el SCHEMA en su DATABASE ... con un 'propietario' distinto
> a 'postgres'
> 4 - Creo la TABLE 'a' ... SIN indicar TABLESPACE ...
> 5 - Creo la TABLE 'b' ... indicando TABLESPACE ... (la del paso 1)
> 6 - select * from pg_tables; (A lo peor me estoy equivocando de tabla)
> 'a' y 'b' aparecen con propietario 'postgres'

No veo cual es el problema. Aca el usuario en curso es "postgres"
porque no lo has cambiado en ningun momento, y por eso el dueño de las
tablas es "postgres".

> Si sigo los pasos del phppgadmin ...
>
> 1 - Creo el TABLESPACE ... con un propietario distinto a 'postgres'
> 2 - Creo la DATABASE en su TABLESPACE ... con un propietario distinto
> a 'postgres'
> 3 - Creo el SCHEMA en su DATABASE ... con un 'propietario' distinto
> a 'postgres'
> 4 - Creo una TABLE c indicando su (el creado) TABLESPACE ...
> Voy a ver el psql
> 5 - select * from pg_tables;
> 'Por arte de magia' aparece 'c' con su propietario correcto (no 'postgres')
> 'a' y 'b' siguen con el propietario 'postgres' ... obviamente

Probablemente lo que esta haciendo es conectarse a la base de datos
usando el propietario en lugar del superusuario.

> Cuando la documentación habla del TABLESPACE 'por defecto' si no se indica al,
> crear una TABLE, se refiere al de su DATABASE o al general de 'postgres' ?

El de la base de datos. De hecho no hay un "tablespace por defecto
general de postgres". Creo que tienes una confusion enorme porque hay
un usuario "postgres" que es superusuario y por lo tanto puede crear
tablas en cualquier base de datos que le plazca; y tambien hay una base
de datos "postgres" (cuyo propietario es el usuario "postgres").

Por lo demas, creo que también estás confundiendo el uso de los
tablespaces. Lo único que determina un tablespace es dónde (path) se
crean los archivos de las tablas. El dueño de cada tabla es un
parámetro totalmente independiente.

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Douglas Escobar 2006-11-20 14:09:23 RE: Problemas en actualizacion de DB
Previous Message Victor Lopez 2006-11-20 13:38:39 Re: SI en postgreSQL ... NO en PHP