我一直在嘗試使用密鑰保管庫中的管理員密碼創建 azure postgres 服務器。使用通過命令獲得的秘密,az keyvault secret show我總是無法從我的電腦連接服務器。使用在創建命令中存盤為密鑰保管庫機密的相同文本字串時,從我的 PC 連接時沒有任何問題。
jaana@Azure:~$ az postgres server create --location westeurope --resource-group my-rg --name fortunate-postgres-server --admin-user adminU --admin-password changeMe 1 --sku-name B_Gen5_1
jaana@Azure:~$ secret=$(az keyvault secret show --name "AdminPassWord" --vault-name unfortunate-kv --query "value"
jaana@Azure:~$ echo $secret
"changeMe 1"
jaana@Azure:~$ az postgres server create --location westeurope --resource-group my-rg --name unfortunate-postgres-server --admin-user adminU --admin-password $secret --sku-name B_Gen5_1
在我的電腦中:
$ psql "host=fortunate-postgres-server.postgres.database.azure.com port=5432 dbname=postgres user=adminU@fortunate-postgres-server password=changeMe 1 sslmode=require"
psql (9.2.2, server 9.6.21)
WARNING: psql version 9.2, server version 9.6.
Some psql features might not work.
WARNING: Console code page (850) differs from Windows code page (1252)
8-bit characters might not work correctly. See psql reference
page "Notes for Windows users" for details.
SSL connection (cipher: ECDHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.
postgres=> \q
$ psql "host=unfortunate-postgres-server.postgres.database.azure.com port=5432 dbname=postgres user=adminU@unfortunate-postgres-server password=changeMe 1 sslmode=require"
psql: FATAL: password authentication failed for user "adminU"
這怎么可能 ?
uj5u.com熱心網友回復:
只需將解釋添加到@Jaana 的答案中即可。
在這種情況下,有一個雙引號問題,如果你az keyvault secret show不帶-o tsv引數使用,它會輸出帶雙引號的值,然后當你參考 中的變數時az postgres server create,它會傳遞帶雙引號的值。
解決問題,-o tsv就是解決方案,保證輸出不加引號。
在此處查看詳細資訊 - 

uj5u.com熱心網友回復:
只需添加-o tsv到命令中即可az keyvault secret show解決問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/366801.html
標籤:PostgreSQL的 azure-devops psql azure-keyvault
