我已指定一个组(Microsoft Entra)作为 Postgres 服务器管理员。
我是该小组的成员。
我能够以组名作为用户访问数据库:
$ ACCESSTOKEN="$(az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken)"
$ psql "host=commonuksouth.postgres.database.azure.com port=5432 dbname=MyDatabase user=MyGroup password='${ACCESSTOKEN}' sslmode=require"
但不使用我的身份名称:
$ ACCESSTOKEN="$(az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken)"
$ psql "host=commonuksouth.postgres.database.azure.com port=5432 dbname=MyDatabase [email protected] password='${ACCESSTOKEN}' sslmode=require"
psql: error: connection to server at "mydatabase.postgres.database.azure.com" (4.234.11.101), port 5432 failed: FATAL: password authentication failed for user "[email protected]"
这是为什么?对于用户(数据库管理员)来说,知道应该使用哪个安全组登录数据库似乎有悖常理。