可能重复:
你能帮我解决我的软件许可问题吗?
运行 SQL Server,据我了解,每个连接到数据库服务器的用户都需要一个 CAL。
但是,如果访问 SQL Server 的唯一计算机是运行业务层的服务器,会发生什么情况?
例如,如果您有 1 个 SQL Server 和 1 个业务逻辑服务器,以及 100 个客户端,它们都只是查询和使用业务逻辑服务器。没有客户端直接使用 SQL Server,甚至不允许任何人联系它。
那么,既然只有一台计算机使用 SQL 服务器,我只需要 1 个 CAL 吗???
我有点不敢相信这会算作 SQL Server 只需要 1 个 CAL,但我想知道为什么不这样做。
您需要为业务逻辑服务器的每个用户提供 CAL,即使他们与 SQL 服务器之间没有直接连接。对于您描述的场景,Microsoft 使用术语“多路复用”。
这适用于 SQL 2005,但我认为其他版本没有什么不同:
CAL 必须涵盖使用您的应用程序的任何人,包括仅使用它来生成 Excel 报告但仅通过电子邮件接收其中一个 Excel 报告副本的人不会。
编辑添加这只是 SQL Server 许可的众多方面之一,只有在您选择 Server+CAL 许可模式时才有意义。如果您想全面了解所有替代方案,权威文档是Microsoft 的 63 页 SQL Server 2008 许可指南,其中涵盖了所有许可模型和方法。
Helvick 说了这么多,但我只是想补充一点,对于您的场景,最好使用处理器许可模型,因此您需要为数据库服务器上的每个处理器付费,而不是为访问服务器的每个客户端付费。根据您的服务器有多少内核以及您期望流量增加多少,每个处理器路由可能会更便宜。
编辑:每微软,处理器许可是每处理器,而不是每核。所以如果你有一个 8 核处理器,你仍然只需要一个许可证,只要它是一个单芯片/插槽。(在 SQL 2008 的白皮书中,他们实际上把它作为一个卖点,说 Oracle 和其他公司经常按内核收费。)
最重要的是,面向 Internet 的系统有不同的许可 - 因此您不必限制用户。在这些情况下,您要么获取 Internet 许可证(用于外部用户),要么通过 SPLA(服务提供商许可协议)实际获得许可。
在您的特定情况下,您将需要(如果要求准确)正好 100 个许可证。
但是,100 个用户可能不需要任何 CAL,如果您可以在 SQL Server Express 上运行它。对于大多数情况,限制是非常好的......在许多情况下,每个数据库 4gb 是相当多的。