第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用不帶密碼的psql命令運行批處理文件

使用不帶密碼的psql命令運行批處理文件

使用不帶密碼的psql命令運行批處理文件我試圖psql使用批處理腳本執(zhí)行此命令:psql --host=localhost --dbname=<dbname> --port=<Port Number>      --username=<dbuser> --file=C:\PSQL_Script.txt --output=C:\PSQL_Output.txt問題是每次執(zhí)行批處理腳本時都要求輸入密碼。如何通過批處理文件密碼參數(shù)?
查看完整描述

3 回答

?
犯罪嫌疑人X

TA貢獻2080條經(jīng)驗 獲得超4個贊

繼續(xù)閱讀,最好的選擇。但我們首先澄清一些事情。

只有靜音密碼請求

如果您的問題只是密碼提示,您可以將其靜音。我在這里引用手冊:

-w
--no-password

永遠不要發(fā)出密碼提示。如果服務(wù)器需要密碼驗證,并且其他方式(例如.pgpass文件)無法使用密碼,則連接嘗試將失敗。此選項在沒有用戶輸入密碼的批處理作業(yè)和腳本中非常有用。(......)

您可能不需要密碼

通常這是不必要的。默認數(shù)據(jù)庫超級用戶postgres通常對應(yīng)于同名的系統(tǒng)用戶。psql如果使用身份驗證方法peeridentpg_hba.conf文件中設(shè)置,則從此帳戶運行不需要密碼。你可能有這樣的一行:

local    all    postgres    peer

通常還有:

local    all    all         peer

這意味著,每個本地用戶都可以作為沒有密碼的同名數(shù)據(jù)庫用戶登錄到所有數(shù)據(jù)庫。
但是,這里存在一種常見的誤解。再次引用:

僅在本地連接上支持此方法。

大膽強調(diào)我的。
您正在連接localhost,這不是“本地連接”,即使它中包含“本地”一詞。它是到127.0.0.1的TCP / IP連接。localhost上的維基百科:

在現(xiàn)代計算機系統(tǒng)上,localhost作為主機名127.0.0.0/8,通常127.0.0.1::1在IPv6中轉(zhuǎn)換為(環(huán)回)網(wǎng)絡(luò)塊中的IPv4地址。

本地連接的簡單解決方案

省略該參數(shù)-hpsql調(diào)用。再次引用手冊psql

如果省略主機名,psql將通過Unix域套接字連接 到本地主機上的服務(wù)器,或通過TCP / IP連接到localhost沒有Unix域套接字的機器上。

視窗

...沒有Unix域套接字,pg_hba.conf開頭的行local不適用于Windows。在Windows上localhost,默認情況下連接通過,這將我們帶回到開始。

如果您的安全要求不嚴格,您可以通過localhost以下方式信任所有連接:

host    all    all    127.0.0.1/32     trust

我只會關(guān)閉遠程連接進行調(diào)試。為了更安全,您可以在Windows上使用SSPI身份驗證。將此行添加到pg_hba.conf“本地”連接:

host    all    all    127.0.0.1/32     sspi

如果你確實需要密碼

可以設(shè)置環(huán)境變量,但不建議這樣做,尤其是對于Windows。手冊:

PGPASSWORD行為與密碼連接參數(shù)相同。出于安全原因,不建議使用此環(huán)境變量,因為某些操作系統(tǒng)允許非root用戶通過ps查看進程環(huán)境變量; 而是考慮使用該~/.pgpass文件(參見第32.15節(jié))。

手冊psql

conninfo字符串是指定連接參數(shù)的替代:

 $ psql "user=myuser password=secret_pw host=localhost port=5432 sslmode=require"

或者使用URI代替數(shù)據(jù)庫名稱:

 $ psql postgresql://myuser:secret_pw@localhost:5432/mydb?sslmode=require

密碼文件

但通常最好設(shè)置一個.pgpass文件,而不是將密碼放入腳本文件中。
請仔細閱讀本手冊中的簡短章節(jié)。特別要注意這里......

主機名localhost匹配來自本地計算機的TCP(主機名localhost)和Unix域套接字(pghost空或默認套接字目錄)連接。

確切的路徑取決于系統(tǒng)。此文件可以存儲多個角色和端口組合(數(shù)據(jù)庫集群)的密碼:

localhost:5432:*:myadmin:myadminPasswd
localhost:5434:*:myadmin:myadminPasswd
localhost:5437:*:myadmin:myadminPasswd...

Windows機器上查找以下文件:

%APPDATA%\postgresql\pgpass.conf

%APPDATA%通常解析為:C:\Documents and Settings\My_Windows_User_Name\Application Data\。


查看完整回答
反對 回復(fù) 2019-08-19
?
慕姐4208626

TA貢獻1852條經(jīng)驗 獲得超7個贊

我有同樣的問題:

psql -hlocalhost -d<myDB> -U<myUser>

總是提示我輸入密碼。正如@Erwin解釋的那樣,因為它-hlocalhost是通過TCP連接而不是通過Unix域套接字(基于Unix的操作系統(tǒng))。所以,即使您已將自己配置local為受信任的:

local   all    all                     trust

它仍然會提示輸入密碼。因此,為了配置-hlocalhost通過TCP工作,我必須配置hostfor localhost地址,如下所示:

host    all    all    127.0.0.1/32     trust
host    all    all    ::1/128          trust

但這對我不起作用。我必須做的是將兩者結(jié)合起來:

host    all    all    localhost        trust

一些額外的讀數(shù):


查看完整回答
反對 回復(fù) 2019-08-19
  • 3 回答
  • 0 關(guān)注
  • 1175 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號