SQL Server 2008网络协议

  SQL Server 2008支持四种协议,Shared Memory;TCP/IP;Named Pipes和Virtual Interface Adapter(VIA)。×××SQL Server配置管理器之后,会显示一个配置SQL Server服务,SQL Server网络协议和SQL Native Client协议的节点。可以通过展开SQL Server 2008网络配置节点进行服务器协议的配置。

  Shared Memory:Shared Meory协议只能由本地连接使用,因为它是一个用于服务器内部通信的由进程共享内存的空间。在SQL Server上本地运行的应用程序或任务可以利用Shared Memroy协议

  Named Pipes:Named Pipes协议使用进程间通信信信道进行高效的服务器内部通信和局域网通信,但由于通过网络或防火墙连接时Named Pipes需要过多的开销,而且它还要求打开额外的端口445,所以一般来说最好禁用Named Pipes。然而有许多应用程序需要用到Named Pipes协议,因为他们是围绕NetbBIOS或给予LAN的协议设计的。Named Pipes可以轻松访问单个安全域中的远程过程调用,因而对这些应用程序很有帮助。如果您需要支持这些应用程序,而SQL Server并没有暴露给外部通信量,那么启用Named Pipes协议和相应的端点的风险是最小的。

  TCP/IP:TCP/IP是大部分SQL安装时的主要也是首选的协议。

  Virtual Interface Adapter:该协议与支持的硬件和网络配置一起使用。虚拟接口体系由Compaq,也就是现在的惠普,Intel和Microsoft联合开发,被设计成一个可减少创痛网络协议的开两开销的高性能协议,该协议在用户模式上下文而非内核模式上下文下运行。VIA网络客户机与系统区域网络连接。

SQL Native Client配置

  SQL Native Client支持同样的四种服务器端协议,除了配置客户端协议之外,还可以设置协议的绑定顺序。可以使用SQL Native Client配置节点创建别名。通过制定一个别名,不用改变服务器名称就可以把客户端的请求定向到该服务器。别名也可以用来取代复杂的命名实例名称。

SQL Server端点

  SQL Server 2008将连接对象作为端点,允许侦听不同的端口,为不同的服务使用不同的传输协议。SQL Server提供了四种不同类型的端点:TSQL(默认和TCP);数据库镜像;SOAP;Service Broker。

  默认TSQL端点:在安装过程中会创建5个TSQL端点:TSQL默认TCP,TSQL默认VIA,TSQL Named Pipes,TSQL本地计算机,Dedicated Administrator Connection(DAC,专用管理员连接)。TSQL端点为四个支持的协议提供链接服务,第五个用来支持DAC的端点侦听一个专用TCP端口,该端口在启动时被配置为支持一个管理连接。配置的端口记录在当前SQL Server日志文件中。

  TSQL默认TCP端点创建于SQL Server实例的安装过程中,并被自动配置为替默认实例侦听端口1433.每次启动命名实例时,命名实例TSQL默认TCP端点都会被随机分配一个TCP端口。不过,可以通过SQL Server配置管理器静态配置命名实例的端口号。配置一个静态端口能够简化客户端访问,减少对于美剧命名实例的SQL Server浏览器服务的依赖。

  VIA协议用于支持VIA硬件设备,VIA协议取决于供应商的实现方案,所以如果不选择特定的硬件供应商,讨论VIA端点还是比较困难的

  TSQL Named Pipes端点用于支持Named Pipes协议连接。

  TSQL本地计算机端点允许使用Shared Memory协议进行连接。

  专用管理员连接DAC:在其他连接不可用或无响应时,可以使用DAC端点来支持有限的管理操作。它使用自己的内存区,专用TCP端口和CPU调度程序。默认情况下,DAC端点仅仅侦听本地连接,通过执行下列代码,可以启用远程DAC连接:


USE master  GO  sp_configure 'remote admin connections',1;  GO  RECONFIGURE;  GO

  TSQL TCP端点:除了自动创建的默认TCP端口之外,还可以创建额外的TSQL TCP端点。这些TSQL TCP端点可以支持特殊的安全或应用需求。然而,需要记住,当创建一个新的TSQL TCP断电时,SQL Server会自动撤销对默认端点的所有连接权限。如果默认端点仍然需要连接支持。那么要想使用默认端点,必须要有显示的GRANT CONNECT权限。SQL Server总返回一个消息,提示创建一个新的TCP端点的影响,如:


  数据库镜像:为了专用参与数据库镜像配置的服务器,SQL Server 2008提供了镜像端点。所有镜像通信使用这一数据库镜像端点,但使用镜像配置的数据库客户端连接使用的是标准的TDS端点。专用镜像端点的配置确保数据库镜像通信是在一个单独的进程中处理的,独立于所有其他数据库活动。如果想手动创建和配置镜像端点,并在端点上实施加密通信,可以使用如下代码:


  如果服务器上的每个MSSQLSERVER服务使用不同的帐户,那么需要向映射到每个服务器的服务帐户的登录名授予连接其他参与镜像配置的服务器的CONNECT权限。可以运行下面的脚本,确保在3个参与镜像关系的服务器之间的事实加密的和需要身份验证的通信。AughtEight是主体服务器,Dagobah是镜像服务器,Tatooine是见证服务器。在这个例子中,所有的三个实例都运行在相同的物理服务器上,所以每个端点会被配置不同的端口号。如果是单独的物理服务器,那么端口号可配置为一样的。


  SOAP端点:未来版本中将被删除,暂不解释、

  Service Broker端点:Service Broker是SQL Server 2008中一个非常强大的功能,它可以是数据库应用程序和面向服务的体系结构中的其他数据库应用程序进行异步通信。只有当broker服务的两个实例位于单独的SQL Server实例上时才需要Service Broker端点。创建Service Broker端点的方式和创建爱你SOAP端点类型。同样使用基本的CREATE ENDPOINT命令,但是这里使用的是FOR SERVICE_BROKER自居,而不是将端点定义为SOAP端点的FOR SOAP自居,创建Service Broker的语法如下:


保护端点

  对于所有的端点来说,保护他们非常重要,这样只有经过授权的连接才能枚举和调用端点提供的Web方法和其他服务。对于端点来说,关键权限是CONNECT权限。只有已被显示授予CONNECT权限的登录名才能够使用端点的功能。此外,这些登录名还需要有通过端点访问底层对象的权限。

张孝祥java视频教程