Обсуждение: BUG #4980: Dblink issue

Поиск
Список
Период
Сортировка

BUG #4980: Dblink issue

От
"Gaurav K Srivastava"
Дата:
The following bug has been logged online:

Bug reference:      4980
Logged by:          Gaurav K Srivastava
Email address:      gauravgkp@gmail.com
PostgreSQL version: 8.3
Operating system:   Windows xp
Description:        Dblink issue
Details:

I have created a user by command


1:    create user posuser with password ‘pos’;
2:    create database chserver with owner = abc;
3:    GRANT ALL PRIVILEGES ON database chserver TO posuser


Now I have a schema under it named 'pos'

Now there is a table 'tickets' ie pos.tickets

Now I want to make a trigger which link another database say it is chclient
using dblink while inserting any row in tickets table.

then i got dblink function is undefined.

after running contrib/dblink.sql
i got the error while using  dblink
is
ERROR: permission denied for language c

and when I run the command

ALTER PROCEDURAL LANGUAGE C OWNER TO posuser;

then also I got the same error.

Please tell me how i make the dblink function available to posuser which is
non super user.

Re: BUG #4980: Dblink issue

От
Robert Haas
Дата:
On Wed, Aug 12, 2009 at 8:00 AM, Gaurav K Srivastava<gauravgkp@gmail.com> w=
rote:
>
> The following bug has been logged online:
>
> Bug reference: =A0 =A0 =A04980
> Logged by: =A0 =A0 =A0 =A0 =A0Gaurav K Srivastava
> Email address: =A0 =A0 =A0gauravgkp@gmail.com
> PostgreSQL version: 8.3
> Operating system: =A0 Windows xp
> Description: =A0 =A0 =A0 =A0Dblink issue
> Details:
>
> I have created a user by command
>
>
> 1: =A0 =A0 =A0create user posuser with password =91pos=92;
> 2: =A0 =A0 =A0create database chserver with owner =3D abc;
> 3: =A0 =A0 =A0GRANT ALL PRIVILEGES ON database chserver TO posuser
>
>
> Now I have a schema under it named 'pos'
>
> Now there is a table 'tickets' ie pos.tickets
>
> Now I want to make a trigger which link another database say it is chclie=
nt
> using dblink while inserting any row in tickets table.
>
> then i got dblink function is undefined.
>
> after running contrib/dblink.sql
> i got the error while using =A0dblink
> is
> ERROR: permission denied for language c
>
> and when I run the command
>
> ALTER PROCEDURAL LANGUAGE C OWNER TO posuser;
>
> then also I got the same error.
>
> Please tell me how i make the dblink function available to posuser which =
is
> non super user.

http://www.postgresql.org/docs/current/static/sql-grant.html

I suspect you want some variant of "GRANT USAGE ON LANGUAGE ...".

...Robert

Re: BUG #4980: Dblink issue

От
Tom Lane
Дата:
Robert Haas <robertmhaas@gmail.com> writes:
> On Wed, Aug 12, 2009 at 8:00 AM, Gaurav K Srivastava<gauravgkp@gmail.com> wrote:
>> Please tell me how i make the dblink function available to posuser which is
>> non super user.

> I suspect you want some variant of "GRANT USAGE ON LANGUAGE ...".

C-language functions have to be created by a superuser.  They might be
*used* by a non superuser afterwards, but you have to be superuser to
run the "dblink.sql" script.  I'm fairly sure that GRANT will not
override this.  Since anyone with the power to load arbitrary code into
the backend could make himself a superuser pretty easily, it's a bit
foolish to imagine that granting this privilege to non-superusers
is a good idea.

            regards, tom lane