更改SQL实例端口
发布日期:2021-06-24 18:15:21 浏览次数:5 分类:技术文章

本文共 2518 字,大约阅读时间需要 8 分钟。

为SQL Server使用非标准的端口

你正在使用标准的端口号1433来连接SQL Server 2005吗?你考虑过设置SQL Server来监听一个不同于1433的端口号吗?我曾经就是这样。在这篇文章里,我将讨论我是怎样做的,以及我在设置SQL Server 2005去使用一个非标准的端口号时遇到的问题。

使用默认端口号的问题

当你安装SQL Server时,默认实例是监听1433端口号的。众所周知,这是默认的端口号。因此,通常你会看到来自黑客对1433端口的攻击。所以为了最小化黑客通过默认端口号来访问的潜在的威胁,你应该考虑使用一个不同于1433的非标准的端口号。

当安装一个命名实例后,在它启动的时候默认使用的是动态决定的端口号。因此,命名实例每次启动时,都有可能监听不同的端口号。这会有些问题,特别是如果你需要通过防火墙来访问的话。既然端口号可以动态变化,那么你就不能使用防火墙规则来限制用特定端口号访问你的SQL Server。因此,为了限制对你的SQL Server的访问,你需要配置SQL Server去监听一个特定的端口。

怎样配置SQL Server去监听特定的端口

既然默认端口号是易受黑客攻击的,而命名实例又是动态的设置端口号,那么你应该考虑指定你的每一个SQL Server实例去监听一个特定的端口。SQL Server使用一个特定的端口提供了更安全的环境。那么怎样去配置SQL Server 2005使其监听一个不同的端口呢?为了实现这个目标,SQL Server提供了SQL Server配置管理器工具。

为了启动配置管理器,单击开始→程序→Microsoft SQL Server 2005→配置工具→SQL Server 配置管理器。一旦你启动了SQL Server配置管理器,你就可以打开SQL Server 2005网络配置的节点。你这样做完后,就会看到类似下面的屏幕:

 

 

这里你可以看到我有4个不同的SQL Server实例在运行。一个是默认实例,叫做MSSQLSERVER,一个是Express版,叫做SQLEXPRESS,接着我有两个命名实例,叫做SERVER1和SERVER2。

为了改变这些实例的端口配置,我将单击一个实例,这样会在右边显示可用的不同协议。下面是我单击实例SERVER2时的屏幕快照:

 

 

你可以看到我启动了两个协议,“Shared Memory”和“TCP/IP”。为了改变端口设置,在右边栏里右击TCP/IP协议,然后选择属性选项。当你做完后,将显示下面的屏幕快照:

 

 

在这个屏幕里,你可以看到“全部监听”设置为“是”。这意味着该实例将监听所有的IP地址。当你安装SQL Server实例时,监听所有的IP地址是默认设置。如果你想让SQL Server仅监听一个特定的IP地址的话,那么你需要把“全部监听”设置改为“否”。

为了指定你想要让SQL Server监听的特定端口,你需要单击上面屏幕的“IP地址”标签。当你做完后,会显示类似下面的屏幕:

 

 

你可以看到IP1和IP2是禁用的(“已启用”选项设置为“否”),在IPALL里的TCP动态端口设置为1317。由于SERVER2是命名实例,在实例启动的时候IP地址是动态设置的,端口1317正好是我的命名实例目前使用的端口号。如果我停止该实例并重启,那么该实例在重启的时候可能使用一个不同的端口,因为端口号是动态设置的。当TCP动态端口选项被设置为0时,它表示数据库引擎正在监听动态端口。

为了确保命名实例使用一致的端口号,或者你想要为默认实例改变默认端口号,你所需要做的就是指定一个特定的端口号来让你的SQL Server实例去监听,就象下面这样:

 

 

这里我已经指定了我想使用的端口8484作为我的命名实例SERVER2的端口号。我只需在TCP端口选项里输入这个端口号就行了。

当使用特定端口设置时的客户端连接

客户端连接到一个使用非标准、依赖于你的安装设置的SQL Server实例时,可能会有一些问题,尤其是在你没有运行SQL Server Browser服务的时候。客户端有3种方法连接到一个使用特定非标准端口号的实例。

第一种方法是运行SQL Server Browser服务。当这个服务运行的时候,它会通知客户端要求连接的实例正在使用的端口号。这可以避免客户端在连接一个SQL Server实例时必需知道端口号的情形。如果你想要更安全的环境,那么你不要运行SQL Server Browser服务。通过不运行SQL Server Browser服务,客户端为了连接SQL Server就需要在连接字符串里指定正确的端口号。

第二个方法是在客户端机器上创建一个SQL Server的别名。通过运行SQL Server配置管理器工具可以在客户端机器上创建一个别名。在SQL Native Client节点下,右击别名然后选择新建别名。做完后会出现新建别名对话框。在该对话框里,你可以创建一个别名,并指定该别名的实例和端口号。下面这个屏幕快照显示了我是怎样为我的指定了使用端口号8484来连接的命名实例SERVER2创建别名的。

注意我已经指定了别名为SERVER2,它使用的端口号是8484,并且服务器选项的值为SERVER2。创建该别名来把别名SERVER2与端口号为8484的服务器SERVER2相关联。一旦我指定这些信息,我就可以单击确定按钮或者单击应用再单击确定按钮来创建别名了。

最后一个方法是在连接字符串里通过编程来指定端口号。由于我不是一个连接字符串的大师,所以我不敢保证所有不同的方法都能达到这个目标,但有一个方法可行,就是在连接字符串里连同服务器名称一起指定端口号。这可以通过在服务器名称后立即输入“,<端口号>”来实现。所以对于我上面的例子SERVER2,我将有一个类似下面的连接字符串:

Data Source=SERVER2,8484;Initial Catalog=AdventureWorks

注意我已经在连接字符串的Data Source参数里的服务器名称的后面添加了“,8484”。

转载地址:https://blog.csdn.net/weixin_34248258/article/details/86189130 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:python开发_stat
下一篇:SCCM2012安装、配置

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月15日 17时55分36秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章