2014-11-06 50 views
0

我想通過ssl啓用模式連接postgresql db服務器。在Ruby中,我使用dbi模塊來連接數據庫。但是,dbi似乎並不支持ssl通信。在Ruby DBI模塊中與postgresql進行ssl通信

有沒有其他辦法來實現這一目標? (我寧願只使用dbi模塊)。

某處我讀了pg模塊支持ssl通信。但是,如果我使用pg,我有更多的依賴關係。

+0

_dbi似乎不被支持SSL communication_:你能詳細談談那一點?這樣的模塊不應該關心流量是否被加密,這是由服務器上的配置以及客戶端上的連接字符串或env變量驅動的。 – 2014-11-06 12:58:04

+0

我讀了dbi文檔,我沒有找到任何這樣的配置來啓用'sslmode = require'(或)來傳入連接字符串。服務器使用sslmode正確配置。它適用於perl,php客戶端。如果你已經更新了關於啓用ssl的dbi文件,請分享。 – Pavunkumar 2014-11-11 05:45:34

+0

驅動程序特定的選項(由於dbi不依賴於驅動程序,因此不會在dbi中記錄)接受'sslmode',或者可以設置'PGSSLMODE'環境變量。另外'prefer'是默認的sslmode,在沒有任何客戶端設置的情況下,如果沒有dbi或dbd :: pg,即使知道它,ssl也將被使用。 – 2014-11-11 15:26:17

回答

0

爲什麼使用DBI?如果您可以嘗試使用pg寶石,因爲它會支持SSL,並且由於它是在Rails應用程序中使用的默認值,所以如果您發現任何問題,它會給您一個額外的信心。

而且使用SSL確保你的Ruby編譯SSL支持:

ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'