我有一台装有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实例上登录的本地用户?