更新 SQL 服务器中的 SID
Update SID in SQL Server
我的用户已从 Active Directory 中删除并重新创建。当 运行 和 select suser_sid
时,我注意到它显示旧的 SID。
有没有办法将其更新为我的新 SID?
我是 SQL 服务器
的 DBA 管理员
您不能 ALTER
LOGIN
的 SID,不(注意 ALTER LOGIN (Transact-SQL) 中没有 SID
选项)。您需要通过删除旧的并重新创建它并赋予它旧的权限来重新创建 LOGIN
。
这将孤立任何关联的 USER
,因此您需要使用 ALTER USER
在其登录的数据库中将它们重新映射到新的 LOGIN
:
ALTER USER [Domain\User] WITH LOGIN = [Domain\User];
如上所述,您无法为登录更新 SID。来自 Documentation:
NAME = login_name The new name of the login that is being renamed. If
this is a Windows login, the SID of the Windows principal
corresponding to the new name must match the SID associated with the
login in SQL Server. The new name of a SQL Server login cannot contain
a backslash character ().
我的用户已从 Active Directory 中删除并重新创建。当 运行 和 select suser_sid
时,我注意到它显示旧的 SID。
有没有办法将其更新为我的新 SID? 我是 SQL 服务器
的 DBA 管理员您不能 ALTER
LOGIN
的 SID,不(注意 ALTER LOGIN (Transact-SQL) 中没有 SID
选项)。您需要通过删除旧的并重新创建它并赋予它旧的权限来重新创建 LOGIN
。
这将孤立任何关联的 USER
,因此您需要使用 ALTER USER
在其登录的数据库中将它们重新映射到新的 LOGIN
:
ALTER USER [Domain\User] WITH LOGIN = [Domain\User];
如上所述,您无法为登录更新 SID。来自 Documentation:
NAME = login_name The new name of the login that is being renamed. If this is a Windows login, the SID of the Windows principal corresponding to the new name must match the SID associated with the login in SQL Server. The new name of a SQL Server login cannot contain a backslash character ().