SQL 服务器名称和托管服务器的主机名 SQL 服务器重命名时处理域用户

Handling Domain users when SQL Server Name and Host Name of Server hosting SQL Server is renamed

这里的问题是托管 SQL 服务器的系统的主机名需要更新。更改系统的主机名后,我们也 updating the SQL Server Name 到新的主机名。

这会导致脏域用户登录,因为 SQL 服务器在更改主机名或更改 SQL 服务器名称时不会自动更新它们。通过执行 Alter commands 可以一次处理一个用户。但我正在寻找一种方法来一次处理 all/multiple 域用户。任何 SP 或 SQL 配置都很好。

以下脚本应该是您需要重命名数据库中的所有用户的脚本。

I don't think the SID changes, so you shouldn't need to change the server-level login.
Otherwise you can add to this script easily.

DECLARE @sql nvarchar(max) = (
    select string_agg(CAST('
ALTER USER ' + QUOTENAME(dp.name) + ' WITH NAME = ' + QUOTENAME(REPLACE(dp.name, 'OLDSERVERNAME', 'NEWSERVERNAME'))
      AS nvarchar(max)), '
')
    from sys.server_principals dp
    where dp.type ='U'
      and dp.name LIKE 'OLDSERVERNAME\%'
);

PRINT @sql;

-- EXEC sp_executesql @sql;