一、项目背景

 最近在学习WPF,写了一个管理系统其中用到了SQL 数据库,需要在外网访问位于公司电脑的数据库,如果你正是这种情况,那么这篇文章适合你,其实上述问题解决,局域网内的数据库访问更是没问题了。相关问题网上我收了很多,发现大多数都一样,基本是数据库设置的方法。通过探索,我发现有些设置不用那么设置也是没影响的,下面将介绍设置方法,有不对之处欢迎指正,共同进步!

二、数据库的设置

数据库的设置主要用到两个数据库自带工具,一是:SQL Server Management Studio;二是:SQL Server Configuration Manager,通过网上了解到数据库远程访问可归纳为需要设置以下几个方面:

  1. 启动SQL Server Management Studio工具,设置数据库登录模式为混合模式,也就是启用sa账户。

  2. 登录数据库在根节点右键属性->连接,设置允许远程连接到服务器。

  3. 同样根节点右键方面->服务器配置,设置RemoteAccessEnabled的值为True。

  4. 启动SQL Server Configuration Manager工具,点击sql sever 服务,需要开启sql sever 和sql sever browser这两个服务。

  5. SQL server网络配置中选择MSSQLSERVER的协议(有些是SQLEXPRESS,取决于安装数据库的版本)进行IP设置和端口的开启,需要注意的是需要将VIA协议设为禁止,其他打开。

  6. 打开本机防火墙设置->高级设置->入站规则->新建规则,设置端口为1433,一直到最后取个合适的名字保存即可,当然也可以直接关闭防火墙,但是不建议这样做,不安全。

更详细的图文设置参加网友的这篇博文:https://blog.csdn/iwuio/article/details/76934198,经过上述设置后,如果两台电脑在同一局域网,比如连接在同一个路由器下面,就可以服务器名称输入安装数据库电脑的IP地址,用Sa账户可以访问了。测试的时候发现貌似1、2、3步可以不设置,重点是用SQL Server Configuration Manager工具进行IP的设置。感到有点疑惑,特别是第2步不勾选允许远程访问也能访问,不知你们的是否也是这样。

三、远程访问设置

到上面为止,局域网的访问一般来说没有问题了,如果要实现在家访问公司数据库的话,还需要进行另外的操作。这里牵涉到公网和内网的概念,不熟悉的可以网上了解下,大概是由于IPV4资源的枯竭,导致现在很多人上网其实不是用的公网IP,公网IP一般来说全球唯一,为了解决ip不够分配的问题,用了一个NAT技术,但是这个技术治标不治本,对于大多数人来说这并没有什么影响,如果我们这里要通过外网访问,就需要知道安装有数据库电脑的公网IP地址,这就需要将我们局域网的ip地址转化为公网IP,这样的话其他互联网上的电脑就能访问了,这里有两个方式实现:

  • 端口映射-将数据库的1433端口暴露于互联网
  • 内网穿透技术-相当于通过第三方将你局域网电脑IP转化为公网IP

我个人理解的是如果做端口映射,还是需要你路由器或者光猫的WAN口是公网IP(可能理解不对),但是现在很多运营商分配的Ip不是公网,需要的话得另外购买,不知道投诉有用没,折腾了好久这个方法还是没成功,怀疑就是分配的IP不是公网导致的,最终用第二种方式解决,这里有个软件工具叫NATAPP,附上官网:https://natapp/   ,经过测试还算可以,用的免费的通道,对于这种测试还是不错的,详细使用可见官网说明。

四、注意事项

  • 能否成功关键是用SQL Server Configuration Manager工具进行IP的设置
  • 带端口的服务器名称填写方法:IP地址,端口号(注意是中间用逗号隔开)

最后分享一个数据库连接测试软件,测试时在config文件中填写服务器地址和账户密码即可。

 

更多推荐

远程访问SQL Server数据库