| PostgreSQL 8.0.0 中文文件(轉譯自 PostgreSQL 中國 製作的簡體中文版本) | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 16. 伺服器執行時環境 | Fast Forward | Next |
我們可以使用 SSH 對 PostgreSQL 伺服器和客戶端之間的網絡連線進行加密。經過適當處理後,這樣做可以獲得一個足夠安全的網絡連線。 即使是沒有 SSL 的客戶端上也如此。
首先確認 SSH 正在和 PostgreSQL 伺服器的同一台機器上正確地執行, 而且您可以透過某個用戶用SSH登錄。然後您可以用下面這樣的命令從客戶端的機器上建立一個安全通道:
ssh -L 3333:foo.com:5432 joe@foo.com
-L 參數的第一個數字,3333,是通道您這端的連接埠號;可以自由選擇。 第二個數字,5432,是通道的遠端:您的伺服器使用的連接埠號。 在兩個連接埠號之間的名稱或者 IP 地址是您準備連線的資料庫伺服器。 為了使用這個通道與您的資料庫伺服器連線,您在本機於連接埠 3333 連線:
psql -h localhost -p 3333 template1
對於資料庫伺服器而言,她會把您當做真正的用戶 joe@foo.com 並且使用為這個用戶和主機設置的認證手段進行認證。 請注意,伺服器不會認為連接是 SSL 加密的,因為實際上在 SSH 伺服器和 PostgreSQL 伺服器之間是沒有加密的。 只要它們在同一台機器上,這麼做並不會導致任何安全漏洞。
為了保證能夠成功地建立通道,您必須被允許作為 joe@foo.com 透過ssh建立連線, 就像您使用ssh建立終端會話一樣。
提示: 還有幾種不同的產品可以提供安全的通道,所使用的過程類似我們剛剛描述的過程。