Re: Trying to solve a SocketError [Errno 13] Permission with PL/Python in PostgreSQL 9.3 - Mailing list pgsql-general
From | Adrian Klaver |
---|---|
Subject | Re: Trying to solve a SocketError [Errno 13] Permission with PL/Python in PostgreSQL 9.3 |
Date | |
Msg-id | 556108C4.3090705@aklaver.com Whole thread Raw |
In response to | Re: Trying to solve a SocketError [Errno 13] Permission with PL/Python in PostgreSQL 9.3 (Marcos Ortiz <mlortiz@uci.cu>) |
Responses |
Re: Trying to solve a SocketError [Errno 13] Permission
with PL/Python in PostgreSQL 9.3
|
List | pgsql-general |
On 05/23/2015 03:51 PM, Marcos Ortiz wrote: > > > On 23/05/15 18:40, Adrian Klaver wrote: >> On 05/23/2015 03:27 PM, Marcos Ortiz wrote: >>> Regards to all the list. >>> First all the info about the system: >>> >>> O.S: CentOS 7 64 bits >>> PostgreSQL version: >>> >>> SELECT version(); >>> version >>> -------------------------------------------------------------------------------------------------------------- >>> >>> >>> PostgreSQL 9.2.7 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) >>> 4.8.2 20140120 (Red Hat 4.8.2-16), 64-bit >>> (1 row) >>> >>> Neo4j version: 2.1.M >>> Py2neo version: 2.0.8 >>> Python version: >>> python >>> Python 2.7.5 (default, Jun 17 2014, 18:11:42) >>> [GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2 >>> >>> Now the problem: >>> >>> We are working here to integrate PostgreSQL with Neo4j through PL/Python >>> using the py2neo module for it, and when we want to send sentences to >>> Neo4j using port 7474, the executed code raises a SocketError [Errno 13] >>> Permission denied. >> >> Well first in the code below, if I am following correctly, the socket >> is 37474. > Yes, Adrian. Sorry for that, the correct port is 7474. I just was > testing with higher ports to > see if the error persisted. >> >> >>> >>> I tested the same code in a normal python script outside of PostgreSQL, >>> and it works well, but the problem is when I use the code inside >>> PostgreSQL with PL/Python. >> >> Second the plpythonu code is running as the postgres user, so does >> that user have permissions on the socket. > Did you mean the socket created by Neo4j's server right? > For that reason, I created a group in the system for this named > supervisor, where neo4j/postgres users are members. > So, if I find the socket file for Neo4j-server, changing permissions > could solve the problem. Right? Not sure, but a quick search found that py2neo uses the neo4j REST API and that API has authorization parameters: http://neo4j.com/docs/stable/security-server.html Have you gone through the above? > Neo4j is a Java-based platform. >> >>> This is the code of a simple function to search a node in the Neo4j >>> graph: >>> >>> CREATE OR REPLACE FUNCTION search_professor_node(nombre_prof text) >>> RETURNS text AS >>> $BODY$ >>> from py2neo import Graph >>> from py2neo.cypher import CypherTransaction >>> >>> graph = Graph("http://neo4j:neo4j@10.8.45.136:37474/db/data") >>> tx = graph.cypher.begin() >>> statement = "MATCH (pf:Professor) WHERE pf.nombre = {name} RETURN pf;" , >>> tx.append(statement, parameters={'name': nombre_prof}) >>> professor= tx.commit() >>> $BODY$ >>> LANGUAGE plpythonu VOLATILE >>> COST 100; >>> >>> and it can be used: >>> SELECT search_professor_node('Max'); >>> >>> The completed error is: >>> >>> ********** Error ********** >>> >>> ERROR: py2neo.packages.httpstream.http.SocketError: Permission denied >>> SQL state: XX000 >>> Context: Traceback (most recent call last): >>> PL/Python function "search_professor_node", line 6, in <module> >>> tx = graph.cypher.begin() >>> PL/Python function "search_professor_node", line 666, in cypher >>> PL/Python function "search_professor_node", line 212, in metadata >>> PL/Python function "search_professor_node", line 257, in get >>> PL/Python function "search_professor_node", line 965, in get >>> PL/Python function "search_professor_node", line 942, in >>> __get_or_head >>> PL/Python function "search_professor_node", line 432, in submit >>> PL/Python function "search_professor_node", line 361, in submit >>> PL/Python function "search_professor_node" >>> >>> Thanks a lot for your time, and I hope to find a suitable solution >>> for it. >>> >>> >> >> > > -- > Marcos Ortiz <http://about.me/marcosortiz>, Sr. Product Manager (Data > Infrastructure) at UCI > @marcosluis2186 <http://twitter.com/marcosluis2186> > > -- Adrian Klaver adrian.klaver@aklaver.com
pgsql-general by date: