1. 程式人生 > 其它 >accessdeniedexception: 不允許訪問_pgAdmin的Desktop Mode設定允許遠端訪問

accessdeniedexception: 不允許訪問_pgAdmin的Desktop Mode設定允許遠端訪問

技術標籤:accessdeniedexception: 不允許訪問

有時候因為一些安全設定或許可權問題,不允許使用者直接訪問PostgreSQL資料庫,但是Support系統的使用者必須要訪問資料庫. 那怎麼辦呢?在一臺可以訪問PostgreSQL的伺服器上安裝pgAdmin,然後讓使用者使用瀏覽器遠端訪問pgAdmin,訪問PostgreSQL資料庫, 那麼pgAdmin如何設定允許遠端訪問呢?其實pgAdmin有Desktop Mode和Server Mode兩種模式,對於Server Mode的話,這個根本不是問題。

下面介紹Desktop Mode的pgAdmin如何允許遠端訪問,這個是在對pgAdmin這個工具不熟悉的情況下的一個嘗試。很多時候,我們都像一個蹣跚學步的小孩一樣,需要時間和嘗試才會熟練的掌握一款工具!過程中總有磕磕碰碰。

下面測試環境為Windows Server 2019 Datacenter版本,在pgAdmin的安裝目錄,例如,C:\Program Files\pgAdmin 4\v4\web目錄下(這裡是預設安裝,根據實際情況找到安裝目錄)config.py檔案, 找到DEFAULT_SERVER引數,將其值修改為'0.0.0.0'後

#ThisoptionallowstheusertohosttheapplicationonaLAN
#Defaulthostingisonlocalhost(DEFAULT_SERVER='localhost').
#TohostpgAdmin4overLANsetDEFAULT_SERVER='0.0.0.0'(oraspecific
#adaptoraddress.
#
#NOTE:ThisisNOTrecommendedforproductionuse,onlyfordebugging
#ortesting.ProductioninstallationsshouldberunasaWSGIapplication
#behindApacheHTTPD.
DEFAULT_SERVER='0.0.0.0'

#Thedefaultportonwhichtheappserverwilllistenifnotsetinthe
#environmentbytheruntime
DEFAULT_SERVER_PORT=5050

退出並重新啟動pgAdmin後,找到右下角pgAdmin的圖示,選擇”Copy server URL“,就可以在遠端伺服器使用類似下面的URL連結訪問pgAdmin了。

24dec429617878617e340be5f65bf343.png

http://192.168.103.63:52846/?key=33962ea5-6319-4659-bdfa-6b9b233e6eb9

測試過程中發現,啟用遠端訪問pgAdmin後,遠端登入pgAdmin不需要輸入master密碼了。後面檢視官方文件才知道,一般而言只有Destop mode才有master password,但是修改引數DEFAULT_SERVER = '0.0.0.0'後,只有本機第一次登入paAdmin才會需要master密碼,而其他使用者通過瀏覽器遠端訪問paAdmin的話,不需要輸入master密碼了。取而代之的是一長串key:33962ea5-6319-4659-bdfa-6b9b233e6eb9 當然這個key是變化的。每次重啟pgAdmin後就會重新生成一長串Key。

##########################################################################
#Masterpasswordisusedtoencrypt/decryptsavedserverpasswords
#Applicablefordesktopmodeonly
##########################################################################
MASTER_PASSWORD_REQUIRED=True
f477ccced3fd20d70c157fb3c092fb28.png

雖然通過key這種方式也能達到一定的安全性,例如,如果你不知道key,使用下面連結是訪問不了系統的。

http://192.168.103.63:52846//browser/

它會提示下面錯誤資訊,使用上面帶key的URL連結訪問過後,上面這種連結才能正常訪問。總之安全總是相對的。對於Desktop Mode的pgAdmin還是不建議開啟遠端訪問。

Unauthorized

The server could not verify that you are authorized to access the URL requested. You either supplied the wrong credentials (e.g. a bad password), or your browser doesn't understand how to supply the credentials required.