ok
Direktori : /opt/alt/postgresql11/usr/share/doc/alt-postgresql11-9.2.24/html/ |
Current File : //opt/alt/postgresql11/usr/share/doc/alt-postgresql11-9.2.24/html/contrib-dblink-connect.html |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >dblink_connect</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 9.2.24 Documentation" HREF="index.html"><LINK REL="UP" TITLE="dblink" HREF="dblink.html"><LINK REL="PREVIOUS" TITLE="dblink" HREF="dblink.html"><LINK REL="NEXT" TITLE="dblink_connect_u" HREF="contrib-dblink-connect-u.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><META NAME="creation" CONTENT="2017-11-06T22:43:11"></HEAD ><BODY CLASS="REFENTRY" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="5" ALIGN="center" VALIGN="bottom" ><A HREF="index.html" >PostgreSQL 9.2.24 Documentation</A ></TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A TITLE="dblink" HREF="dblink.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="dblink.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="20%" ALIGN="right" VALIGN="top" ><A TITLE="dblink_connect_u" HREF="contrib-dblink-connect-u.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="CONTRIB-DBLINK-CONNECT" ></A >dblink_connect</H1 ><DIV CLASS="REFNAMEDIV" ><A NAME="AEN147139" ></A ><H2 >Name</H2 >dblink_connect -- opens a persistent connection to a remote database</DIV ><DIV CLASS="REFSYNOPSISDIV" ><A NAME="AEN147142" ></A ><H2 >Synopsis</H2 ><PRE CLASS="SYNOPSIS" >dblink_connect(text connstr) returns text dblink_connect(text connname, text connstr) returns text</PRE ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN147144" ></A ><H2 >Description</H2 ><P > <CODE CLASS="FUNCTION" >dblink_connect()</CODE > establishes a connection to a remote <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > database. The server and database to be contacted are identified through a standard <SPAN CLASS="APPLICATION" >libpq</SPAN > connection string. Optionally, a name can be assigned to the connection. Multiple named connections can be open at once, but only one unnamed connection is permitted at a time. The connection will persist until closed or until the database session is ended. </P ><P > The connection string may also be the name of an existing foreign server. It is recommended to use the <CODE CLASS="FUNCTION" >postgresql_fdw_validator</CODE > when defining the corresponding foreign-data wrapper. See the example below, as well as the following: <A HREF="sql-createforeigndatawrapper.html" >CREATE FOREIGN DATA WRAPPER</A >, <A HREF="sql-createserver.html" >CREATE SERVER</A >, <A HREF="sql-createusermapping.html" >CREATE USER MAPPING</A > </P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN147159" ></A ><H2 >Arguments</H2 ><P ></P ><DIV CLASS="VARIABLELIST" ><DL ><DT ><TT CLASS="PARAMETER" >connname</TT ></DT ><DD ><P > The name to use for this connection; if omitted, an unnamed connection is opened, replacing any existing unnamed connection. </P ></DD ><DT ><TT CLASS="PARAMETER" >connstr</TT ></DT ><DD ><P ><SPAN CLASS="APPLICATION" >libpq</SPAN >-style connection info string, for example <TT CLASS="LITERAL" >hostaddr=127.0.0.1 port=5432 dbname=mydb user=postgres password=mypasswd</TT >. For details see <CODE CLASS="FUNCTION" >PQconnectdb</CODE > in <A HREF="libpq-connect.html" >Section 31.1</A >. </P ></DD ></DL ></DIV ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN147176" ></A ><H2 >Return Value</H2 ><P > Returns status, which is always <TT CLASS="LITERAL" >OK</TT > (since any error causes the function to throw an error instead of returning). </P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN147180" ></A ><H2 >Notes</H2 ><P > Only superusers may use <CODE CLASS="FUNCTION" >dblink_connect</CODE > to create non-password-authenticated connections. If non-superusers need this capability, use <CODE CLASS="FUNCTION" >dblink_connect_u</CODE > instead. </P ><P > It is unwise to choose connection names that contain equal signs, as this opens a risk of confusion with connection info strings in other <TT CLASS="FILENAME" >dblink</TT > functions. </P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN147187" ></A ><H2 >Examples</H2 ><PRE CLASS="SCREEN" >SELECT dblink_connect('dbname=postgres'); dblink_connect ---------------- OK (1 row) SELECT dblink_connect('myconn', 'dbname=postgres'); dblink_connect ---------------- OK (1 row) -- FOREIGN DATA WRAPPER functionality -- Note: local connection must require password authentication for this to work properly -- Otherwise, you will receive the following error from dblink_connect(): -- ---------------------------------------------------------------------- -- ERROR: password is required -- DETAIL: Non-superuser cannot connect if the server does not request a password. -- HINT: Target server's authentication method must be changed. CREATE USER dblink_regression_test WITH PASSWORD 'secret'; CREATE FOREIGN DATA WRAPPER postgresql VALIDATOR postgresql_fdw_validator; CREATE SERVER fdtest FOREIGN DATA WRAPPER postgresql OPTIONS (hostaddr '127.0.0.1', dbname 'contrib_regression'); CREATE USER MAPPING FOR dblink_regression_test SERVER fdtest OPTIONS (user 'dblink_regression_test', password 'secret'); GRANT USAGE ON FOREIGN SERVER fdtest TO dblink_regression_test; GRANT SELECT ON TABLE foo TO dblink_regression_test; \set ORIGINAL_USER :USER \c - dblink_regression_test SELECT dblink_connect('myconn', 'fdtest'); dblink_connect ---------------- OK (1 row) SELECT * FROM dblink('myconn','SELECT * FROM foo') AS t(a int, b text, c text[]); a | b | c ----+---+--------------- 0 | a | {a0,b0,c0} 1 | b | {a1,b1,c1} 2 | c | {a2,b2,c2} 3 | d | {a3,b3,c3} 4 | e | {a4,b4,c4} 5 | f | {a5,b5,c5} 6 | g | {a6,b6,c6} 7 | h | {a7,b7,c7} 8 | i | {a8,b8,c8} 9 | j | {a9,b9,c9} 10 | k | {a10,b10,c10} (11 rows) \c - :ORIGINAL_USER REVOKE USAGE ON FOREIGN SERVER fdtest FROM dblink_regression_test; REVOKE SELECT ON TABLE foo FROM dblink_regression_test; DROP USER MAPPING FOR dblink_regression_test SERVER fdtest; DROP USER dblink_regression_test; DROP SERVER fdtest; DROP FOREIGN DATA WRAPPER postgresql;</PRE ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="dblink.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="contrib-dblink-connect-u.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >dblink</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="dblink.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >dblink_connect_u</TD ></TR ></TABLE ></DIV ></BODY ></HTML >