![配置 SQL Server 以允许远程连接(服务器端)](https://1200zi.500zi.com/uploadfile/img/15/973/2c8dde6ebc1f421e0525c36482df1c66.jpg)
默认情况下,SQLServerExpressEdition和SQLServerDeveloperEdition不允许远程连接。若要配置SQLServer以允许远程连接,请完成以下步骤:
·一、为SQL启用远程连接
·二、从远程计算机连接到的SQLServer实例上启用远程连接。
·三、配置防火墙以允许与SQLServer网络通讯。
·四、远程连接端口设置
·五、如果使用多实例需打开SQLServerBrowser服务并在Windows防火墙中为SQLServerBrowser服务创建例外。
一、为SQL启用远程连接
1.在对象资源管理器中à右键服务器—>属性—>“安全性”选择页—>服务器身份验证—>选择“SQLserver和windows身份验证模式”—>“连接”选择页—>选择“允许远程连接到此服务器”
2.启用sa帐户或创建需要的登录帐户
启用sa帐户:
在对象资源管理器中,依次展开“安全”、“登录名”,右键单击“sa”,再单击“属性”。
在“常规”页上,您可能需要为sa登录名创建密码并确认该密码。
在“状态”页的“登录”部分中,单击“启用”,然后单击“确定”。
创建登录帐户:
展开服务器下的“安全”,右键单击““登录名”—>“新建登录名”—>“常规”选择页—>选择“SQLServer身份验证”—>“服务器角色”选择页—>选择“sysadmin”服务器角色(根据需要或选其他服务器角色)—>“状态”选择页—>选择“授予”和“启用”
二、在远程计算机连接到的SQLServer实例上启用远程连接。
1.单击“开始”,依次指向“程序”、“MicrosoftSQLServer”和“配置工具”,然后单击“SQLServer外围应用配置器”。
2.在“SQLServer外围应用配置器”页上,单击“服务和连接的外围应用配置器”。
3.在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“远程连接”和“本地连接和远程连接”,单击适用于您的环境的相应协议(如选“同时使用TCP/IP和namedpipes”),然后单击“应用”。
三、配置防火墙以允许与SQLServer网络通讯。
在Windows防火墙中创建例外
这些步骤适用于WindowsXPServicePack2(SP2)和WindowsServer中包含的Windows防火墙版本。如果您使用的是不同的防火墙系统,请参阅相应的防火墙文档以了解更多信息。
如果在运行SQLServer的计算机上运行防火墙,将会阻止访问SQLServer的外部连接,除非SQLServer和SQLServerBrowser服务可以通过防火墙进行通信。必须为每个要接受远程连接的SQLServer实例创建一个例外
在安装SQLServer的程序文件时,SQLServer会使用一个实例ID作为路径的一部分。若要为每个SQLServer实例创建一个例外,必须确定正确的实例ID。若要获取实例ID,请执行以下步骤:
1.单击“开始”,依次指向“程序”、“MicrosoftSQLServer”和“配置工具”,然后单击“SQLServer配置管理器”。
2.在“SQLServer配置管理器”中,单击右窗格中的“SQLServerBrowser服务”,右键单击主窗口中的实例名称,然后单击“属性”。
3.在“SQLServerBrowser属性”页上,单击“高级”选项卡,定位到属性列表中的实例ID,然后单击“确定”。
win7中:控制面板—>系统和安全—>windows防火墙—>允许程序或功能通过windows防火墙—>允许运行另一程序—>浏览—>找到C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Binn\sqlservr.exe可执行程序,单击“打开”,然后单击“确定”。
(Windowsxp中:打开“控制面板”,打开“Windows防火墙”。在Windows防火墙中为SQLServer创建例外执行以下步骤:在Windows防火墙中,单击“例外”选项卡,然后单击“添加程序”。
1.在“添加程序”窗口中,单击“浏览”。
2.单击C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Binn\sqlservr.exe可执行程序,单击“打开”,然后单击“确定”。)
注意:上述路径可能会根据SQLServer的安装位置而不同。MSSQL.1这个占位符代表的是您在前面过程的步骤3中获得的实例ID。
对于每个需要为其创建例外的SQLServer实例,重复以上步骤。
四、远程连接端口设置
1、打开SQLserver配置管理器àSQLServer网络配置->MSSQLSERVER的协议->TCP/IP,在弹出对话框中选择IP地址->IPALL->TCP端口,设置为1433。(如果默认的1433端口老是连接不上,你就设置为你确认已经打开的端口试试,如21端口等)
2、IP1“已启用”选择“是”,只能有一个选择是。
3、配置管理器中的设置:MSSQLSERVER的协议和客户端协议设置:
Sharememory、namedpipes、和TCP/IP设为开启;VIA设为禁用。
重新启动MSSQLSERVER服务:展开“数据库引擎”,依次单击“服务”和“停止”,等待MSSQLSERVER服务停止,然后单击“启动”以重新启动MSSQLSERVER服务。
(1433更深入的讨论如下:
连接不上有多种原因,但是就我个人经历来看,主要是因为1433端口问题。例如您有两台计算机,其中计算机A作为SQL Server的服务器,用计算机B去连接。B之所以连接不上A我觉得很可能是A的1433端口监听没有打开,当然网上有很多讲解如何打开1433端口的,我这里稍微提一下:
1.SQL Server配置管理--SQLEXPRESS的协议--TCP/IP启用--属性--IP地址--打开将IP1、IP2的TCP端口设为“1433”并且启用
2.SQL Server配置管理--客户端协议--TCP/IP--启用
3.SQL Server配置管理--SQL Server 外围应用配置--远程连接--(不要选择仅适用named pipes,其他两个都可以)
4.重启SQL Server (配置管理器或者服务中都可以)
上面是启用1433端口监听,但是我觉得只要明白了原理没有必要看着上面的步骤一步一步的做。
但是1433端口是不是开启了监听呢?
在命令行中输入netstat -aon以后就可以看看有没有1433的监听,不知道是不是我自己哪里出错的问题,我按照上面的步骤去做,成功过,也失败过。如果没有1433,我觉得你不用试验你是不是能够用默认端口连接上A服务器,肯定不可以的。那怎么办呢?可以想办法再试着开启,但是我失败后没有那么做,而是用其他端口,大不了在连接的时候在IP后面加上端口号。
1.SQL Server配置管理--SQLEXPRESS的协议--TCP/IP启用--属性--IP地址--IPALL--TCP端口设为任何可用端口(例如26)
2.重启SQL Server
好了,看看监听,有26,那就ok了。
假设A的IP是192.168.1.2,其SQL Server实例是SQLEXPRESS,用户名sa,密码:123456。那么我们在B中,服务器名称:192.168.1.2,26/sqlexpress 用户名:sa 密码:123456 就可以了。
这里再补充一点,因为上面讲的主要是没有端口监听的问题,可能还有别的问题导致您连接失败。不管是什么原因,如果您第一次就没有连接成功,建议您在命令行中输入:telnet 192.168.1.2 1433(根据情况修改IP),其他什么都先别管,就输入这样的字符串看看是否能通。如果失败,可以ping 192.168.1.2 我想这样根本不同的话就自己找找原因吧,要是通的话就很可能是1433端口没有监听的问题,但是建议先检查防火墙是否关闭在检查端口,而且要强调的是你可能有多个防火墙(包括路由器的)都要关闭。按照上面说的做完了,我觉得一般应该就不会有问题了。但还可能有些小的细节我没有提到,那些问题网上有很多我就不再提了。
)
五、如果使用多实例需打开SQLServerBrowser服务并在Windows防火墙中为SQLServerBrowser服务创建例外。
如果您是通过使用实例名称来运行SQLServer并且在连接字符串中没有使用特定的TCP/IP端口号,则必须启用SQLServerBrowser服务以允许远程连接。例如,使用<</FONT>计算机名>\SQLEXPRESS的默认实例名称安装的SQLServerExpress。不管您正在运行多少个SQLServer实例,只需要启用一次SQLServerBrowser服务。若要启用SQLServerBrowser服务,请执行以下步骤。
重要说明:这些步骤可能会增加您的安全风险。这些步骤还可能导致您的计算机或网络更易于受到恶意用户或恶意软件(如病毒)的攻击。我们之所以推荐本文介绍的这一过程,是为了使程序能够按照设计意图运行,或者为了实现特定的程序功能。我们建议在进行这些更改之前,充分考虑在您的特定环境中实施这一过程可能带来的风险。如果您选择实施此过程,请采用任何适当的附加步骤以保护您的系统。我们建议只有确实需要这一过程时才使用它。
1.单击“开始”,依次指向“程序”、“MicrosoftSQLServer”和“配置工具”,然后单击“SQLServer外围应用配置器”。
2.在“SQLServer外围应用配置器”页上,单击“服务和连接的外围应用配置器”。
3.在“服务和连接的外围应用配置器”页上,单击“SQLServerBrowser”,在“启动类型”中单击“自动”选项,然后单击“应用”。
注意:在单击“自动”选项后,每次启动MicrosoftWindows时将自动启动SQLServerBrowser服务。
4.单击“启动”,然后单击“确定”。
注意:在计算机上运行SQLServerBrowser服务时,计算机显示其上运行的每个SQLServer实例的实例名称和连接信息。如果不启用SQLServerBrowser服务并且通过分配的TCP端口直接连接到SQLServer实例,则可以降低此风险。本文不讨论如何通过TCP端口直接到SQLServer实例。有关SQLServerBrowser服务和连接到SQLServer实例的更多信息,请参见《SQLServer联机丛书》中的以下主题:
·SQLServerBrowser服务
·连接到SQLServer数据库引擎
·客户端网络配置
若要在Windows防火墙中为SQLServerBrowser服务创建例外,请执行以下步骤:
1.在Windows防火墙中,单击“例外”选项卡,然后单击“添加程序”。
2.在“添加程序”窗口中,单击“浏览”。
3.单击C:\ProgramFiles\MicrosoftSQLServer\90\Shared\sqlbrowser.exe可执行程序,单击“打开”,然后单击“确定”。
注意:上述路径可能会根据SQLServer的安装位置而不同。
客户端连接服务器时:
在“服务器名”称处输入服务器的IP