Today I had an in-depth conversation about SQL Server Licensing with Bryan Friedly who is an Account Manager for Microsoft in Texas. Buck Woody who is a Sr. SQL Server Technical Specalist for Microsoft (Website | Twitter) simplified it with his MSDN Article: “Simplied SQL Server Licensing” and I wanted to extend on it just a bit with what I had learned.
At first I originally thought that licenses were based on connections (concurrent connections for that matter) and as it turned out I was wrong (imagine that). Microsoft is not really concerned with what technologies you are accessing SQL Server with; rather, their concern is focused on who or what device will access data from SQL Server.
So when you think of licensing scenarios think of the people and then think of the devices that the people will use to access the data. A person and a device are considered accessible end-points so-to-speak which can somewhat be translated into needed CALs depending on the scenario.
It can get sticky with shared workspaces which is when multiple people share a common system which includes laptops, mobile devices, desktops, tablets, etc… In hopes to clarify I will run through a few examples to help illustrate what I learned so far or at the very least my level of understanding on how the licensing works. So to start let me touch on the basics. With SQL Server 2008 there are two license models: Per Processor and Server/CAL and each have their own pricing segments.
Prices are based on retail not software assurance.
1 includes 5 workgroup CALs
This is by far the simplest model to implement, but with simplicity comes a pretty hefty price tag which is entirely dependent upon the edition you purchase of course. With the “Per Processor” license model any client can connect from anywhere. This means you can have a single user or device to multiple users and devices that spread vastly beyond the Nth degree access SQL Server and still be in compliance under this licensing model. This is definitely ideal when your user or device base exceeds the plausibility of physical count. In short you have no idea how many users or devices are accessing SQL Server. So if you have a quad-socket (quad-core) server then you only need to license the four sockets and not the individual cores which is the opposite with Oracle. That doesn’t mean you need to license all four of the sockets if you plan on using SQL Server with just two processors then you need to purchase the “Per Processor” license times 2.
This model can get a bit tricky but it does not necessarily have to be. The first thing you should know is that there are two types of CALs: Per User and Per Device. There is also another term you should become familiar with and that is: Multiplexing otherwise known as “pooling”. Pooling is an added layer between the user and SQL Server. Let’s use a web application which is a typical layer that sits between a person or device and the back-end SQL Server database.
Well in this scenario the application server which falls under (multiplexing) is not required to have a license. So that’s an added savings. You will however need to obtain licenses for every user that sends/retrieves data from the underlying SQL Server. So if you have 40 users using your web application then you will need to acquire 40 licenses.
In the above illustration I have laid out my interpretation of the different CALs. As you can see the “Per User” CALs can access any and all of the SQL Severs, even at the same time. The “Per Device” is specific, so if your device needs to access two servers then two licenses are required. However “Per Device” does have it’s advantages especially in shared workspaces. If it is a common practice in your organization to share workstations then this is more of an economic approach. Especially if you have 25 workstations and 100 employees which means you only need to obtain 25 “Per Device” licenses to satisfy the license agreement. So let’s run through one more scenario.
We are planning to introduce a replicated environment to the organization where there will be 25 subscribers via mobile devices (five are shared between 15 users) and 35 desktop users (five shared between 10 users) that will access the database via a .NET Web Application. The client purchased a quad-socket (quad-core) server with the intention to load and operate SQL Server 2008. What edition should be purchase and what would be the most economic licensing option? Well SQL Server 2008 Standard Edition supports up to four processors and based on the hardware configuration the “Per Processor” model would cost upwards of $28,000, so we will need to use the “Server/CAL” method.
What do we know so far?
|1||SQL Server Standard Edition|
|25||Users to the shared devices|
|75 actual users|
|60 actual licensable end-points|
It would be ideal to use the “Per User” CALs for the 20 laptop and 30 desktop users, then “Per Device” for the five shared laptops and the five shared desktops which saves us from purchasing 15 CALs ($2,520.00 savings). Now based on retail pricing we are looking at:
|1||SQL Server 2008 Standard Edition||$898.99|
|50||Per User CALs||$168.00|
|10||Per Device CALs||$168.00|
If we went with just “Per User” CALs then the total accessible end-point CALs would increase by 15 to include each of the users that shared the laptops and desktops.
|1||SQL Server 2008 Standard Edition||$898.99|
|75||Per User CALs||$168.00|