| 1 | /*------------------------------------------------------------------------- |
| 2 | * |
| 3 | * Interfaces in support of FE/BE connections. |
| 4 | * |
| 5 | * |
| 6 | * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group |
| 7 | * Portions Copyright (c) 1994, Regents of the University of California |
| 8 | * |
| 9 | * src/include/fe_utils/connect.h |
| 10 | * |
| 11 | *------------------------------------------------------------------------- |
| 12 | */ |
| 13 | #ifndef CONNECT_H |
| 14 | #define CONNECT_H |
| 15 | |
| 16 | /* |
| 17 | * This SQL statement installs an always-secure search path, so malicious |
| 18 | * users can't take control. CREATE of an unqualified name will fail, because |
| 19 | * this selects no creation schema. This does not demote pg_temp, so it is |
| 20 | * suitable where we control the entire FE/BE connection but not suitable in |
| 21 | * SECURITY DEFINER functions. This is portable to PostgreSQL 7.3, which |
| 22 | * introduced schemas. When connected to an older version from code that |
| 23 | * might work with the old server, skip this. |
| 24 | */ |
| 25 | #define ALWAYS_SECURE_SEARCH_PATH_SQL \ |
| 26 | "SELECT pg_catalog.set_config('search_path', '', false);" |
| 27 | |
| 28 | #endif /* CONNECT_H */ |
| 29 | |