如果我更改 Windows 域用户名,我的 SQL Server 登录名会发生什么情况

如果我更改 Windows 域用户名,我的 SQL Server 登录名会发生什么情况

我的问题和这个问题非常相似更改 Windows 域用户名但原始问题并没有明确回答我的细微变化。

如果我更改了 Windows 用户的用户名(例如,如果他们结婚了),我为旧用户名创建的 Sql Server 登录信息是否会更新以反映该更改,还是我必须为更新后的 Windows 用户创建一个新的登录信息?

谢谢本

答案1

如果登录与域帐户绑定,那应该没问题,因为在基本层面上它取决于用户的 SID 而不是实际的用户名。

如果新用户名不起作用,您可能必须使用此命令重置令牌缓存:

DBCC FREESYSTEMCACHE('USERSTORE_TOKENPERM');

答案2

权限应该继续正常工作,但 SQL Server 中显示的用户名在某些地方将是旧名称,直到您手动更新它。

虽然删除/创建方法可以工作,并且显然创建具有相同 SID 的重复 SQL 登录似乎对某些人来说有效,但我建议只更新 SQL Server 中现有的登录记录(在 SQL 2012 中测试)。

ALTER LOGIN [DomainName\OldUserName] WITH NAME = [DomainName\NewUserName];

这将干净地更改现有的系统登录记录,以反映该域用户的正确新用户名(SID)。

答案3

它实际上匹配的是 SID,而不是名称。所以你没问题。

笔记:

  • 您的意思是 Windows 登录。SQL Server 登录不与 Windows 用户关联。
  • 最佳做法是使用 Windows 组来获取权限,而不是单独的 Windows 用户

答案4

您可以使用以下脚本轻松检查它们在重命名后是否具有相同的 SID,并检查重命名前后是否获得相同的 SID。假设您重命名Domain\LoginADomain\LoginB

SELECT  sid
FROM    sys.server_principals
WHERE   name IN (N'Domain\LoginA')

SELECT  sid 
FROM    sys.server_principals 
WHERE   name IN (N'Domain\LoginB')

应该给你相同的 SID,这证明了@Hyppy 的观点。

相关内容