我刚刚启动了 SQL Server 2008 的新安装。我安装了默认实例以及一个命名实例。
我在从服务器本身以外的任何地方以“sa”以外的任何用户连接到命名实例时遇到了问题。
我在混合模式下运行。我有一个已知用户名的登录名/用户。使用该用户/登录名,我可以直接在服务器上正确连接。
当我尝试从其他地方登录时,我收到“用户 '' 登录失败”的错误,错误代码为 18456。在服务器的日志文件中,我看到了一个似乎无济于事的原因:“原因:找不到与提供的名称匹配的登录名。”。但是,该用户/登录名确实存在,因为我可以在本地使用它。
没有关于该错误的更多详细信息。我可以从哪里开始寻找可以帮助我解决此问题的方法?我尝试删除并重新创建用户,以及从头开始创建一个新用户 - 结果相同,本地正常,远程错误。
编辑:部分解决。
现在我已经解决了基本问题——客户端尝试通过默认实例进行连接。我不知道为什么。因此,一旦在防火墙中打开了正确的端口,并为命名实例分配了静态端口,我现在就可以连接了——但前提是我将连接指定为 服务器端口。在这种情况下,SQLBrowser 显然没有帮助/工作。我已验证它正在运行,并在配置更改后停止/重新启动,但目前还没有任何变化。
答案1
基于当您执行 Server,Port 时连接可以正常工作的事实,我认为您的问题与防火墙上未打开 SQL Browser 端口 (1434) 有关。不过,老实说,我认为如果您对端口进行硬编码会更安全。