RE: Error createlang plperlu

From: "Aitor Cincunegui Perez" <acincunegui(at)getxo(dot)net>
To:
Cc: "pgsql-es-ayuda" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Error createlang plperlu
Date: 2011-04-08 11:51:48
Message-ID: 949A6C0E15C3FB45A65820AD14D3017F03517161@eposta.GETXO.ORG
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


La version del Postgres es la 8.4.7
Donde puedo mirar lo del "multiplicity"... No domino mucho esto

-----Mensaje original-----
De: Alvaro Herrera [mailto:alvherre(at)alvh(dot)no-ip(dot)org]
Enviado el: jueves, 07 de abril de 2011 16:29
Para: Aitor Cincunegui Perez
CC: pgsql-es-ayuda
Asunto: Re: [pgsql-es-ayuda] Error createlang plperlu

Excerpts from Aitor Cincunegui Perez's message of jue abr 07 07:31:44 -0300 2011:
> Buenas,
>
> Estoy trabajando bajo plataforma Windows y querría vincular tablas de SQL Server. Tengo instalado el PostgreSQL 8.4 y el ActivePerl 5.10.
> Mirando documentación por internet, he visto que debo utilizar dbi-link.
> Uno de los primeros pasos que mencionan es crear el lenguaje PLPERLU y aqui viene mi problemilla.
> Me da el siguiente error:
>
> createlang -U postgres plperlu geopista
>
> createlang: falló la instalación del lenguaje:
> ERROR: Can't locate vars.pm in @INC (@INC contains: .) at -e line 1.
> BEGIN failed--compilation aborted
> CONTEXTO: mientras se interpretaba la inicialización de Perl

Hmm, ¿qué versión exacta de Postgres estás usando? Si es 8.4.5 o posterior quizás esto se deba a un bug introducido en este cambio:
(Fíjate si tu Perl tiene la opción "multiplicity")

commit b805be2587972c153dbc047dc2cc74edef92a36d
Author: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Date: Thu Sep 30 17:20:25 2010 -0400

Use a separate interpreter for each calling SQL userid in plperl and pltcl.

There are numerous methods by which a Perl or Tcl function can subvert
the behavior of another such function executed later; for example, by
redefining standard functions or operators called by the target function.
If the target function is SECURITY DEFINER, or is called by such a
function, this means that any ordinary SQL user with Perl or Tcl language
usage rights can do essentially anything with the privileges of the target
function's owner.

To close this security hole, create a separate Perl or Tcl interpreter for
each SQL userid under which plperl or pltcl functions are executed within
a session. However, all plperlu or pltclu functions run within a session
still share a single interpreter, since they all execute at the trust
level of a database superuser anyway.

Note: this change results in a functionality loss when libperl has been
built without the "multiplicity" option: it's no longer possible to call
plperl functions under different userids in one session, since such a
libperl can't support multiple interpreters in one process. However, such
a libperl already failed to support concurrent use of plperl and plperlu,
so it's likely that few people use such versions with Postgres.

Security: CVE-2010-3433

--
Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Emanuel Calvo 2011-04-08 14:06:50 Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] off topic:: Entrenamiento en Administración PotgreSQL
Previous Message Jaime Casanova 2011-04-08 05:42:22 Re: sobre particionamiento