Re: Unprivileged access to pgsql functions? - Mailing list pgsql-general

From Matt Warner
Subject Re: Unprivileged access to pgsql functions?
Date
Msg-id AANLkTi=Boi_4PcxhnDeWBwcBjO0yj+EqGPCc8YQ_4Lma@mail.gmail.com
Whole thread Raw
In response to Re: Unprivileged access to pgsql functions?  (Bosco Rama <postgres@boscorama.com>)
Responses Re: Unprivileged access to pgsql functions?  (Bosco Rama <postgres@boscorama.com>)
List pgsql-general


On Fri, Mar 4, 2011 at 1:48 PM, Bosco Rama <postgres@boscorama.com> wrote:
Matt Warner wrote:
> No luck:
>
> *** as postgres
> postgres=# GRANT all on function nvl(anyelement,anyelement) to public;
> GRANT
> postgres=#
>
> *** as unprivileged user
> offload=> select nvl(0,1);
> ERROR:  function nvl(integer, integer) does not exist
> LINE 1: select nvl(0,1);
>                ^
> HINT:  No function matches the given name and argument types. You might need
> to add explicit type casts.

This looks like you defined the function in template1 *after* you created the
user's DB.  Or never defined it there at all.

Try defining the function in the user's DB itself or, if able, recreate the
user's DB after defining it in template1.

HTH.

Bosco.

The function cannot be defined in the user's DB because "language C" is considered a security risk, so only the superuser can do that. Or that's what I get from reading anyway...

Recreating the user DB is problematic because there are already tables in place.

Matt

pgsql-general by date:

Previous
From: Andrew Sullivan
Date:
Subject: Re: Unprivileged access to pgsql functions?
Next
From: Matt Warner
Date:
Subject: Re: Unprivileged access to pgsql functions?