Re: How to hide stored procedure's bodies from specific user
От
Guillaume Lelarge
Тема
Re: How to hide stored procedure's bodies from specific user
Дата
Msg-id
CAECtzeW6TS2rm_VB+t_ZAXBDkhjzZ7Ym3bpbOr2DEC26JAhb1w@mail.gmail.com
Ответ на
Re: How to hide stored procedure's bodies from specific user (Berend Tober)
Список
Дерево обсуждения
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 John R Pierce <pierce@hogranch.com>
Re: How to hide stored procedure's bodies from specific user Alexey Bashtanov <bashtanov@imap.cc>
Re: How to hide stored procedure's bodies from specific user Pavel Stehule <pavel.stehule@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 Saimon Lim <aimon.slim@gmail.com>
Re: How to hide stored procedure's bodies from specific user Berend Tober <btober@broadstripe.net>
Re: How to hide stored procedure's bodies from specific user Guillaume Lelarge <guillaume@lelarge.info>
Re: How to hide stored procedure's bodies from specific user Berend Tober <btober@broadstripe.net>
Re: How to hide stored procedure's bodies from specific user Merlin Moncure <mmoncure@gmail.com>
2015-02-14 14:07 GMT+01:00 Berend Tober <btober@broadstripe.net>:
Saimon Lim wrote: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.
Create the function that you want restrict access to in a separate 'private' schema to which usage is not granted.
Create the functions you wish to allow access to in a schema to which the role is granted access to.
You original question was different, i.e., you were asking about hiding your clever algorithms from inquisitive inspection. For that, similarly use as 'private' schema where you keep you super-secret stuff, and then provide a sanitized interface in the 'public' schema:
CREATE OR REPLACE FUNCTION private.average(a float, b float)
RETURNS float
LANGUAGE sql
AS $$
SELECT ($1 + $2)/2.;
$$;
CREATE OR REPLACE FUNCTION public.average(a float, b float)
RETURNS float
LANGUAGE sql
as $$
select private.average(a,b)
$$
security definer;
Unless I misunderstood something, this doesn't protect at all the function source code. You can still get it by reading pg_proc.
--
В списке pgsql-general по дате отправления
От: Berend Tober
Дата:
От: Berend Tober
Дата: