我遇到了与此问题几乎相同的问题,除了 EntraID 和 Azure SQL Server:重命名 AD 中的安全组,并映射 SQL 登录
本质上我创建了一个 EntraID 组 - 比方说“sql-users”。在服务器级别从外部提供商创建登录,然后在某些数据库的数据库级别通过登录创建用户。我在创建登录名和让用户使用其 EntraID 登录名登录数据库时没有遇到任何问题。
后来我想将 EntraID 安全组重命名为“sql-readonly-users”。
这样做之后,在 sys.server_principals 中,我仍然看到“sql-users”。
所以我的问题是,如何更新 server_principal 名称以反映 EntraID 组的名称?
如果我尝试运行“CREATE LOGIN [sql-readonly-users] FROM EXTERNAL PROVIDER”,我会收到以下错误,表明服务器主体已存在: 消息 15025,16 级,状态 8,第 1 行 服务器主体“sql-users”已存在。
如果我尝试“ALTER LOGIN [sql-users] WITH NAME = [sql-readonly-users]”,我会收到以下错误: 消息 40597,16 级,状态 1,第 14 行 外部登录不支持关键字或语句选项“WITH_NAME_OR_PASSWORD”。
另一个问题中提到的唯一一件事是重新启动服务器,这在 Azure SQL 中是不可能的。
如果是启用了 AD 身份验证的 Azure SQL 数据库, 登录名或元数据继续保留在用户初始创建期间使用的组的原始名称。 即使 AD 组或服务主体在 Entra ID 中被重命名,在数据库中它将继续保留为原始方面,但不会有任何下游影响。
唯一的方法是删除该登录名,并在需要时使用最新的名称重新创建它