让防火墙与SQL Server数据库共存

作者&投稿:进东 (若有异议请与网页底部的电邮联系)
~

  安全与性能是数据库管理员的两块心头肉 而通过防火墙来保护数据库的安全无疑是一种不错的选择 但是有时会防火墙与SQL Server数据库也会闹矛盾 防火墙如果配置不当的话 不但不能够起到其应有的保护作用 而且还会阻止客户端的合法连接 为此如果想让防火墙与SQL Server数据库共存的话 还不是一件简单的事情 对于这个问题 笔者有如下几条建议 或许这些建议能够给各位数据库管理员在数据库与防火墙部署的时候提供一定的帮助

   建议一 先部署数据库 再部署防火墙

  导致客户端无法连接上数据库服务器的原因有很多 而防火墙的限制无疑也是其中的一种 为了降低故障排除的复杂程度 笔者建议数据库管理员在部署的时候 最好先把防火墙关掉 即先部署数据库 然后再部署防火墙 或者说 在防火墙存在的情况下 如果发现客户端无法正常连接到数据库 最好先把防火墙关掉 然后再看看能够正常连接 这主要可以帮助数据库管理员简单的来判断 这个连接故障是不是因为防火墙的不恰当配置所造成的 在排除防火墙配置错误的时候 这个方法非常的有用 如果确实是因为防火墙的原因 而数据库管理员还一直在数据库管理系统或者客户端那边寻找原因 那就是白花力气 同理 如果确实是数据库服务器的问题而不是防火墙的配置所造成的连接故障 但是数据库管理员却是在寻找防火墙的麻烦 那也是自讨苦吃 所以笔者建议大家 在部署数据库的时候(不仅限于SQL Server数据库系统) 最好先把已经存在的防火墙关闭掉 等到客户端能够正常连接到服务器后 再尝试启动防火墙

   建议二 根据数据库开启的服务来开启防火墙的端口

  从安全上来说 数据库服务器的端口开启的越少越好 但是数据库的有些服务必须要开启某些特定的端口 否则的话某些服务就会受到影响 为此从安全与性能上综合考虑的话 就要求数据库管理员根据数据库要采用的服务来开启防火墙的端口

  如在SQL Server数据库中启用了复制功能的话 就需要在防火墙上开启 端口(这是数据库默认的给复制服务启用的端口) 当然数据库管理员也可以跟网络管理员商量最终所采用的端口 另外如果采用复制快照 则进行WEB同步或者FTP访问则要求在防后墙上打开其他需要的端口 如快照复制通过FTP实现的话 为了将数据文件和架构从一个位置传输到网络上的另外一个位置 则需要在防火墙上开启 端口 以允许FTP协议的数据通过这个端口 而通常情况下 为了安全起见是把这个端口关闭的 而如果在复制功能中如果需要用到HTTP或者文件和打印共享服务时 还需要打开 端口 等等 否则的话由于防火墙的阻挡这些服务将无法正常使用

  另外SQL Server数据库中有些服务的话是没有指定端口的 数据库管理员可以根据实际需要 来确定所需要采用的端口 如数据库的镜像服务 其没有指定所需要采用的端口 而是要求数据库管理员来选择端口 此时数据库管理员就可以根据服务器端口的实际采用情况来设置到底开启哪个端口为好 在配置的时候 如果数据库服务器中还部署有其他英勇的话 就需要避免与其他服务端口的冲突

  SQL Server数据库的相关服务有很多 如还有报表服务 Browser服务(用于侦听指向命名实例的传入连接 并为客户端提供与此命名实例对应的TCP端口号)等等 若数据库管理员以为客户端的连接故障是由于防火墙所引起的 那么数据库管理员就需要查看微软的官方文档 看看对应服务所需要开启的端口在防火墙中是否已经打开

  建议三 管理好动态端口

  以上这些服务的端口基本上是静态的 只需要在防火墙上把这些端口打开即可 没有多大的难度 而其管理的难点是有些服务采用的是动态的端口 这会给数据库服务器上防火墙的配置带来一定的麻烦 因为端口不固定 所以有时候防火墙就无法适从了

  如通常情况下 数据库中有一个叫做命名实例的服务 这个服务采用的就是动态端口 也就是说 每次启动数据库服务器的时候 数据库引擎都将确定一个服务器没有使用的端口作为自己的端口 即每次采用的端口都不一致 默认情况下 SQL Server数据库引擎采用的TCP端口号为 但是如果在这台数据库服务器上还部署有其他的数据库引擎 如Oracle数据库系统或者MySQL数据库系统 则可能这个 端口已经被他们所采用了 则此时SQL Server数据库系统引擎将无法使用这个端口 此时数据库引擎就会另外选择一个可用的端口 可见由于数据库引擎或者数据库服务器在每次启动的时候所采用的端口都可能不同 为此很难在防火墙上启用对正确端口的访问(防火墙不会跟数据库引擎互动) 也就是说 防火墙不会去侦测数据库引擎到底启用哪些端口 所以如果在数据库服务器上配置了防火墙 则在数据库部署的时候 如果某些服务采用了动态端口 则数据库管理员需要把他们配置为固定端口或者静态端口 以保证数据库引擎每次都采用同一的端口号

  在SQL Server数据库中把动态端口设置为固定端口 其难度不是很大 只是如果启用的服务比较多的话 工作量可不算小 下面笔者就谈谈如何通过企业管理器来设置固定端口

  第一步 打开TCP/IP属性对话框 在数据库配置管理中 打开网络配置选项 然后单击要配置的服务器实例 此时在右面窗口中会显示相关的内容 管理员需要找到TCP/IP这项内容 并双击它 以打开TCP/IP属性对话框

  第二步 设置可用的端口号 在TCP/IP属性对话框中 找到TCP端口页签 在这个页签中就是当前SQL Server数据库所采用的端口号 数据库管理员需要在这个地方把需要采用的端口信息加入到这个页签中 那么操作系统在分配端口的时候 会把这个端口信息预留给数据库系统 注意数据库管理员手工数据的端口最好能够采取后面一些的端口号 如此的话发生端口冲突的几率就会少许多

  第三步 关联相关的服务 设置好端口后 此时还没有关联到具体的服务 数据库管理员还必须把新设置的端口与数据库的服务关联起来 此时就需要单击SQL Server服务 找到相关的服务后选择重新启动 当数据库引擎重新启动时 就会将新的端口给这个服务所使用 以后每次数据库引擎重新启动之后 这个服务都将采用这个端口 为此在防护墙上只需要把这个端口打开即可

  所以说对于动态端口来说 防火墙配置有一定的难度 此时最理想的方式就是把数据库服务所采用的动态端口改为静态端口或者固定端口 上面笔者介绍得就是把数据库服务的动态端口改为静态端口的基本步骤 各位数据库管理员可以尝试利用这种方法试试看

  建议四 出现连接故障时的排错步骤

  如果在数据库服务器上部署了防火墙 此时如果客户端发生无法连接到服务器的现象 那么此时最佳的排错步骤是什么呢?如何才能够在最短时间内找到问题的原因呢?为此 笔者有如下这个建议

  首先 数据库管理员必须先保证服务器与客户端之间网络的连通性 数据库管理员可以利用ping命令或者求助网络管理员 来判断服务器与客户端之间的连接是否有问题 有则改之 没有的话则进行下面一个步骤

  第二 把防火墙先禁用掉 如果服务器与客户端之间的网络连通没有问题 那么此时数据库管理员就需要判断是防火墙的问题还是数据库服务器本身的问题 要判断这个故障的起点 最简单的方法就是把防火墙禁用掉 如果防火墙禁用后 客户端访问服务器正常了 那么就说明是防火墙在作怪;而过此时故障还依旧 那么就是数据库本身的问题了 不过此时也先不要急着把防火墙启用起来 等到故障修复后再重新启用防火墙为好 这么处理就是让数据库环境尽量的简单 以加速排错的过程

lishixinzhi/Article/program/SQLServer/201311/22481




郯城县15676999620: 如何配置Windows 防火墙,允许SQL Server的远程连接 -
剑侨氨麻: 默认防火墙设置规划防火墙配置的第一步是确定操作系统的防火墙的当前状态. 如果操作系统是从早期版本升级而来,则可能已保留以前的防火墙设置. 此外,防火墙设置可能已由其他管理员或域中的组策略更改.注意 注意打开防火墙将影...

郯城县15676999620: 如何设置防火墙能够正常使用sqlserver
剑侨氨麻: http://msdn2.microsoft.com/zh-cn/library/ms175043.aspx 这个微软MSDN的文章我相信你也看了,你确定在关闭防火墙的情况下SQL可以正常工作么?那么你可以查看防火墙的log(瑞星的防火墙不会没有详细日志功能吧?)看看到底是阻止了哪些SQL通信,然后对症下药,我只知道这么多了,百度这里好像不是很适合讨论这么“专门”的技术东西,去一些“建站论坛”什么的互动论坛比较有帮助(只是建议:)

郯城县15676999620: 如何连接远程sqlserver数据库 -
剑侨氨麻: 首先检查SQL数据库服务器中是否允许远程链接.其具体操作如下:(1)右击SQL Server 2008选项,选择SQL Server 2008 Management Studio:(2)打开“服务器属性(Server Properties)” (右键连接名称-属性) 选择“允许用户对该服务器...

郯城县15676999620: 如何将防火墙配置为允许 SQL Server 访问 -
剑侨氨麻: 防火墙设置,允许 对 TCP 1433 端口的 访问 就可以了

郯城县15676999620: 如何配置sqlserver允许远程连接 -
剑侨氨麻: Windows Vista 和 Windows Server 2008 以及更高版本以下过程通过使用具有高级安全 Microsoft 管理控制台 (MMC) 管理单元的 Windows 防火墙来配置该 Windows 防火墙.从 Windows Vista 和 Windows Server 2003 开始提供此...

郯城县15676999620: 如何设置Windows防火墙允许用户通过TCP/IP协议访问SQL Server服务 -
剑侨氨麻: 在运行SQL Server的服务器上,我们首先要找到当前SQL Server监听的TCP端口,并把该端口加到Windows防火墙允许访问的端口列表里面,因此用户可以通过该 端口访问SQL Server服务.其次,如果用户没有在连接字符串中指定TCP端口并...

郯城县15676999620: 如何远程访问SQLServer数据库 -
剑侨氨麻: SQL Server默认是不允许远程连接的,如果想要在本地用SSMS连接远程服务器上的SQLServer2012数据库,需要确认以下环节: 1)如果是工作组环境,则需要使用SQL Server身份验证方式 2)如果是Windows域环境,则可使用Windows身份...

郯城县15676999620: win10怎么让sql server通过防火墙 -
剑侨氨麻: 解除防火墙:开始--控制面板-WIN防火墙-例外里面把DNF加进去就行.有时不一定是防火墙的问题而不能玩的.希望可以帮助到您,楼主!

郯城县15676999620: 怎么连接sqlserver数据库? -
剑侨氨麻: 1. 打开sql2008,使用windows身份登录.2. 登录后,右键选择“属性”.左侧选择“安全性”,选中右侧的“SQL Server 和 Windows 身份验证模式”以启用混合登录模式.3. 选择“连接”,勾选“允许远程连接此服务器”,然后点“确定”...

郯城县15676999620: 如何配置SQLServer2005允许远程连接 -
剑侨氨麻: 一、首先是要检查SQLServer数据库服务器中是否允许远程链接.其具体操作为:1. 打开数据库,用本地帐户登录,右击第一个选项,选择属性2. 在打开的属性窗口,在其右边点击“连接”,然后再左侧勾上“允许远程连接到此服务器” 二、为...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网