Re: ERROR: language "c" is not trusted

From: Joe Conway <mail(at)joeconway(dot)com>
To: Chris Albertson <chrisalbertson90278(at)yahoo(dot)com>
Cc: Dann Corbit <DCorbit(at)connx(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: ERROR: language "c" is not trusted
Date: 2003-07-02 01:57:49
Message-ID: 3F023C1D.4050401@joeconway.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Chris Albertson wrote:
> Thanks for the hint. This fixed it:
>
> alberts=# UPDATE pg_language
> SET lanpltrusted = true
> WHERE lanname = 'c';
> UPDATE 1
>
> alberts=# grant USAGE ON LANGUAGE c TO alberts;
> GRANT
>

Ummm, I doubt that's really what you wanted, was it? Quoting the fine
manual, with emphasis added:

USAGE
For procedural languages, allows the use of the specified language
for the creation of functions in that language. This is the only type of
^^^^^^^^^^^^^^^^^^^^^^^^^
privilege that is applicable to procedural languages.

EXECUTE
Allows the use of the specified function and the use of any
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
operators that are implemented on top of the function. This is the only
type of privilege that is applicable to functions. (This syntax works
for aggregate functions, as well.)

Did you just want to allow non-superusers to execute C language
functions, or create their own? The latter is a huge, gaping security
hole, which is why the language is marked "untrusted".

Joe

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Rudy Koento 2003-07-02 03:03:10 Re: updating data but the constraint is set "immediate"
Previous Message Alvaro Herrera 2003-07-02 01:53:14 Re: Duplicate key insert question