一、总结
1、SQL Server访问协议包括Shared Memory、Named Pipes、TCP/IP、VIA四种,多数应用系统都是通过TCP/IP协议访问数据库的,安装数据库后需要启用TCP/IP协议;
2、TCP/IP协议提供动态端口和静态端口访问设置,SQL Server默认的静态端口为1433;
3、默认情况下,SQLServer使用Shared Memory协议连接到SQLServer本地的实例,使用TCP/IP连接到其他计算机(远程)上的SQLServer实例;
4、如果只启用Shared Memory协议的话,只能在本地通过实例名称连接数据库,通过IP连接不上(不管是本地还是远程客户端)。
5、只要VIA协议是启用的状态,数据库实例就起不来了,所以这个协议一定要禁用。6、VIA协议在SQL2012(包括2012)以后微软已经取消了这种协议。
二、4种网络协议的介绍
1、ShareMemory
是一种简单的协议,基本没有什么可更改的设置。由于使用该协议仅可以连接到自身服务器上安装的SQLServer实例,所以它对于大多数数据库活动而言是没有用的,所以可以使用该协议进行故障排除,排查其他协议是否有误。
2、TCP/IP
是Inernet上广泛使用的通用协议。启用该协议,就可以在远程客户端上访问该计算机上安装的SQLServer实例。
3、NamePipes
该协议是为局域网开发的协议。该协议在使用SQLServer实例的过程中一般是禁用的,工作这么多年,没启用过该协议,不知道有什么应用场景。
4、VIA(Virtual Interface Architecture)
该协议是一个虚拟接口架构,是一个比较坑人的协议,如果启用该协议后,数据库实例基本上就起不来了,之前工作中遇到过这种情况,该协议一定要禁用,该协议在SQL2012(包括2012)以后,微软就取消这个协议了,估计也是考虑到该协议没有什么应用场景吧,还有可能造成不必要的麻烦。
本文来源https://www.modb.pro/db/75147