Kelly and I were having a discussion the other day about Microsoft licensing for a customer and the question of CAL’s came up. Kelly was a bit confused by the whole concept (and she’s NOT alone in that …) so I had to explain to her what it is all about. She said, “There’s a blog post in that!”, so here it is …
CAL’s (Client Access License) are the “right to connect” licenses that Microsoft sells alongside all of their server products. As a general rule of thumb, you require a CAL to connect to a given server (like Server 2012 R2) or a server service (like SQLserver) and the CAL needs to match what you are connecting to. So, if you have a Server 2012 R2 server that hosts SQLserver you would need both a Windows Server CAL and a SQLserver CAL to “talk” to SQL on the server. And, as you might surmise, this can get a whole lot more complicated if you have a lot of Microsoft server products installed.
There are multiple ways of licensing CAL’s but the basics are actually pretty simple … you can CAL by DEVICE or by USER. A DEVICE CAL will license a given device to connect to the appropriate server or service regardless of the user logged in to the device. A USER CAL will license a given user to connect to the appropriate server or service regardless of the device used. Read the two preceding sentences carefully because there is a world of difference between the two CAL types and a possible monumental (and costly) licensing headache for you if you get it wrong. Generally, CAL’s are simply a license that you buy and keep “on the shelf” so that you can pull them out for examination if Microsoft ever audits you (don’t laugh, we have seen a marked uptick recently in the number of Microsoft customers that are getting audited for license compliance). However, there are some types of CAL’s that are actually applied to a server; good examples would be Terminal Server/RDS CAL’s and SharePoint Enterprise CAL’s. And, in the case of Terminal Server/RDS CAL’s you absolutely have to get the CAL type correct as you cannot mix and match DEVICE and USER CAL’s on the same Terminal/RDS server.
Now you might be thinking that CAL cost could quickly add up, and you would be correct, specially so when you start talking about things like SQL CAL’s. Microsoft does have some licensing tricks to help soften the financial blow for certain types of CAL’s. For example, you can license SQLserver using the “processor model” instead of the CAL model. In this case you can purchase SQLserver licenses that license unlimted user/device connections by the CPU socket (physical or virtual) on the SQLserver. There are a clearly defined set of rules that need to be followed in this instance in order to ensure you have the correct number of licenses purchased. But all of that said, it is much more cost effective to go this route if you have a reasonable number of users as CAL cost can mount up very quickly. In many cases the “cross over point” for SQL is between 25 and 30 CAL’s.
Microsoft Cloud services such as Office365 and Azure essentially provide implicit USER CAL licensing, there is no extra explicit CAL licensing required (a definite advantage over traditional licensing and one you need to factor into your calculations when you compare on-premises licensing costs against Cloud licensing costs).
Keep in mind that when you purchase Microsoft on-premise licensing it is incumbent upon you, as part of accepting the licensing agreement, to ensure you have also purchased the appropriate number and type of CAL’s. CAL’s are as much a part of the licensing equation as the actual server license itself. And CAL’s are invariably the thing that organizations get caught out on when they get audited. Rule of thumb: When in doubt make sure you double check with your Microsoft reseller or even with Microsoft themselves. Microsoft, like other software vendors, takes a dim view of organizations that attempt to “skirt the rules”.