Crispin T. | 11 Nov 19:01 2010
Picon

permisos de usuarios

saludos a todos.
otra ves por aqui con otra duda. esta ves a serca de permisos de usuarios.
tengo una tabla donde tengo privilegios de solo lectura  para el usuario prueba.

prueprue=# \z cliente
                                       Privilegios
 Esquema | Nombre  | Tipo   |        Privilegios                    |
Privilegios de acceso a columnas
---------------+-------------+---------+-----------------------------------------+-------------------------------------------------
 public      | cliente    | tabla  | postgres=arwdDxt/postgres+|
               |               |          | prueba=r/postgres                |
(1 fila)

las preguntas son.
como puedo saber que privilegios tiene el usuario prueba en todos los
objetos de la bd ?
como puedo saber que privilegios tiene el usuario prueba en todos los
objetos de todas las bds de mi server?
como puedo saber que usuarios tienen que permisos sobre sierto objeto
de la bd(tal cual se muestra con \z nombre objeto.)?

que tablas tengo que consultar para sacar dicha informacion.
Nota: toda esta informacion la quiero obtener desde SQL y no con \z
del cliente psql.

gracias por sus respuestas.

--

-- 
Solo alcanzaras el conocimiento conociendo la ignorancia.
-
(Continue reading)

Alvaro Herrera | 11 Nov 20:21 2010

Re: permisos de usuarios

Excerpts from Crispin T.'s message of jue nov 11 15:01:32 -0300 2010:

> como puedo saber que privilegios tiene el usuario prueba en todos los
> objetos de la bd ?

Me parece que lo más sensato sería ejecutar la función
has_table_privilege() en todas las tablas, para saber sobre qué tablas
tiene privilegios el usuario.  Repite para cada tipo de objeto (cada uno
tiene su propia función).  Si quisieras optimizar esto podrías examinar
el catálogo pg_shdepend para no tener que ejecutar las funciones sobre
todas las tablas cuando las bases de datos son grandes, pero
probablemente no vale la pena en una primera implementación.

> como puedo saber que privilegios tiene el usuario prueba en todos los
> objetos de todas las bds de mi server?

No veo que utilidad directa podría tener esto.  Tienes que conectarte a
cada BD y repetir lo de arriba para cada una.

> como puedo saber que usuarios tienen que permisos sobre sierto objeto
> de la bd(tal cual se muestra con \z nombre objeto.)?

Abre psql -E y ejecuta \z para que puedas estudiar el SQL que envía.

--

-- 
Álvaro Herrera <alvherre@...>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@...g)
(Continue reading)


Gmane