Re: How to hide stored procedure's bodies from specific user

Поиск
Список
Период
Сортировка
От Saimon Lim
Тема Re: How to hide stored procedure's bodies from specific user
Дата
Msg-id CAOkVcQ6U96c8NR7Zk76o0ZT9Ai7siBnTOea3jNeeRZvuHwrouw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: How to hide stored procedure's bodies from specific user  (Saimon Lim <aimon.slim@gmail.com>)
Ответы Re: How to hide stored procedure's bodies from specific user  (Merlin Moncure <mmoncure@gmail.com>)
Re: How to hide stored procedure's bodies from specific user  (Berend Tober <btober@broadstripe.net>)
Список pgsql-general
Thanks for your help

I want to restrict some postgres users as much as possible and allow them to execute a few my own stored procedures only.

If I block access using:

REVOKE ALL ON pg_catalog.pg_proc FROM PUBLIC;
REVOKE ALL ON FUNCTION pg_catalog.pg_get_functiondef(oid) FROM PUBLIC;

the user will fail to select procedure's body from pg_catalog.pg_proc and using psql \sf of \ef.
Is this method correct?

2015-02-12 11:53 GMT+03:00 Saimon Lim <aimon.slim@gmail.com>:
For clarification - I run the commands using psql program.

2015-02-11 12:54 GMT+03:00 Saimon Lim <aimon.slim@gmail.com>:
Hi
I want to hide my own stored procedures' bodies from the specific user.
As far as I know, procedure's body is visible in the pg_catalog.pg_proc table.

So, I did the following:
REVOKE ALL ON pg_catalog.pg_proc FROM PUBLIC;

And after it, when user tries:
SELECT * from pg_proc;

The following error occurs:
ERROR:  permission denied for relation pg_proc

It turns out that user don't have access to the body of the procedure.
But I still can get stored procedure's body using
\sf function_name 
or with 
\ef function_name

So, how can I completely hide my own stored procedure's bodies from this user?

Thanks in advance
Saimon


В списке pgsql-general по дате отправления:

Предыдущее
От: Ryan Delaney
Дата:
Сообщение: SELECT, GROUP BY, and aggregates
Следующее
От: "Bald, Glenn"
Дата:
Сообщение: Unknown error while running <> postgresql_installer_dc46cfee2c\getlocales.exe