尽管使用了不同的端口

时间:2015-11-17 08:38:27

标签: sql-server tcp database-connection port delphi-xe

我们有一个使用Windows身份验证连接到SQL Server的客户端。它们使用服务器名称和端口号连接(而不是1433)。

到目前为止,我们所有的软件安装都使用SQL Server身份验证连接到SQL Server,并连接服务器名称,用户名和密码。

我正在尝试在我的计算机上设置测试,看看我是否可以使用此客户端使用的设置连接我们的软件,换句话说,Windows身份验证,服务器名称和端口号。端口号对我来说是新的。

我遇到的问题是无论SQL Server安装的端口号如何,我都可以成功连接,以及从我们的软件传入的端口号。所以我显然做错了什么,或者误解了它是如何工作的。任何帮助将不胜感激。

我的第一步是打开SQL Server配置管理器&gt; <网络配置>我的实例的协议&gt; TCP / IP&gt;属性。然后我打开了IP地址选项卡,并在所有IP1-IPAll部分将TCP端口更改为41000(我用拇指吸了这个数字)。所有这些都是TCP动态端口设置为空白。我申请,保存并重新启动了服务器。

在DbExpress TSQLConnection连接参数中,我传入:

TSQL1connection.Params.Add('OSAuthentication=True');
TSQL1connection.Params.Add('HostName='+SQL_server_name); 
TSQL1connection.Params.Add('Port=123');

我在端口号中输入的内容似乎无关紧要,或者我是否完全放弃了端口设置;我总是设法成功连接。

我想让它成功连接到指定的端口号。

我正在使用SQL Server 2014和Delphi XE8。

1 个答案:

答案 0 :(得分:0)

我不知道TSQLConnection,但我确实对TCP / IP有所了解,我怀疑这里的问题只是对端口的误解。连接中总是涉及两个端口,在这种情况下是服务器端口和客户端端口。他们不一样。在这种情况下,41000是服务器端口,我假设123是客户端端口。建立连接是完全没问题的,这就是为什么你输入的端口号无关紧要。

在解决问题方面,您需要拒绝SQL Server端的连接。连接后服务器会知道客户端端口,但是你是否可以访问该数据并强行拒绝,恐怕我不知道。