在AD中重命名安全组,并映射SQL登录

时间:2016-02-02 14:42:23

标签: sql-server active-directory

示例:

假设我有一个名为group_01的组,该组映射到SQL Server,并赋予某些权限。

当我将Active Directory中的组重命名为任何值时,请说group_01_OLD。 组名在SQL Server中不会更改,它仍然是group_01

这是正常行为吗?在AD中重命名时,我可以强制SQL重命名组吗?

3 个答案:

答案 0 :(得分:3)

完整的答案隐藏在这里的评论中:https://dba.stackexchange.com/questions/13766/user-windows-login-name-has-been-changed-in-ad-yet-session-in-sql-2008-profiler

基本上,重启整个服务器应该接收更改(假设已经发生了对所有DC的复制)。

如果您不能这样做,您可以尝试手动更新登录名称:

ALTER LOGIN [domain\group_01] WITH NAME = [domain\group_01_OLD];

答案 1 :(得分:3)

补充加布里埃尔的回答。根据您的方案(您已授予组group_01的权限),必须使用ALTER LOGIN命令更改SQL中的名称

ALTER LOGIN [domain\group_01] WITH NAME = [domain\group_01_OLD];

原因是SQL Server在询问AD之前在SQL本身中查找匹配的登录目录视图(即sys.server_principals)。 注意:重命名Windows登录时,SQL Server将验证新名称是否与SID匹配,以验证登录重命名是否有效。

-Raul Garcia

答案 2 :(得分:0)

据我所知,重新启动无法解决任何问题。 SID当然是相同的,但是除了使用...更改登录名外。

ALTER LOGIN [domain\previousgroupname] WITH NAME = [domain\newgroupname];

...如果还希望更改在每个地方都能体现出来,并且登录名和用户之间不匹配,则还需要更改登录名所作用的每个数据库的Security \ Users。可以使用Management Studio来完成,可以在“安全性\登录”和“映射”中编辑组。取消勾选数据库,勾选并再次选择角色。或使用ALTER USER,但这只是更多输入。

USE [db]
ALTER USER [domain\previousgroupname] WITH NAME=[domain\newgroupname];
相关问题