Re: Cifrado del codigo de functions en una BD de PostgreSQL

From: Emanuel Calvo <emanuel(dot)calvo(at)2ndquadrant(dot)com>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: Jairo Graterón <jgrateron(at)gmail(dot)com>, Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Cifrado del codigo de functions en una BD de PostgreSQL
Date: 2014-11-11 14:21:34
Message-ID: 54621B6E.5010205@2ndquadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


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(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Angelo Astorga 2014-11-11 16:49:02 Como cambiar tipo de datos !!!
Previous Message Alvaro Herrera 2014-11-11 14:14:04 Re: Cifrado del codigo de functions en una BD de PostgreSQL