sql - 更新 SQL Server 2008 登录 SID

标签 sql sql-server-2008 authentication active-directory

如果 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/

相关文章:

sql - 稍微复杂的 mySQL 查询

sql - SQL Server 2008 中的大小写和计数

sql-server - 为管理员用户启用的 xp_cmdshell 访问被拒绝

MYSQL,毫秒日志记录,操作系统 :windows 2012, 深度问题

java - 在饼图中显示百分比值

sql - 无法合并联合所有 View

sql - 在哪里可以查看 SQL Server 启动/停止日志?

重定向后未设置 Django : request. 用户

php - 如何创建一个使用 cookie 登录的 php 页面?

c# - 从 SQL Server 数据库中获取字符串值