2013-07-03 32 views
0

我在SSMS中遇到问题。 有两个SQL Instance在同一个系统上运行。SQL Server允许登录提供错误的端口号

1. localhost\sql2008,1434 
2. localhost\Personal,1433 

我一直Second Instance默认端口即1433First Instance1434运行到新的端口。

这两个实例都有名称相同,但数据不同的数据库。

现在的问题:

SSMSConnect Server提示来了,当我输入

Server Name =localhost\Personal,1434然后

它实际上登录localhost\sql2008,1434服务。 同样,当我进入

Server Name =localhost\sql2008,1433然后

它实际上登录localhost\personal,1433服务。

为什么是这样?

这是一个缺陷SSMS

据我说,这应该不允许我登录,因为没有提供名称的这样的实例正在提到的端口上运行。

请提供一些解决方案。 在前提前感谢

回答

1

连接字符串中的实例名称不具有权威性。它用于使用SQL Browser service(通常需要UDP 1434,但这是一个不同的故事)来确定端口号或命名管道名称。如果您在连接字符串中显式提供端口号,则实例名称不会用于任何事情,客户端将尝试连接到提供的主机名(localhost)和端口。授权成功,连接成功。您可以在实例名称中写入任何内容,localhost\foobar,1433也将成功连接。

+0

非常感谢。正如你所提到的,当提供**端口号**时,它看不到** Instance Name **,只是检查URL,即** localhost **,并尝试连接。今天我学到了一件新事物,也是非常有趣的一件事。 – Romesh