Re: Permisos para usuario por columnas

From: raul andrez gutierrez alejo <raulandrez(at)gmail(dot)com>
To: Néstor Ramires <nramire1(at)rosario(dot)gov(dot)ar>
Cc: "jvenegasperu (dot)" <jvenegasperu(at)gmail(dot)com>, Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Permisos para usuario por columnas
Date: 2018-02-15 15:06:01
Message-ID: CAHQFj72cn4gMtvatD81esOUTNV2UeZpkg2iD+jxkm0ZJFqwAxg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Jose.

si el usuario tiene un usuario de base de datos para el, se puede hacer un
trigger antes del update

IF (current_user='usuario_X') THEN
NEW.campo_no_editable=OLD. .campo_no_editable;
END IF;
return NEW;

así si el usuario "usuario_X" modifica el campo " campo_no_editable ", el
triger coloca los datos viejos.

eso da la tranquilidad que no se modifique los datos, pero aumenta el
trabajo de administración para mantener actualizado el trigger porque el
usuario puede cambiar o llegar nueva personas que necesiten el mismo
privilegio y si un nuevo usuario llega, el nuevo usuario "usuario_Y" si va
a tener permisos porque el IF no se cumple, o puede cambiar la lógica y
manejar lista blancas.

IF (current_user not in ('postgres','admin')) THEN
NEW.campo_no_editable=OLD. .campo_no_editable;
END IF;
return NEW;

El 15 de febrero de 2018, 9:21, Néstor Ramires <nramire1(at)rosario(dot)gov(dot)ar>
escribió:

> No sabría decirte, aún no he hecho la experiencia, si puedo decirte que es
> una de las opciones que se han pensado, podría funcionar bien, de hecho
> concretamente ésta tabla de la que hablo tiene 11 campos de carga manual y
> control más el que contiene la geometría, el resto de los datos (se agregan
> al rededor de 30 campos más) aún no se lo ha trabajado y es algo por
> resolver.
>
>
>
> En Sun, 11 Feb 2018 05:39:03 -0300, jvenegasperu . <jvenegasperu(at)gmail(dot)com>
> escribió:
>
> Nestor si en efecto la vista para mi no es una opcion se hace demasiado
>> lento.
>>
>> yo solo uso vistas materializadas para mirar desde qgis las vistas
>> normales
>> si que demoran con Qgis.
>>
>> Pienso que quiza una salida sea tener dos tablas una con solo los campos
>> para el usuario y otra con todo lo necesario y luego con un trigger
>> insertar en la tabla mas completa que te parece tal vez funcione bien.
>>
>>
>>
>> El 9 de febrero de 2018, 7:37, Néstor Ramires <nramire1(at)rosario(dot)gov(dot)ar>
>> escribió:
>>
>> Me encontré con la misma situación. Aún no lo resuelvo a nivel de permisos
>>> (hay otras prioridades) sin embargo una alternativa que encontramos para
>>> visualizar y dejar como editable sólo algunos campos en la consulta es la
>>> de crear una vista (con el campo de geometría incluido) como
>>> contrapartida,
>>> al nemos en mi caso, Qgis funciona bastante más lento (en una tabal con
>>> 260.000 registros)
>>> En vez de cargar la tabla directamente, se carga la vista como capa
>>> editable.
>>>
>>>
>>>
>>> En Fri, 09 Feb 2018 02:14:57 -0300, jvenegasperu . <
>>> jvenegasperu(at)gmail(dot)com>
>>> escribió:
>>>
>>> Hola a todos buen dia
>>>
>>>>
>>>> Tengo usuarios que hacen insert update delete a tablas a traves de Qgis
>>>> todo funciona ok sin embargo dentro de la tabla tengo un conjunto de
>>>> columnas que se llenan de manera automatica de acuerdo a los campos que
>>>> ingresa el usuario y al producirse la insercion o update se disparan
>>>> trigers after que guardan en otras tablas dependiendo del contenido de
>>>> esos
>>>> campos que el usuario no deberia tocar.
>>>>
>>>> Por el momento lo que estoy haciendo es preparar un archivo de trabajo
>>>> plantilla para qgis y darselo a los usuarios para trabajar en las capas
>>>> de
>>>> trabajo que utiliza, en qgis cada capa se corresponde con una tabla de
>>>> postgres entonces lo que hago es desde la interfaz de qgis ocultar los
>>>> campos que no debe tocar para que al momento de registrar la información
>>>> el
>>>> campo no se muestre sin embargo el usuario puede hacer clic derecho
>>>> sobre
>>>> la capa ir a las propiedades y poner visible e incluso editable el
>>>> campo.
>>>> y
>>>> si el usuario modifica esos campos pues toda la automatizacion se va al
>>>> tacho y a veces hasta se cuelga Qgis
>>>>
>>>> Mi consulta es la siguiente es posible darle permisos a un usuario para
>>>> poder efectuar las operaciones de insert update delete pero al mismo
>>>> tiempo
>>>> otorgarle solo visibilidad sobre un conjunto de campos de tal forma de
>>>> tener el siguiente comportamiento:
>>>>
>>>> usuario postgres tiene todos los permisos y puede ver todos los campos
>>>> hace
>>>> select a la tabla 1
>>>>
>>>> select * from tabla1 devuelve por ejemplo 10 campos. todos los campos de
>>>> la
>>>> tabla
>>>>
>>>> si se loguea el usuario1 que tiene restricciones para los campos
>>>> entonces
>>>> si hace
>>>>
>>>> select * from tabla1 le devuelve por ejemplo solo 4 campos que se le
>>>> asigno
>>>> que podia ver
>>>>
>>>> campo1,campo2,campo5,campo7 -- Es decir solo los campos que tiene
>>>> permiso
>>>> para ver.
>>>>
>>>> Este usuario igual podria hacer todas las operaciones con la tabla pero
>>>> no
>>>> puede ver los demas campos de tal forma que los campos que no se ven
>>>> tambien se puedan llenar con operaciones pero sin que el usuario que se
>>>> logueo pueda verlos.
>>>>
>>>> Es posible hacer algo asi con postgres? como se pdoria lograr?
>>>>
>>>> Espero haberme podido explicar bien ya que este comportamiento ayudaria
>>>> mucho en trabajo que realizo con QGIS.
>>>>
>>>> Como comente actualmente lo hago ocultando el campo desde la interfaz de
>>>> qgis pero esto no es seguro y ademas entre mas campos trae qgis de la BD
>>>> mas pesado y lento se hace para moverse con los datos espaciales.
>>>>
>>>>
>>>>
>>>>
>>> --
>>> Ing. Agrimensor Néstor Ramires
>>> Departamento de Cartografía Digital
>>> Dirección General de Topografía y Catastro
>>> Municipalidad de Rosario
>>>
>>>
>>
>>
>>
>
> --
> Ing. Agrimensor Néstor Ramires
> Departamento de Cartografía Digital
> Dirección General de Topografía y Catastro
> Municipalidad de Rosario
>
>

--
Raul Andres Gutierrez Alejo

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Luis 2018-02-15 15:10:09 Re: Pregunta pgAdmin 4 web (modo servidor + descargar backup / export al equipo local)
Previous Message Néstor Ramires 2018-02-15 14:21:55 Re: Permisos para usuario por columnas