Обсуждение: BUG #1571: Cannot grant execute functions to non-superusers
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)
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
"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
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