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