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
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 |