BUG #1571: Cannot grant execute functions to non-superusers

Started by CaTabout 21 years ago4 messagesbugs
Jump to latest
#1CaT
cat@zip.com.au

The following bug has been logged online:

Bug reference: 1571
Logged by: CaT
Email address: cat@zip.com.au
PostgreSQL version: 7.4.7
Operating system: Linux (Debian woody with backports.org pgsql)
Description: Cannot grant execute functions to non-superusers
Details:

Basically, I just cannot get my nonsuperuser access to the functions I
import. Aparently this works for 8.0 but I'm using 7.4.7 and its gone all
wibbly.

CREATE OR REPLACE FUNCTION gen_salt(text) RETURNS text AS
'$libdir/pgcrypto', 'pg_gen_salt' LANGUAGE 'C';
...
postgres=# \df+ gen_salt
List of functions
Result data type | Schema | Name | Argument data types | Owner |
Language | Source code | Description
------------------+--------+----------+---------------------+----------+----
------+--------------------+-------------
text | public | gen_salt | text | postgres | c
| pg_gen_salt |
text | public | gen_salt | text, integer | postgres | c
| pg_gen_salt_rounds |
(2 rows)

postgres=# grant execute on function gen_salt(text) to holly;
GRANT
postgres=# select gen_salt('md5'::text);
gen_salt
-------------
$1$CIvz7yzz
(1 row)

= holly@hollydb:/holly> \set VERBOSITY verbose
= holly@hollydb:/holly> select gen_salt('md5'::text);
ERROR: 42883: function gen_salt(text) does not exist
HINT: No function matches the given name and argument types. You may need
to add explicit type casts.
LOCATION: ParseFuncOrColumn, parse_func.c:323
= holly@hollydb:/holly> \df+ gen_salt
List of functions
Result data type | Schema | Name | Argument data types | Owner | Language |
Source code | Description
------------------+--------+------+---------------------+-------+----------+
-------------+-------------
(0 rows)

#2CaT
cat@zip.com.au
In reply to: CaT (#1)
Re: BUG #1571: Cannot grant execute functions to non-superusers

On Thu, Mar 31, 2005 at 01:07:56AM +0100, CaT wrote:

The following bug has been logged online:

Bug reference: 1571
Logged by: CaT
Email address: cat@zip.com.au
PostgreSQL version: 7.4.7
Operating system: Linux (Debian woody with backports.org pgsql)
Description: Cannot grant execute functions to non-superusers
Details:

Ok. I apparently misunderstood something. It seems you can't add global
functions and just give users access to them. You need to dupe functions
on a per db basis. So... feel free to move along and ignore this bug
report. :)

Nothing to see here... :)

--
"To the extent that we overreact, we proffer the terrorists the
greatest tribute."
- High Court Judge Michael Kirby

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: CaT (#1)
Re: BUG #1571: Cannot grant execute functions to non-superusers

"CaT" <cat@zip.com.au> writes:

= holly@hollydb:/holly> select gen_salt('md5'::text);
ERROR: 42883: function gen_salt(text) does not exist

This is not a permissions problem, it's a "you're not looking in the
right place" problem. I speculate that either you loaded the functions
in the wrong database, or holly for some reason doesn't have the public
schema in her search path.

regards, tom lane

#4CaT
cat@zip.com.au
In reply to: Tom Lane (#3)
Re: BUG #1571: Cannot grant execute functions to non-superusers

On Wed, Mar 30, 2005 at 07:46:37PM -0500, Tom Lane wrote:

"CaT" <cat@zip.com.au> writes:

= holly@hollydb:/holly> select gen_salt('md5'::text);
ERROR: 42883: function gen_salt(text) does not exist

This is not a permissions problem, it's a "you're not looking in the
right place" problem. I speculate that either you loaded the functions
in the wrong database, or holly for some reason doesn't have the public
schema in her search path.

Yes. Definately a PEBCAK issue. :)

--
"To the extent that we overreact, we proffer the terrorists the
greatest tribute."
- High Court Judge Michael Kirby