在SQLserver里面“命名管道”是什么意思

 我来答
维湾教育培训
2015-11-04 · 知道合伙人软件行家
维湾教育培训
知道合伙人软件行家
采纳数:3549 获赞数:13648

向TA提问 私信TA
展开全部
SQL Server中的命名管道(named pipe)及其使用
1. 什么是命名管道?
与TCP/IP(传输控制协议或internet协议)一样,命名管道是一种通讯协议。它一般用于局域网中,因为它要求客户端必须具有访问服务器资源的权限。
要解释这个问题,我还是摘录微软官方的资料比较好
http://msdn.microsoft.com/zh-cn/library/ms187892.aspx
若要连接到 SQL Server 数据库引擎,必须启用网络协议。Microsoft SQL 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 是为局域网而开发的协议。内存的一部分被某个进程用来向另一个进程传递信息,因此一个进程的输出就是另一个进程的输入。第二个进程可以是本地的(与第一个进程位于同一台计算机上),也可以是远程的(位于联网的计算机上)。
VIA
虚拟接口适配器 (VIA) 协议和 VIA 硬件一同使用。有关如何使用 VIA 的信息,请与硬件供应商联系。
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 配置管理器中列出的顺序尝试这些协议。
注意:
Microsoft SQL Server 不支持 Banyan VINES 顺序包协议 (SPP)、多协议、AppleTalk 或 NWLink IPX/SPX 网络协议。以前使用这些协议连接的客户端必须选择其他协议才能连接到 SQL Server。
实际上,命名管道在SQL Server配置管理器中看起来是下面这样。其实,在安装好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还支持定义别名
匿名用户
2013-06-04
展开全部
在快速局域网 (LAN) 环境中,传输控制协议或 Internet 协议 (TCP/IP) 套接字客户端和命名管道客户端在性能方面不相上下。但是,网络速度越慢(如在广域网 (WAN) 或拨号网络上),TCP/IP 套接字客户端与命名管道客户端的性能差异越明显。这是因为进程间通讯 (IPC) 机制在对等项间的通讯方法不同。 对于命名管道,通常网络通信交互性更强。一个对等项直到另一个对等项使用读取命令请求数据时才发送数据。在开始读取数据前,网络读取一般包括一系列窥视命名管道的信息。这在慢速网络中可能花费非常多并导致过多的网络流量,其它的网络客户端反过来也会受到影响。 阐明所讨论的是本地管道还是网络管道也很重要。如果服务器应用程序在运行 Microsoft® SQL Server® 2000 实例的计算机上本地运行,则可以选择本地命名管道协议。本地命名管道以内核模式运行且速度非常快。 对于 TCP/IP 套接字,数据传输的效率更高,开销也更少。数据传输还可以利用 TCP/IP 套接字性能增强机制的优点,如开窗口、延迟确认等,这在慢速网络中可能非常有益。对于应用程序的不同类型,这类性能差异可能非常大。 TCP/IP 套接字还支持待办事项队列,当试图连接到 SQL Server 时,与可能导致管道忙错误的命名管道相比,该队列可以提供有限的平稳效果。 一般情况下,套接字在慢速 LAN、WAN 或拨号网络中效果较佳,而当网络速度不成问题时命名管道则是更好的选择,因为其功能更强、易于使用且提供多种配置选项。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-04
展开全部
这里有一个可采纳命令管道的例子.假定我们要开发一个数据管理系统,只允许一个指
  定的用户组进行操作.想像在自己的办公室中,有一部计算机,其中保存着公司的秘密.我
  们要求只有公司的管理人员,才能访问及处理这些秘密.假定在自己的工作站机器上,公司
  内的每名员工都可看到网络上的这台计算机.然而,我们并不希望普通员工取得对机密材料
  的访问权.在这种情况下,命名管道可发挥出很好的作用,因为我们可开发一个服务器应用
  程序,令其以来自客户机的请求为准,对公司的秘密进行安全操作.服务器可将客户访问限
  制在管理人员身上,用Windows NT或新版Windows 2000自带的安全机制,便可非常轻松地做
  到这一点.
  在此要记住的一个重点是,将命名管道作为一种网络编程方案使用时,它实际上建立一
  个简单的客户机/服务器数据通信体系,可在其中可靠地传输数据.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-04
展开全部
简单的说就是server的机器名称
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式