身为管理员组成员,为何无法登录Azure Database for PostgreSQL?
原因与解决方案
原因
这是Azure PostgreSQL的Entra ID认证机制设计逻辑:
- 当你将Entra安全组设置为服务器级管理员时,PostgreSQL仅将该组视为合法的管理员身份主体,不会自动将组内个人用户识别为管理员。
- 你的个人账号虽属于该组,但服务器层面未直接配置你的个人账号为管理员,因此用个人身份登录时,服务器无法验证你拥有管理员权限,导致认证失败。
解决办法
如果希望用个人身份登录并获得管理员权限,可选择以下两种方案:
直接添加个人账号为服务器管理员
在Azure门户的PostgreSQL服务器「Entra ID管理员」设置中,将你的myname@mydomain.com账号添加为管理员(支持同时配置多个管理员,包括组和个人账号)。在数据库内创建个人用户并继承组权限
先用组管理员身份登录数据库,执行以下SQL创建个人用户并让其继承组的权限:CREATE ROLE "myname@mydomain.com" WITH LOGIN IN ROLE "MyGroup";创建完成后,即可用个人身份登录,自动获得组对应的权限。
内容的提问来源于stack exchange,提问作者Liero
相关产品推荐
相关产品推荐

