SQL Server 2005 Express 是微软提供的数据库的低端解决方案, 可免费任意随产品分发, 可以在XP等非专业服务器系统下安装, 还可以远程访问, 对于小型数据应用程序已足够满足数据使用要求.
默认安装下,SQL Server 2005 Express 不允许远程访问, 根据自己的实践, 现总结下SQL Server 2005 Express 远程访问设置攻略, 希望对初学者有所帮助.
远程访问攻略之一: 动态端口策略
一 首先通过以下两种方式之一打开 SQL Server 外围应用配置器
1.开始--运行框中输入 C:/Program Files/Microsoft SQL Server/90/Shared/SqlSAC.exe
2.开始--所有程序--Microsoft SQL Server 2005--配置工具--SQL Server 外围应用配置器
点确定退出
二 然后通过以下两种方式之一打开SQL Server Configuration Manager
1.开始--运行框中输入 C:/WINDOWS/system32/mmc.exe /32 "C:/WINDOWS/system32/SQLServerManager.msc"
2.开始--所有程序--Microsoft SQL Server 2005--配置工具--SQL Server Configuration Manager
三 确保sql server Browser服务已安装并处于启动状态,sql server Browser服务使得客户端在访问时不需指定端口号。在server 采用动态配置端口号的情况下,必须要开启sql server Browser服务。默认情况下,数据库引擎的默认实例使用 1433 号 TCP 端口。但命名实例在启动时,会动态分配未使用的 TCP 端口号。在默认安装下,server 会安装并启用sql server Browser服务。
四 在Windows 防火墙中为“SQL Server 2005”创建例外
1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序”
2.在“添加程序窗口”中单击“浏览”
3.然后找到“C:/ProgramFiles/Microsoft Files/Microsoft SQL Server/ MSSQL.1 /MSSQL/Binn/sqlservr.exe”, 单击"确定". 注意: 路径可能会根据 SQL Server 2005 安装不同而不同, MSSQL.1 是占位符,对应数据库实例ID。
4.对每个需要打开远程访问的SQL Server 2005 实例,重复步骤 1 至 3。
另外,防火墙例外中需 添加 端口:1434,UDP, 这个端口是sql server Browser提供服务的端口,当它负责解释sql server的端口.添加了这个端口到例外后, 不再需要添加 sqlbrowser.exe 这个程序至例外中.
五 此种远程访问设置, 客户端的访问连接字符串中不要出现端口号. 如对于默认实例 "DataSource = 服务主机域名或IP",对于命名实例 "DataSource = 服务主机域名或IP/实例名", 不能使用"DataSource = 服务主机域名或IP/实例名,端口号"
SQL SERVER 2005 远程访问攻略之二: 静态端口策略 从安全性上考虑,这是更为安全的做法, 因为静态端口设置需要开放的端口数更少.
一 前两步设置与上述 一 二 基本相同,不同的是上述二中最后TCP/IP属性IP地址端口设置里在本策略下需要指定一个静态端口,如下图
二 sql server Browser应该给关闭掉,静态端口设置下可以不需要这个服务,关闭了 sql server Browser 服务,防火墙的例外中也就可以去掉上面说的端口:1434,UDP。由于端口固定了,C:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/Binn/sqlservr.exe 这个程序也可以从例外中移走了,这下安全性增加了吧。但别忘了,防火墙的例外中要加上面设定的这个静态端口 例如 1433,TCP。如果服务器有多个命名实例,每个实例指定一个单独的端口,这些端口都需要加到防火墙的例外中。
三 采用静态端口策略,如果关闭了sql server Browser服务,客户端的访问连接字符串中需要指定端口号。如对于默认实例 "DataSource = 服务主机域名或IP,端口号",对于命名实例 "DataSource = 服务主机域名或IP/实例名,端口号"。这里会造成服务器的端口改变需要相应修改客户端的访问字串的情况,当然相对于安全性的提高,这点不便也能忍受。通常的做法是做个服务器端,客户端有访问请求时,根据预设权限实时传送数据库的连接字符串(加密过的)过去,相应的解决了这个不便之处。所以本人推荐你用静态端口远程访问。如果你不能忍受这点,你可以在采用静态端口情况下开启sql server Browser服务,这样客户端的访问也可以不用指定端口号。但防火墙的例外中需要增加这个端口:1434,UDP。究竟怎么做才好,你根据需要权衡一下吧。乐意与你共同探讨:我的QQ515850258