我可以从 Windows 在 MS SQL 中创建一个新用户并提供 SID

Hak*_*bex 2 sql-server migration t-sql users

我正在尝试迁移数据库,并且与数据库一起,我还尝试迁移用户而无需重新映射用户。我试图用旧的服务器 SID 重新创建 Windows 用户。这可能吗?我有一个我一直在尝试使用的代码示例,但 SQL 给了我一个不正确的语法错误。

询问:

USE [master]
GO
CREATE LOGIN [domain\ntuser] FROM WINDOWS 
WITH 
DEFAULT_DATABASE=[master],
SID=0x01000000000000000000000000000000000000000000000000000000;
GO
Run Code Online (Sandbox Code Playgroud)

错误:

Msg 102, Level 15, State 1, Line 6
Incorrect syntax near '0x01000000000000000000000000000000000000000000000000000000'.
Run Code Online (Sandbox Code Playgroud)

Han*_*non 6

不,从 Windows 创建登录时,SID 是 Windows 提供的。

因此无需重新映射用户;它们在同一域内的服务器之间自动假定相同的 SID。

顺便说一句,您应该提供实际的错误消息,而不是说“SQL 不喜欢它”。它帮助我们提供更有意义的答案,并且在大多数情况下,例如这样,它还提供了实际答案。