簡體   English   中英

是否可以在沒有密碼的情況下創建jdbc連接(使用postgresql'trust')?

[英]Is it possible to create a jdbc connection without a password (using postgresql 'trust')?

我正在使用jdbc連接到java應用程序中的postgresql數據庫(實際上該應用程序是用Groovy編寫的)。 我有postgresql設置使用'信任'身份驗證方法。 是否可以在不指定密碼的情況下打開jdbc連接? 當我嘗試使用帶有空密碼的普通構造函數時,它會失敗

Exception in thread "Thread-2" org.postgresql.util.PSQLException: FATAL: password authentication failed for user "myuser"

即使從命令行,這工作正常

psql -U myuser mydatabase
Welcome to psql 8.3.5, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
      \h for help with SQL commands
      \? for help with psql commands
      \g or terminate with semicolon to execute query
      \q to quit

是的你可以。

需要注意的是Postres JDBC驅動程序始終使用IP套接字( hostpg_hba.conf ),即使數據庫是在本地機器上,然后psql可以使用本地套接字( localpg_hba.conf )。 因此,如果psql使用trust身份驗證而JDBC不使用,則可能應該為IP套接字配置trust身份驗證, 請參閱文檔

已經回答但是:

使用psql客戶端程序連接時,如果沒有指定主機( -h ),則默認使用本地套接字 (至少在Linux中)。 相反,在JDBC中,您將使用TCP / IP套接字。 然后,要檢查連接問題,您應該使用在JDBC中使用的相同設置來調用psql,包括主機。

例如

 psql -U myuser -h 127.0.0.1 mydatabase    # uses TCP/IP

哪個不一樣

 psql -U myuser mydatabase      # uses local socket (non TCP/IP)

至少包括3.1版的GlassFish在指定空JDBC密碼時存在問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM