SQL Server CAL如何计算?

可能重复:
你能帮我解决我的软件授权问题吗?

根据我的理解,运行SQL Server对于连接到数据库服务器的每个用户都需要一个CAL。

但是,如果唯一访问SQL Server的计算机是运行业务层的服务器,会发生什么?
例如,如果您有1个SQL Server和1个业务逻辑服务器,以及100个只查询和使用业务逻辑服务器的客户端。 没有客户端直接使用SQL Server,甚至没有人允许联系它。
那么,因为只有一台计算机使用SQL服务器,所以我只需要一个CAL?

我莫名其妙地无法相信这只会算作SQL Server所需要的1个CAL,但我想知道为什么不。

您需要为业务逻辑服务器的每个用户使用CAL,即使它们与SQL服务器之间没有直接连接。 Microsoft使用术语“多路复用”来描述您所描述的情况。

这是为SQL 2005,但我不认为这是其他版本的任何不同:

每个不同的设备或用户都需要一个CAL来连接复用或共享软件或硬件前端。 无论运行SQL Server的服务器与最终使用其数据,服务或function的客户端设备之间存在多less层硬件或软件,情况都是如此。 此例外包括从员工到员工的手动数据传输。 例如,如果员工将Microsoft Excel版本的报告发送给其他员工,则接收员工不需要CAL。 另一个例外是运行SQL Server的服务器之间的通信。

使用您的应用程序的任何人都必须被CAL所覆盖,包括仅将其用于生成Excel报告的人员,但只通过电子邮件接收其中一个Excel报告副本的人员则不会。

编辑添加这只是SQL服务器许可的许多方面之一,只有在selectServer + CAL许可模式时才是相关的。 如果你想全面了解所有的备选scheme,权威的文档是微软的63页SQL Server 2008授权指南 ,其中涵盖了所有许可模式和方法。

Helvick说了这一切,但我只是想补充说,对于您的情况,最好是使用处理器许可模式,因此您需要为数据库服务器上的每个处理器付费,而不是为每个访问服务器的客户端付费。 取决于你的服务器有多less内核,以及你预计stream量会增加多less,每个处理器的路由可能会更便宜。

编辑:每微软,处理器授权是每个处理器,而不是每个核心。 所以,如果你有一个8核心的处理器,你只需要一个许可证,只要它是一个芯片/sockets。 (在SQL 2008的白皮书中,他们实际上把它作为一个卖点,说甲骨文和其他人经常按每核心收费。)

除此之外,面向互联网的系统还有不同的授权许可 – 所以你不必限制用户。 您可以获取互联网许可证(针对外部用户),也可以通过SPLA(服务提供商许可协议)进行实际许可。

在您的具体情况下,您需要(如果要求准确的话)恰好100个许可证。

100个用户 – 但可能不需要任何CAL – 如果您可以在SQL Server Express上运行它。 对于大多数情况,限制是非常好的…对于许多情况,每个数据库4GB是相当多的。