diff options
Diffstat (limited to 'contrib/postgres_fdw/connection.c')
-rw-r--r-- | contrib/postgres_fdw/connection.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/contrib/postgres_fdw/connection.c b/contrib/postgres_fdw/connection.c index be4ec07cf9e..4fbf043860a 100644 --- a/contrib/postgres_fdw/connection.c +++ b/contrib/postgres_fdw/connection.c @@ -75,7 +75,7 @@ static bool xact_got_connection = false; /* prototypes of private functions */ static PGconn *connect_pg_server(ForeignServer *server, UserMapping *user); static void disconnect_pg_server(ConnCacheEntry *entry); -static void check_conn_params(const char **keywords, const char **values); +static void check_conn_params(const char **keywords, const char **values, UserMapping *user); static void configure_remote_session(PGconn *conn); static void do_sql_command(PGconn *conn, const char *sql); static void begin_remote_xact(ConnCacheEntry *entry); @@ -261,7 +261,7 @@ connect_pg_server(ForeignServer *server, UserMapping *user) keywords[n] = values[n] = NULL; /* verify connection parameters and make connection */ - check_conn_params(keywords, values); + check_conn_params(keywords, values, user); conn = PQconnectdbParams(keywords, values, false); if (!conn || PQstatus(conn) != CONNECTION_OK) @@ -276,7 +276,7 @@ connect_pg_server(ForeignServer *server, UserMapping *user) * otherwise, he's piggybacking on the postgres server's user * identity. See also dblink_security_check() in contrib/dblink. */ - if (!superuser() && !PQconnectionUsedPassword(conn)) + if (!superuser_arg(user->userid) && !PQconnectionUsedPassword(conn)) ereport(ERROR, (errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED), errmsg("password is required"), @@ -322,12 +322,12 @@ disconnect_pg_server(ConnCacheEntry *entry) * contrib/dblink.) */ static void -check_conn_params(const char **keywords, const char **values) +check_conn_params(const char **keywords, const char **values, UserMapping *user) { int i; /* no check required if superuser */ - if (superuser()) + if (superuser_arg(user->userid)) return; /* ok if params contain a non-empty password */ |