Re: Usando PL/Python me arroja un SocketError: Permission denied

From: Anthony Sotolongo <asotolongo(at)gmail(dot)com>
To: Marcos Ortiz <mlortiz(at)uci(dot)cu>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Usando PL/Python me arroja un SocketError: Permission denied
Date: 2015-05-23 15:49:34
Message-ID: 5560A18E.9020204@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Marcos el usuario postgres tendrá permisos para para ejecutar en
ese rango de puerto o eso no tiene nada que ver?

De todos trata de ejecutar esta función a ver si le llegas desde dentro
de postgresql al servidor de neo4j(lo que hace es intenter conectarse un
servidor por un puerto):
CREATE OR REPLACE FUNCTION test_server_puerto( ip text, puerto
integer) RETURNS text AS
$BODY$

import socket

host=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
host.connect((ip, puerto))
host.close()

return 'OK'

except Exception,e:

return 'NO:',str(e)

$BODY$
LANGUAGE plpythonu VOLATILE
COST 100;

El 5/23/2015 a las 1:06 AM, Marcos Ortiz escribió:
> Saludos a toda la lista.
> Estoy usando PL/Python para poder conectarme a Neo4j desde PostgreSQL,
> y cuando trato de ejecutar el código me está arrojando un SocketError:
> Permission denied.
>
> Este error generalmente Python lo arroja cuando se está tratando de
> iniciar un servicio que escuche por un puerto por debajo de 1024 y se
> hace con un usuario que no tiene privilegios para hacerlo. Ahora mi
> duda es si para la ejecución de alguna función en PL/Python,
> PostgreSQL internamente use un puerto de estos.
>
> Aquí les dejo el código de la función, que al final lo que hace es
> conectarse al grafo de Neo4j y buscar si un nodo existe en el mismo.
> Neo4j usa el puerto 7474 para esto:
> ------------------------------------------------------------------------------------------------------------------
>
> CREATE OR REPLACE FUNCTION buscar_nodo_estudiante(nombre_est text)
> RETURNS text AS
> $BODY$
> from py2neo import Graph
> from py2neo.cypher import CypherTransaction
> graph = Graph("http://neo4j:neo4j(at)10(dot)8(dot)45(dot)146:7474/db/data")
> tx = graph.cypher.begin()
>
> sentencia = "MATCH (ee:Estudiante) WHERE ee.nombre = {name} RETURN ee;"
> tx.append(sentencia, parameters={'name': nombre_est})
> estudiante= tx.commit()
> if(estudiante):
> print("El estudiante es%\n", estudiante)
> else:
> print("El estudiante %s no esta dentro del grafo.%\n", estudiante)
> $BODY$
> LANGUAGE plpythonu VOLATILE
> COST 100;
> ------------------------------------------------------------------------------------------------------------------------------
>
> Este mismo código lo ejecuto en un script.py y se ejecuta normalmente
> sin problemas, pero cuando lo ejecuto desde PostgreSQL es que me da el
> Permission denied. ¿Tienen alguna idea que podría ser esto?
> Gracias de antemano.
>
> -
> Enviado a la lista de correo pgsql-es-ayuda
> (pgsql-es-ayuda(at)postgresql(dot)org)
> Para cambiar tu suscripci�n:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripcin:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Marcos Ortiz 2015-05-23 16:23:38 Re: Usando PL/Python me arroja un SocketError: Permission denied
Previous Message Marcos Ortiz 2015-05-23 04:06:46 Usando PL/Python me arroja un SocketError: Permission denied