(This post is an update to “Do I Need SQL CALs When Using SharePoint?” first posted on the Mirazon blog on September 3, 2013.)
When you advise people on Microsoft licensing for 10 years, you see certain questions pop up time and time again. One of the recurring questions I receive is: “Do I need SQL CALs for my SharePoint users?” More broadly speaking, the question is: “When SQL Server is being used as a backend database, do I need SQL CALs?”
Here’s the scenario: you are setting up a SharePoint server (or something similar). You need a SQL server on the backend to hold and manipulate all the data that SharePoint will need. But the users and endpoint devices will never touch the SQL server. They will only be accessing the SharePoint server. So naturally they won’t need SQL CALs, right? … Wrong!
Let me introduce you to the term “multiplexing.” Multiplexing is essentially where one system (such as SharePoint) sits in front of another system (such as SQL), providing services to endpoint devices. Or, as Microsoft puts it in a volume licensing brief devoted to the subject:
“Multiplexing” is when customers use hardware or software to pool connections, reroute information, or reduce the number of devices or users that directly access or use a product. Multiplexing can also include reducing the number of devices or users a product directly manages.
This is illustrated in Microsoft’s diagram below. SQL Server sits on the backend, the “pooling hardware or software” sits in the middle, and the users and devices access the pooling system from the outside. SharePoint Server would be an example of “pooling software.”
Again, the users and endpoints are never touching the SQL server, so it would be natural to think that SQL CALs would not be needed. However, if you did not buy SQL CALs for those users or devices, you would be out of compliance with Microsoft. And with the number Microsoft audits I have seen come across my desk recently, this is not a good time to be out of compliance.
Every User or Device Needs a CAL
Here is the key statement by Microsoft on the subject, taken from the same licensing brief:
“Multiplexing does not reduce the number of Microsoft licenses required. Users are required to have the appropriate licenses, regardless of their direct or indirect connection to the product. Any user or device that accesses the server, files, or data or content provided by the server that is made available through an automated process requires a CAL.”
Here is Microsoft’s logic:
- The user/endpoint is accessing SharePoint.
- SharePoint is accessing the data in SQL Server.
- Therefore, the user/endpoint is accessing SQL Server.
Thus, Microsoft requires the user or endpoint to have a SharePoint CAL and a SQL CAL.
Here is the full diagram from Microsoft’s licensing brief. It illustrates the point that whether you access the SQL server directly or indirectly, you need a CAL.
While we’re on the topic, if you’re wondering whether you should go with User CALs or Device CALs, read my post here.
By now you may be saying, “If that’s the case, then my SharePoint project just became impossibly expensive! What’s the workaround?” The other option is to use core licenses of SQL.
There are two ways to purchase SQL 2016:
- Server+CAL Model: You purchase a server license for the server, and CALs for all your users or endpoint devices; or …
- Core-based Model: You purchase core licenses for all the processor cores within the server. A minimum purchase of four core licenses is required, but CALs are not needed for this option. (For more information, see my post here.)
If you go with core-based licenses, then all your CAL problems go away. A million people could access that server and you would be all set … at least from a licensing standpoint. With a million users, you might have some performance issues, but I’ll let the Mirazon engineers help you solve that problem.
Which Option Should I Choose?
Last question on this topic: “At what point is it more cost effective for me to go with core-based licenses instead of server/CAL licenses?” The answer to that question depends on a number of factors: the number of CPU cores running SQL, the number of users, the number of devices, etc. But let’s walk through a simple example …
Let’s say you’re a small business, you want to have SQL 2016 Standard running on a single server with a dual-core processor, and you are not interested in Software Assurance. Should you go with core licenses or server/CAL licenses?
The answer depends on the number of users or devices that need to access SQL. In this situation, it would cost about the same for you to buy core licenses as it would to buy a server license and 31 CALs:
- 4 Core Minimum = $7,434
- 1 Server + 31 CALs = $7,410
So if you have over 31 users, then you should go with core licenses. If you have less than 30 users, then server/CAL licenses would be the way to go. See my post here for more details on how to weigh the options.
The Final Word
Back to our original question: “Do I need SQL CALs for my SharePoint users?” If you are on the Server+CAL model of SQL, then the answer is a resounding “Yes!” And the same principle would hold true for other products that can be described as “pooling hardware or software.” Don’t fall into this Microsoft licensing pitfall. If you have SQL running on the backend, you need to have core-based SQL licenses or you need to have SQL CALs to cover your users or devices.