我正在尝试在我的 Windows 7 x64 机器上设置 SQL Server 2012 LocalDB (RTM, x64) 共享实例,但我似乎无法连接到共享实例。我正在使用管理员命令提示符进行所有设置。这是我创建实例的方式:
sqllocaldb create MyInstance
这会产生响应:
LocalDB instance "MyInstance" created with version 11.0.
到目前为止,一切都很好。现在我分享一个实例:
sqllocaldb share "MyInstance" "MySharedInstance"
结果是:
Private LocalDB instance "MyInstance" shared with the shared name: "MySharedInstance".
看起来还是不错的。此时,我的 info 命令产生:
.\MySharedInstance
MyInstance
v11.0
使用管理员或非管理员命令提示符从所有者帐户(管理员)连接到实例似乎工作正常。但是,当我以普通用户(而不是 Windows 管理员)身份登录并尝试连接时,事情就偏离了轨道:
sqlcmd -S (localdb)\.\MySharedInstance
结果是:
Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : Named Pipes Provider: Could not open a connection to SQL Server [2]. .
Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : Login timeout expired.
Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online..
使用“-l”开关增加登录超时没有帮助。我可以连接到未共享的默认 v11.0 实例。非管理员用户的 info 命令产生与上面相同的结果,除了没有“MyInstance”,因为它是管理员用户拥有的命名实例。以下命令(适用于管理员用户/实例所有者):
sqllocaldb info ".\MySharedInstance"
也会导致错误:
Windows API call "FileTimeToSystemTime" returned error code: -2147024809.
所以问题是为什么我的非管理员用户不能连接到我的共享实例?这似乎违背了共享实例的全部目的。当我尝试查询共享实例时,“sqllocaldb info”命令引发错误是怎么回事?