SQL Srv 2016:用户'MicrosoftAccount\...'登录失败

14

我有一台装有SQL Server 2016 Dev的Windows 10 Pro机器。机器上有两个本地用户账户:[WORK\admin]和[WORK\erop]。[WORK\erop]账户是最初创建的,未连接到Microsoft。但后来我将其连接到了我的MS账户。在安装SQL Srv时,[WORK\erop]账户被添加到sysadmin角色。

现在我尝试使用SSMS作为[WORK\erop]连接到SQL Srv实例,但收到以下错误:

Login failed for user 'MicrosoftAccount\<my_MS_account>'. Reason: Could not find a login matching the name provided. [CLIENT: <local machine>] 并且 Error: 18456, Severity: 14, State: 5. 这意味着“无效的用户ID”,详情请参考这里

我猜测SSMS是在MS账户下启动的,由于MS账户没有SQL Srv实例的登录权限,它拒绝连接。

我执行了以下操作

CREATE LOGIN [MicrosoftAccount\<MS_account>] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
GO

ALTER SERVER ROLE [sysadmin] ADD MEMBER [MicrosoftAccount\MS_account]
GO

一切都很好。但我想知道是否有更聪明的方法将MS_account映射到在SQL Srv实例上登录的本地用户?


你找到任何解决方案了吗? - Akmal Salikhov
1
我的解决方案是上面的代码片段。但如果你指的是更聪明的方法...很遗憾,没有。 - erop
看起来你已经弄清楚了。我的建议是,你应该将你想要作为 SQL Server 管理员的账户设置为实际机器上的管理员账户,并使用该账户登录(你随时可以降低权限,但我从不这样做),因为我假设你想要使用这个特定的账户运行 SQL 服务并安装 SQL Server。然后,在设置好 SQL Server 后,再添加安全登录,就像你之前所做的那样。 - Moojjoo
遗憾的是,这对我没有起作用,我收到了“Windows NT用户或组'MicrosoftAccount...'未找到。请再次检查名称。”的错误提示。 - Ruslan
2个回答

2
我不认为有比你的解决方案更聪明的了,这取决于你的情况和你想要的。但是,如果你不关心OneDrive等功能,你可以选择恢复到本地用户。具体方法如下:
开始菜单 > 头像按钮 > 更改账户设置 > 你的电子邮件和账户 > 使用本地账户登录。
然而,重新添加登录信息是最聪明、最简单的解决方案。

0
对于那些尝试了上述解决方案但仍然遇到此问题的人:请通过将appsettings中的连接字符串替换为在登录MSSQL Management Studio时看到的服务器名称来更改它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接