Re: lenguajes procedurales

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Juan Pablo Espino <jp(dot)espino(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: lenguajes procedurales
Date: 2005-01-10 05:11:22
Message-ID: 20050110051122.GA11291@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Sun, Jan 09, 2005 at 10:16:33PM -0500, Juan Pablo Espino wrote:
> Si gracias, ampliare un poco más. El propósito de OLS es brindar un
> control de acceso más granular a la información contenida en una
> tabla. Cada registro de la tabla será etiquetado (ej. confidencial,
> secreto, ultra-secreto) y cada usuario con permisos (por lo menos
> insert, select y delete) sobre dicha tabla también serán etiquetados,
> así cuando un usuario hace un select a la tabla, el sistema debe
> comparar la etiqueta del usuario con la de los registros y sólo
> mostrarle los registros para los cuales etiqueta_del_usuario >=
> etiqueta_del_registro. Tal que un usuario con etiqueta secreto no
> pueda ver un registro etiquetado como ultra-secreto por ejemplo. Y
> correctamente como usted lo dice las etiquetas se guardan en una
> columna adicional a la tabla.

Ok, por lo que describes, creo que se puede hacer de manera sencilla
cerrando todo acceso directo a las tablas, excepto a un usuario con
todos los privilegios. Ese usuario seria duen~o de las vistas (view)
que limitarian el acceso al usuario actual usando una funcion de chequeo
de las capacidades del usuario actual (current_user) y la columna de
etiqueta de cada tabla.

Cabe hacer notar que usando el sistema de reglas, se puede hacer que los
updates, inserts y deletes sobre las vistas vaya a parar a las tablas,
de manera que los usuarios puedan acceder a esta capacidad. Con uso
juicioso de las funciones de chequeo de etiquetas se puede lograr que
esto pase por el sistema de control de acceso.

Como primera opcion yo pensaria en que las etiquetas de cada tablaa
fueran simples bits dentro de un campo int4. La funcion de chequeo se
encargaria de encapsular el conocimiento del significado de cada bit.

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"La experiencia nos dice que el hombre peló millones de veces las patatas,
pero era forzoso admitir la posibilidad de que en un caso entre millones,
las patatas pelarían al hombre" (Ijon Tichy)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juan Pablo Espino 2005-01-10 15:25:02 Re: lenguajes procedurales
Previous Message Juan Pablo Espino 2005-01-10 03:16:33 Re: lenguajes procedurales