Re: Presentación y consulta

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Jeremias Martinez <jeremiasma(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Presentación y consulta
Date: 2008-04-21 13:30:44
Message-ID: 20080421133044.GB6520@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Jeremias Martinez escribió:

> - Usar usuarios y autenticación nativa de pgsql
> - Una sola db para todos los clientes
> Me parece una mala practica crear una db para cada usuario
> - Un schema diferente para cada cliente con las mismas tablas.
> Cada cliente con sus permisos definidos sólo para su schema.
> - Los datos se verán a través de vistas y se modificarán por stored
> procedures.

Pregunta: ¿todos los clientes y usuarios tienen la misma definición de
datos, o cada uno define sus propias tablas?

Si las tablas son iguales para todos, entonces quizas sea mejor tener
todos los datos en una sola definición; es decir, tablas que guarden los
datos de todos los usuarios, donde cada registro lleve el ID de cliente.
Luego, encima de esa "gran tabla" defines vistas que dan acceso a cada
usuario a los datos que le corresponden a su cliente respectivo.

Por encima de eso yo pensaría en crear un juego de roles nativos de
Postgres para cada cliente: uno para cada "nivel" de acceso que tenga.
Para cada usuario humano, crear otro rol, y otorgarle a ese el rol de
acceso que necesita. (El único inconveniente aquí es cómo permitir que
cada cliente administre sus usuarios. Creo que la técnica útil es crear
funciones SECURITY DEFINER que hagan esto, incluyendo los GRANT).

Obviamente no le otorgas a todos los usuarios la posibilidad de ver las
"grandes tablas", sino sólo las vistas de acceso limitado que definiste.

Si cada cliente define sus propias tablas entonces esta idea no sirve de
nada. Pero en tal caso, y si cada cliente no comparte ningún dato,
entonces hasta es posible que sea mejor dejar a cada cliente en su base
de datos propia, separada del resto.

--
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 MIGUEL CANCHAS 2008-04-21 13:45:30 RE: por que SEQ SCAN Y NO INDEX SCAN
Previous Message German Salinas 2008-04-21 11:49:49 Re: JAVA ORM con soporte para PostgreSQL