| PostgreSQL 7.4 文檔 | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 27. libpq - C 庫 | Fast Forward | Next |
下面的環境變量可以用于選擇缺省的連接參數值, 這些值將被 PQconnectdb 或 PQsetdbLogin 使用--如果調用代碼沒有直接聲明相應值的話。 比如,這些(環境變量)可以避免把麻煩的數據庫名強加入簡單的應用程序的硬代碼裡面。
PGHOST 設置數據庫服務器名。 如果它以一個斜扛開頭,那麼它聲明一個 Unix 域套接字而不是 TCP/IP 通訊; 其值就是該套接字文件存儲的目錄(缺省為 /tmp)。
PGHOSTADDR 聲明數據庫服務器地數值 IP 地址。我們可以設置這個環境變量,而不是 PGHOST,以避免 DNS 查找的過熱。 參閱這個參數的文檔,在上面的 PQconnectdb 裡,獲取它們的相互關系的細節。
PGPASSWORD 如果服務器要求口令認證,設置使用的口令。 因為安全原因,這個功能已經廢棄了;請考慮使用 $HOME/.pgpass(參閱Section 27.11)。
PGREALM 設置與PostgreSQL一起使用的 Kerberos 領地--如果該領地與本地領地不同的話。 如果設置了 PGREALM ,libpq 應用將試圖用這個域(realm)與服務器進行認證並且使用獨立的門票文件(ticket files)以避免與本地的門票文件衝突。 只有在服務器選擇了 Kerberos 認證時才使用這個環境變量。 (譯注:門票文件是 Kerberos認證協議中用于交換密鑰的一個文件/服務器。)
PGSSLMODE 設置該連接是否與服務器協商在 SSL 連接, 以及 SSL 連接的優先級。 有四種模式:disable 將只進行無加密的 SSL 連接嘗試; allow 將進行協商,首先嘗試非 SSL 連接,如果這個失敗, 再嘗試 SSL 連接;prefer (缺省)將進行協商,首先嘗試 SSL 連接, 然後如何這個失敗,將嘗試一個普通的非SSL連接;require 將只嘗試SSL 連接。 如果編譯 PostgreSQL 的時候沒有打開 SSL 支持,那麼使用 require 選項將導致一個錯誤, 而使用 allow 和 prefer 是允許的,只是 libpq 將不能協商進行一次 SSL 連接。
PGREQUIRESSL設置一個連接是否必須在 SSL 上進行。 如果設置為 "1",那麼如果服務器不支持 SSL 連接,那麼 libpq 將拒絕連接(等效于 sslmode 為 prefer)。 因為有了 sslmode 的設置,所以這個選項已經廢棄了,這個選項只有在 PostgreSQL 編譯的時候打開了 SSL 支持才能用。
PGCONNECT_TIMEOUT 設置在等待與 PostgreSQL 服務器連接的時候,libpq 等待的最大的秒數。 如果未設置或者為 0,libpq 將不停等待。 我們不建議把這個值設置得少于 2 秒。
下面的環境變量可以用于為每個PostgreSQL 會話聲明缺省特性(又見 ALTER USER 和 ALTER DATABASE 命令獲取基于用戶和數據庫設置缺省行為的方法):
參閱 SET SQL 命令獲取這些環境變量的正確值的信息。