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 . <jvenegasp...@gmail.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

Reply via email to