更改SQL实例端口
为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”。
更改SQL实例端口的更多相关文章
- 教你管理SQL实例系列(1-15)
全系列转自:51CTO ->jimshu http://jimshu.blog.51cto.com 目录及原本连接如下: 教你管理SQL实例(1)数据库实例 教你管理SQL实例(2)服务启动帐户 ...
- SQLserver安装了多个实例,实例端口号也被修改后的代码连接方式
事例说明 IP地址为192.168.1.100的服务器上安装了SQLServer2000,它有两个实例,分别为:默认实例——JLW和另外新建的实例——JLW\TEST SQLServer网络实用工具中 ...
- SQL学习笔记----更改SQL默认的端口号
1.SQLServer配置管理器----SQLServer网络配置----MSSQLSERVER的协议---TCP/IP(已启用)---IP地址 清空素有的IP,在IPALL下更改默认的端口: 2. ...
- SqlServer nvarchar中的中文字符匹配,更改SqlServer实例和数据库排序规则的办法
我们都知道在SqlServer中的nvarchar类型可以完美的存储诸如中文这种unicode字符,但是我们会发现有时候查询语句去查询nvarchar列的时候查不出来. 为什么nvarchar类型有时 ...
- 更改Oracle实例的字符集
(1).数据库服务器字符集select * from nls_database_parameters 来源于props$,是表示数据库的字符集. (2).服务端字符集环境select * from n ...
- Windows 2003/2008更改远程桌面端口脚本
保存为bat文件,点击运行按提示输入新端口自动完成,直接下载更改远程桌面端口脚本 @echo off color 0a title @@ 修改Windows XP/2003/2008远程桌面服务端 ...
- 搜索本地网络内所有可用的SQl实例
'搜索本地网络内所有可用的SQl实例 Dim instance As SqlDataSourceEnumerator = SqlDataSourceEnumerator.Instance Dim dt ...
- SQL Server 端口号的使用
SQL Server 端口号的使用 服务器地址 逗号 端口号 服务器地址,端口号 xxx.xxx.xxx.xxx,0000 www.xxx.com,1533 (1533是SQL Server 的端 ...
- 学习《Oracle PL/SQL 实例讲解 原书第5版》----创建账户
通过readme.pdf创建student账户. 以下用sys账户登录时都是sysdba. 一.PL/SQL 登录oracle. SYS/123 AS SYSDBA 账户名:sys:密码:123:作 ...
随机推荐
- Ruby语言学习系列--String 类函数
函数名称 说明 示例 * 将字符串拷贝N次 “ha”*4 >> “hahahaha” + << concat 连接字符串 “yes” + “no” >& ...
- sql多行合并成一行用逗号隔开,多表联合查询中子查询取名可重复
简单版的 SELECT a.CreateBy,Name =stuff((select ','+Name FROM SG_Client WHERE CreateBy = a.CreateBy for x ...
- 【手记】解决VS2010宏功能报错
抱歉问题解决前没留截图,总之就是使用宏相关的功能都打不开,会弹窗报错,英文,大意是[一个或多个组件不存在,请尝试重装]. 尝试过: 修复安装VS2010 按此文照做:https://visualstu ...
- 如何利用gulp构建前端自动化
1,使用 gulp.watch 来监听文件自动打包 在上篇文章中,介绍了如何利用webpack来为项目做打包编译等工作,其中介绍到在我们开发的时候,经常改动js,因为我们文件是引用编译后的js文件,若 ...
- [C语言] 数据结构-逻辑结构和物理结构
数据结构:相互之间存在一种或多种特定关系的数据元素的集合 1.数据结构分为逻辑结构和物理结构 集合结构:集合结构中的数据元素除了同属于一个集合外,他们之间没有其他关系 线性结构:线性结构中的数据元素之 ...
- 简易HashMap实现
为了更好的理解HashMap线程不安全的根源,这里提供了HashMap的简易实现: package map.test; import org.apache.commons.lang3.StringUt ...
- POJ Georgia and Bob-----阶梯博弈变形。
Georgia and Bob Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 6622 Accepted: 1932 D ...
- spring Controller 层注解获取 properties 里面的值
前言:最近在做一个项目,想要在 controller 层直接通过注解 @Value("")来获取 properties 里面配置的属性. 这个其实和 springmvc.sprin ...
- SVN提交小结
在我们用VS进行项目合作开发的过程中,SVN的提交控制是至关重要的,由于版本冲突造成的各种麻烦咱们已经遇到的够多了.所以,总结他们的经验教训,给我们也给其他人做个提醒.下面的第一部分是需要在正式开发之 ...
- node.js和JavaScript的关系
node.js是一个基于 Chrome V8 引擎的 JavaScript 运行时环境. 一.类比JavaScript和java JavaScript java V8 JVM node.js JRE ...