如果 Active Directory SID 与
SQL 服务器 2008
登录 SID (sys.server_principal
) 似乎没有办法更改/更新该值。 ALTER USER
将允许您将 USER 重新映射到 LOGIN,但是 ALTER LOGIN
不允许您将 LOGIN 重新映射到 Active Directory 所以我的问题是......
除了删除并重新创建登录名之外,是否有任何方法(记录在案或以其他方式)用 AD SID 更新 LOGIN SID?我正在使用 OPENROWSET
获取 AD SID 值,但我找不到更新 LOGIN SID 的方法(主要是因为我认为这不可能完成)
顺便说一下,我知道不允许对系统表进行临时查询(因为我已经试过了)。
最佳答案
我敢肯定没有。您可以使用 sp_change_users_login在“用户”和“登录”之间重新映射 SID - 但阅读您的问题听起来您已经知道了。
虽然您可以使用 sp_validatelogins要查明是否有任何孤立的 sql 登录名(未映射到有效的 Windows 帐户),Micorsoft 提供的唯一过程就是您已经猜到的...删除孤立的登录名,并创建一个新的。我拥有的关于在识别孤立登录后解决它们的所有文档都是“删除登录”。
对我来说,缺乏这种能力可能更多的是安全问题,而不是缺失的“功能”。我可以想象各种场景,在这些场景中,更改登录 SID 会被视为非常可疑的行为。想象一下,我想做点什么,让它看起来像是另一个用户。换掉 SID...做我邪恶的行为...换回来。
关于sql - 更新 SQL Server 2008 登录 SID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9603405/