El 11/11/14 a las 11:14, Alvaro Herrera escibió:
> Emanuel Calvo escribió:
>> El 31/10/14 a las 12:47, Jairo Graterón escibió:
>>> postgres=# REVOKE ALL (prosrc) ON pg_proc FROM PUBLIC;
>>> REVOKE
>>>
>>> Aun puedo ver el código.
>> ¿Con que usuario?
> Si mal no recuerdo, revocar los privilegios de una columna no los revoca
> de la relación completa.  Debes hacer el REVOKE general primero, después
> puedes hacer un GRANT de las otras columnas a PUBLIC.  La documentación
> parece darme la razón:
>
> : When revoking privileges on a table, the corresponding column privileges (if
> : any) are automatically revoked on each column of the table, as well. On the
> : other hand, if a role has been granted privileges on a table, then revoking 
> the
> : same privileges from individual columns will have no effect. 
>       http://www.postgresql.org/docs/9.3/static/sql-revoke.html
>
> El estado inicial es que PUBLIC tiene privilegios de toda la tabla, así
> que (tal como dice ahí) revocarle los privilegios de una columna no
> tiene efecto.
>
No me había percatado de eso. Hice la prueba y funciona perfecto.


Quito los permisos al PUBLIC sobre pg_proc:

postgres=# REVOKE ALL PRIVILEGES ON pg_proc FROM PUBLIC;
REVOKE
postgres=# \c postgres pepe
You are now connected to database "postgres" as user "pepe".
postgres=> select * from pg_proc;
ERROR:  permission denied for relation pg_proc




Otorgo solo sobre la columna proname:
postgres=# GRANT SELECT (proname) ON pg_proc TO PUBLIC;
GRANT

Pruebo acceder a todo:
postgres=# \c postgres pepe
postgres=> select * from pg_proc;
ERROR:  permission denied for relation pg_proc


Pruebo acceder solo a proname:
postgres=> select proname from pg_proc;
                   proname                   
----------------------------------------------
 boolin
 boolout
 byteain
 byteaout
 charin
 charout
(...)




-- 
--
Emanuel Calvo                 http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services


-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a