SQL Server中网络协议
若要连接到 SQL Server 数据库引擎,必须启用网络协议。MicrosoftSQL Server 可同时通过多种协议处理请求。客户端用单个协议连接到 SQL Server。如果客户端程序不知道 SQL Server 正在侦听哪个协议,可以配置客户端按顺序尝试多个协议。使用 SQL Server 配置管理器启用、禁用以及配置网络协议。
Shared Memory
Shared Memory 是可供使用的最简单协议,没有可配置的设置。由于使用 Shared Memory 协议的客户端仅可以连接到同一台计算机上运行的 SQL Server 实例,因此它对于大多数数据库活动而言是没用的。如果怀疑其他协议配置有误,请使用 Shared Memory 协议进行故障排除。 注意
使用 MDAC 2.8 或更早版本的客户端不能使用 Shared Memory 协议。如果这些客户端尝试使用,将自动切换为 Named Pipes 协议。
TCP/IP
TCP/IP 是 Internet 上广泛使用的通用协议。它与互连网络中硬件结构和操作系统各异的计算机进行通信。TCP/IP 包括路由网络流量的标准,并能够提供高级安全功能。它是目前在商业中最常用的协议。将计算机配置为使用 TCP/IP 可能会很复杂,但大多数联网的计算机已经配置正确。若要配置未在 SQL Server 配置管理器中出现的 TCP/IP 设置,请参阅 Microsoft Windows 文档。
Named Pipes
Named Pipes 是为局域网而开发的协议。内存的一部分被某个进程用来向另一个进程传递信息,因此一个进程的输出就是另一个进程的输入。第二个进程可以是本地的(与第一个进程位于同一台计算机上),也可以是远程的(位于联网的计算机上)。
VIA
虚拟接口适配器 (VIA) 协议和 VIA 硬件一同使用。有关如何使用 VIA 的信息,请与硬件供应商联系。 重要提示
不推荐使用 VIA 协议。后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。
Named Pipes 与 TCP/IP 套接字
在快速局域网 (LAN) 环境中,传输控制协议或 Internet 协议 (TCP/IP) 套接字客户端和 Named Pipes 客户端在性能方面不相上下。但是,网络速度越慢[如在广域网 (WAN) 或拨号网络上],TCP/IP 套接字客户端与 Named Pipes 客户端的性能差异越明显。这是因为进程间通信 (IPC) 的机制在对等项间的通信方式不同。
对于 Named Pipes,通常网络通信交互性更强。一个对等方直到另一个对等方使用读取命令请求数据时才发送数据。在开始读取数据前,网络读取一般包括一系列窥视 Named Pipes 的信息。这在慢速网络中可能开销非常大,并会导致过多的网络流量,其他的网络客户端反过来也会受到影响。
阐明所讨论的是本地管道还是网络管道也很重要。如果服务器应用程序在运行 SQL Server 实例的计算机的本地运行,则可以选择本地 Named Pipes 协议。本地 Named Pipes 以内核模式运行且速度非常快。
对于 TCP/IP 套接字,数据传输的效率更高,开销也更少。数据传输还可以利用 TCP/IP 套接字性能增强机制的优点,例如窗口化、延迟确认等。这在慢速网络中可能非常有益。对于应用程序的不同类型,这类性能差异可能非常大。
TCP/IP 套接字还支持积压队列。试图连接到 SQL Server 时,与可能导致管道忙错误的 Named Pipes 相比,该队列可以带来有限的平稳效果。
通常,TCP/IP 在慢速 LAN、WAN 或拨号网络中效果较好。而当网络速度不成问题时,Named Pipes 则是更好的选择,因为其功能更强、更易于使用并具有更多的配置选项。
启用协议
该协议必须在客户端和服务器上都启用才能正常工作。服务器可以同时监听所有已启用的协议的请求。客户端计算机可以选取一个协议,或按照 SQL Server 配置管理器中列出的顺序尝试这些协议。 注意
MicrosoftSQL Server 不支持 Banyan VINES 顺序包协议 (SPP)、多协议、AppleTalk 或 NWLink IPX/SPX 网络协议。以前使用这些协议连接的客户端必须选择其他协议才能连接到 SQL Server。
有关如何配置协议和连接到数据库引擎的简短教程,请参阅教程:数据库引擎入门。
============================================================================
1. 什么是命名管道?
与TCP/IP(传输控制协议或internet协议)一样,命名管道是一种通讯协议。它一般用于局域网中,因为它要求客户端必须具有访问服务器资源的权限。
要解释这个问题,我还是摘录微软官方的资料比较好(见上面“SQL Server中网络协议”)
2. 为什么用命名管道?
使用命名管道的原因一般有两个方面
提高速度
假设同样在局域网中,那么使用命名管道协议会比TCP/IP协议快一些。
增加安全性
因为命名管道是只能用于局域网的,那么如果服务器关闭了TCP/IP协议而仅启用命名管道,就可以避免一些安全隐患
3. 如何使用命名管道?
要使用命名管道连接到SQL Server,客户端代码中的连接字符串大致的语法是这样的
"server=.;database=northwind;uid=sa;pwd=pass@word;Network Library=dbnmpntw"
如果服务器是命名实例,则
"server=./instanceName;database=northwind;uid=sa;pwd=pass@word;Network Library=dbnmpntw"
【注意】必须在服务器启用named pipe协议,并且启动Broswer服务
为了避免在连接字符串中这么麻烦,也为了避免泄露我们连接数据的一些机密信息。SQL Server Native Client还支持定义别名
如果创建好了别名,则可以在连接字符串中直接这样写
"server=Myserver;database=master;integrated security=true;"
看起来和以前我们定义ODBC数据源很类似,不是吗?
那么,如果这一串连接字符串被泄露,即便是别有用心的人,也不可能猜到我们的服务器到底是什么名字,而且我们使用了什么协议连接的。
============================================================================
选择网络协议:
http://msdn.microsoft.com/zh-cn/library/ms187892.aspx (微软官方)
SQL Server Native Client 编程:
http://msdn.microsoft.com/zh-cn/library/ms130892.aspx (微软官方)
SQL Server中的命名管道(named pipe)及其使用:
http://www.cnblogs.com/chenxizhang/archive/2009/04/23/1441913.html (cnblogs)
分享到:
相关推荐
打开Sql Server Configuration Manager,里面显示了SQL Server的网络配置,这些到底表示什么含义呢? 图一:MSSQLSERVER的协议 这些配置选项,其实是为了保证客户端和数据库服务器能够正确的连接,以便...
但却需要在本地安装SQL SERVERSERVER ,使用起来很不方便,于是在网上查了看有没有独立的SQL server 客户端网络实用工具,但在网上都是说将dbnetlib.dll,dbnmpntw.dll,ntwdblib.DLL拷到%system%文件夹,并在程序中调用,...
将一个SQL Server实例配置为不侦听网络协议后,同一计算机上的所有应用程序都将使用共享的内存网络库与之进行通信。关闭网络协议支持并不意味着网络协议具有固有的不安全性。任何时候某一程序访问一项外部资源时,该...
在SQL2000上,启用多协议网络库(用于与以前的版本兼容) B. 在SQL2000上,选择“强制协议加密”复选框 C. 在SQL7上,选择“强制协议加密”复选框 D. 在SQL2000上,安装安全套接字层(SSL)加密协议 E. 在SQL2000和SQL7...
3.利用SQL Server配置管理器配置进行SQL Server 2005网络配置,启用默认实例和命名实例的TCP/IP协议。 4.利用SQL Server外围配置器配置数据库引擎的服务及远程连接,设置为“本地连接和远程连接”,选择“同时使用...
代开SQL Server配置管理器之后,会显示一个配置SQL Server服务,SQL Server网络协议和SQL Native Client协议的节点。可以通过展开SQL Server 2008网络配置节点进行服务器协议的配置。 Shared Memory:Shared Meory...
本书是Inside Microsoft SQL Server 2000的作者Kalen Delaney的又一经典著作,是Inside Microsoft SQL Server 2005系列四本著作中的一本。本书对SQL Server 2005存储引擎方面的知识进行了全面而详细的阐述,包括...
3.利用SQL Server配置管理器配置进行SQL Server 2005网络配置,启用默认实例和命名实例的TCP/IP协议。 4.利用SQL Server外围配置器配置数据库引擎的服务及远程连接,设置为“本地连接和远程连接”,选择“同时使用...
Microsoft SQL Server 2005 Express Edition SQL Server 文档小组无法回答技术支持问题,但是欢迎您对本自述文档提出建议和意见。...在“开始”菜单中,选择“所有程序”,依次指向 Microsoft SQL Server 2005 ...
3.利用SQL Server配置管理器配置进行SQL Server 2005网络配置,启用默认实例和命名实例的TCP/IP协议。 4.利用SQL Server外围配置器配置数据库引擎的服务及远程连接,设置为“本地连接和远程连接”,选择“同时使用...
为SQLSERVER的默认连接协议,你可以在CLIENT NETWORK UTILITY中看到TCP/IP和NAME PIPE 的顺序。 你也可以在: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib] "ProtocolOrder"=...
13.1.2 Net-Library与网络协议 384 13.1.3 Net-Library加密 387 13.2 用户管理 388 13.2.1 身份验证模式 388 13.2.2 登录、用户、角色和组 390 13.2.3 管理用户 395 13.3 数据文件安全 403 ...
3.利用SQL Server配置管理器配置进行SQL Server 2005网络配置,启用默认实例和命名实例的TCP/IP协议。 4.利用SQL Server外围配置器配置数据库引擎的服务及远程连接,设置为“本地连接和远程连接”,选择“同时使用...
《SQL Server 2008管理员必备指南》按照由浅入深的逻辑共分为4部分,即管理基础、系统管理、数据管理以及优化与维护。这种分类方法不仅从理论上环环相扣,全面介绍数据库管理人员需要掌握的相关理论知识和工作技能,...
如果你的sql server 2000远程连接时,无法打开1433端口,请按照以下顺序进行检查和修正: 1.如果你是win2003,那么一定要安装...也可能服务器端没启用 TCP/IP 协议,或者服务器端没有在 SQL Server 默认的端口1433上监听.
在SQL SERVER中使用分布式事务全攻略(图解) [原创文章] 作者:cyw 操作系统:Win2003 Enterprise Edition。 版本:5.2.3790 Service Pack 2 内部版本号 3790。 数据库:SQL Server 2000 企业版 + SP4 + SP4后的...
《SQL Server 2008管理员必备指南》按照由浅入深的逻辑共分为4部分,即管理基础、系统管理、数据管理以及优化与维护。这种分类方法不仅从理论上环环相扣,全面介绍数据库管理人员需要掌握的相关理论知识和工作技能,...
《SQL Server 2008管理员必备指南》按照由浅入深的逻辑共分为4部分,即管理基础、系统管理、数据管理以及优化与维护。这种分类方法不仅从理论上环环相扣,全面介绍数据库管理人员需要掌握的相关理论知识和工作技能,...
sqlserver的审核机制可以帮助跟踪并且阻止系统中没有授权的用户他的行为。比如没有授权的用户登录系统会阻止这次登录,并且把这次操作给记录下来。审核机制既能跟踪失败记录也能跟踪成功记录。所有的数据库平台均在...
9.2.2 SQLServer中访问数据的方式 9.3 创建、修改和删除索引 9.3.1 CREATEINDEX语句 9.3.2 创建XML索引 9.3.3 随约束创建的隐含索引 9.3.4 在稀疏列和地理空间列上创建索引 9.4 明智地选择——在何时何地使用何种...