Microsoft SQL Server Licensing Simplified into 7 Rules

Licensing is really complex, but as long as you know these seven rules, you can go a long way:

  1. If you query it, you have to license it.
  2. “It” means the Windows environment – all of the processor cores that Windows sees. (Things get a little weirder under virtualization.)
  3. Offloading a backup or a DBCC is considered querying until you license 2019 with Software Assurance.
  4. If you license it, and you pay Software Assurance, you get exactly one or more standby servers of equivalent size. (Standby means you’re not querying it.) Details here.
  5. Standard Edition costs about $2k USD per core, but all currently supported versions cap out at 24 cores and 128GB RAM.
  6. Enterprise Edition costs about $7k USD per core.
  7. Software Assurance is an additional annual fee that gives you free upgrades as long as you keep paying for it.

Then to learn more, check out Microsoft’s SQL Server licensing resources.

Previous Post
Should You Be a SQL Server DBA? (video)
Next Post
Basic VMware and Hyper-V Terminology for the SQL Server DBA

203 Comments.

  • Depending on your level of Software assurance, it can come with a little more than just free upgrades (see planning services):
    https://www.microsoft.com/en-us/licensing/licensing-programs/software-assurance-planning-services-overview.aspx

    Full disclosure, I work for Microsoft. I wanted to point that out because many SA plans already include some sort of planning services in them. Make sure you check with your licensing rep to get the full picture and potentially take advantage of something you didn’t know you had.

    • Ayman – yes, but to be fair to the readers, I’d also tell them to get any Microsoft licensing recommendations in writing. I’ve seen so many cases where an MS employee told someone something about licensing, and then the company based their entire plan around that verbal advice – and it turned out to be either wrong, or misheard. (sigh)

      • Hence my last sentence “Make sure you check with your licensing rep to get the full picture…”

        I totally agree, not every MS employee is qualified to speak about your company’s licensing agreement so you need to reach out to your licensing rep to understand what you have. Hopefully I don’t sound too much like a “used software” salesman 🙂

        • … and even “your licensing rep” makes mistakes!!!

          • After nearly nine years at Microsoft, I recently left & had to do my first SQL Server licensing exercise. I remain shell-shocked. Cogent to this comment, to compare three configurations required three calls to licensing, I got the same person twice, I had to correct them twice (& even steered them to references)–without which I’d’ve been led astray in a big way.

          • Do what an Oracle guy once said to me “Get the licensing team to sign in writing that what you are doing is ok, they can hardly disagree with something they signed!”.

    • is it per instance or per database?

      • Thomas Franz
        April 16, 2016 8:37 am

        If your question refers to the licensing costs: you have to license per server (= windows machine) and at server level per core.

        On the other hand you can install as many instances / databases you want on this server (and your server is able to handle).

        • Can I use one Enterprise SQL server core 2 license, for multiple Application servers viz. SharePoint, Mange Engine, Great Plains, Lync, System Centre, Airwatch, etc.?
          If YES, what licensing scheme is applicable?

  • If a server is only used for SQL Server services, do you only need SQL CALs? Or do you also need Server CALs?

    • James – what do you mean only used for services?

      • I mean that the server (Windows 2008 R2) is only used for SQL Server 2008 R2 (no file sharing, no printer sharing) and is licensed per processor but it is a member server of a domain. Do I need to purchase Windows Server 2008 R2 user or device CALs?

  • Howard Moneta
    April 28, 2015 11:24 am

    Thanks for writing this. If the physical cores in the server are licensed once, can I run multiple Enterprise edition SQL instances on the server? (no virtualization, all sharing the same resources)

    • Howard – sure, but generally instance stacking on the same Windows introduces a whole host (no pun intended) of other problems.

      • My organization is fortunate enough to have a SQL Server site license. We use instance stacking instead of visualization and it’s been working out well for us. We have a need for many low performance SQL Server instances.

        I am under the impression that the scenario Howard Moneta described requires him to license all the cores for each individual instance of SQL Server on the box. See my comment at https://www.brentozar.com/archive/2014/11/core-based-licensing-matters-performance-tuning/#comment-2102599.

        I’d be very interested to know if I’m incorrect.

        Thanks,
        EWG

        • Ben Pomicter
          May 4, 2015 9:31 am

          Elijah, that is in fact incorrect. The relevant language from the Services Provider Use Rights document, Per Core License Model section, is
          “For each server to which you have assigned the required number of licenses as provided in the “Physical Cores of a Server” section above, you may run on the licensed server any number of instances of the server software in one physical and any number of virtual OSEs”

      • Howard Moneta
        May 4, 2015 11:07 am

        Brent, I was thinking that multiple instances on the same physical server could make sense in some circumstances where we want to split the RAM between instances or if we have a requirement for different service pack levels, or if we want to limit elevated user permissions so that if an application account needs to be elevated during an installation, it can’t modify unrelated databases contained in another instance.

        The other use might be a three node cluster where one node is passive but we want all FCIs to be able to run on all nodes for manageability.

        I was not clear on the licensing if all physical nodes are licensed once.

  • I’ve always found things to be particularly murky around the < Standard editions of SQL Server (Web/Express). Not in terms of cost, or hardware/feature limitations (all of which are clearly laid out), but specifically what you are and aren't allowed to do with/to them. I can't say that I find the "Editions and Components of SQL Server xxxx" pages to be particularly enlightening on this.

  • Hi Brent, how confident are you that running DBCC commands on an otherwise passive SQL Server in a HA or DR configuration means that you need to license it? The Licensing Guide refers to ‘performing any “work”‘ (quotes theirs) requiring a license but this seems ambiguous enough to include anything.

    • I am particularly interested in restoring multiple database backups from multiple instances (different hosts) onto 1 instance and running only DBCC’s in an offload-scenario. Even by having SA, I’d still have to license that “offload”-server…just seems crazy to me…

      • Thomas Franz
        June 3, 2015 2:05 am

        Just an idea: If you would restore it on your own server / PC licensed with a cheap developer license and just run DBCC it should be possible to define this task as testing which would be covered by the developer license (you need a dev lic. for every person that will e.g. receive the alert mails if an error occured)

        • Thomas – if I was a Microsoft lawyer, I’d say:

          Me: “So are you running DBCC on your production databases?”

          Thomas: “No.”

          Me: “So what’s this daily task where you restore databases onto your desktop, run DBCC, send yourself an email if it succeeds, otherwise just delete the database and do it again tomorrow?”

          Thomas: “Uh, a fun experiment?”

          That’s not going to fly very far – no more than if you restored the production databases somewhere else, ran sales reports to make sure you were still on track to hit budget, and then sent yourself confirmation emails, and claimed all that was “testing.”

          • If I were heavily invested into MS SQL Server this is right about the point where I’d be considering porting off of it or at the very least banning new deployments of it in favor of another database.

            PostgreSQL would seem an obvious choice. If it ismaking inroads into Oracle’s domain then it’s clearly enterprise ready.

          • Thomas – I’d be very wary about that suggestion. I read that as production still, not dev/test.

  • I would add one more to this Brent, “if you authenticate against it, you have to license it” as most people seem to think that if they use SQL Auth they only have to license one user, which ain’t the case :).

  • I guess it worth mentioning as well the minimum cores licencing.
    And yes getting into the virtualised servers then gets a bit funky for licencing (like every other DBMS).

    Cheers
    Manu

  • Really good post.

    The only thing I might add in….you have to license a minimum of 4 cores (at least you do in the UK, at the time of writing!)

  • We have a dba utility database on all our servers, including mirror-partners. Do you know if that utility database requires the whole instance to be licensed?

    • Jeff – that’s a gray area there. One could say that even running a monitoring tool against a mirror-partner might require licensing.

    • Talk to your rep about that. We have a utility database on all our instances and I know we’ve mentioned to MS that we monitor all our servers but they didn’t ask anything when we’ve told them which instances are DR only and shouldn’t count towards our licensing. And make sure you get it in writing since the answer may not be under a strict interpretation of the rules.

  • Brent, We have a SQL 2012 Enterprise License for 4 cores. We have done some testing and want to upgrade to an 8 core license. We have the quote for the extra cores but before we purchase I need to know the process for applying that to our current server. Any idea how that is accomplished, a new license key or upgrade to your existing key? If it’s a new key how do you enter it?

    • Tim – you just need to have the receipts in hand when the licensing folks come knocking. You don’t have to change the key on the server itself. (To clarify – I’m only talking about EE here. If you were talking about switching between EE, Standard, and Dev, that’s a different conversation.)

  • Ben Pomicter
    May 4, 2015 9:59 am

    Brent, if there can be a rule 8, or maybe rule 2A (with the same caveat about virtualization), it should probably be “make sure you’re licensing only the *physical* cores.” If the machine has hyperthreading enabled, both Windows and SQL (via sys.dm_os_sys_info) are going to report twice that, and you risk over-licensing. The only way to get the true core number seems to be “wmic CPU get NumberOfCores”

  • Curt Gruber
    May 8, 2015 9:29 pm

    What about Reporting Services? If we want to install SSRS on a separate server, does that require another SQL Server license?

    • Curt – yes.

      • I stumbled across this when looking for licensing costs around Reporting Services. If you have Software Assurance can you install a SSRS instance on your free warm standby server? Does the same apply to Analysis Services? Or does that right only apply to SQL Database service?

      • Is it true if you have an Enterprise lisence then you can run SSRS on a seperate server without a lisence?

      • Adrian Engelbrecht
        October 11, 2017 11:16 pm

        Is it possible to install SSRS on a separate server WITHOUT a database engine and point it back to the licensed database engine without having to buy a separate license for SSRS please Brent? ie: SSRS is included in the core license packs purchased for the database engine?

        • Adrian – no. And read the post.

          • I read the article, Adrian’s question, and your reponse, and I am still not clear.

            You state, very simply, “If you query it, you must license it”.

            If I install SSRS all by itself on a server and point it to a SQL instance, I am not “querying” the SSRS server, I am querying the SQL instance for which I am (presumably) licensed. From your post it is not entirely clear that I need to license the stand-alone SSRS install as I am not “querying” it.

          • Brian – if you’re asking it things, you’re querying it. To put another way, if you can shut off SSRS and stop it responding to requests, then that’d be a different story.

  • Thomas Franz
    June 19, 2015 3:04 am

    Regarding point 4 “If you license it, and you pay Software Assurance, you get exactly one free standby server of equivalent size.”:

    Is it possible to have a developement / test server where I install
    – the free standby SQL Enterprise License from the production server that will not be queried (I guess that log shipping and / or replication is allowed because it should not count as querying)
    – and another instance with our developmer licenses

    The devs would of course only work on the dev instance but as soon the productive server goes offline it could switch to the standby instance on the dev-server.

    BTW: is monitoring of the standby instance allowed (e.g. to ensure that no queries pops up in the plan cache)?

  • Sir, to use enterprise edition of sql server, what minimum size should be there? In what case we can use this edition free of cost?

    • You can’t use the Enterprise Edition for free. You can use the Express edition for free up to 10 GB per database but you’ll lack of several Enterprise features (that you’ll usually not really need if you only have smaller databases)

  • To those interested in development servers, those are free if you pay for MSDN subscriptions that provide servers for development purposes. That is the most economical way to do development because you do not have to pay attention to any other licensing rule except for having MSDN subscription for development.

  • There is a cheaper way than MSDN:
    Most economical way for dev is SQL Server Developer Edition which is a named user right for unlimited test/dev sql’s. $59,95 per named developer one time fee as of now. Dev edition is equivalent of Enterprise in terms of features but it MUST be installed as a Developer Edition. It can be downgraded but only to another Dev edition. Beware, auditors will not accept an EE thats supposed to be covered by a DE license regardless of how you use it.

    http://www.microsoftstore.com/store/msusa/en_US/pdp/SQL-Server-2014-Developer-Edition/productID.298540400

  • If we access sql server using an ERP, do we need to purchase a CAL of every user who uses ERP?

  • I’m not a db administrator and I’ve actually never installed SQL Server except for two exceptions: SQL Server Express and SQL Server Developer. I have to install SQL Server 2014 Standard on a customer’s server. My boss purchased two licenses as the server has four cores. I’ve been searching without any luck on finding out how to apply the two licenses to my installation when I do it. I’m only given the opportunity to enter one license key during the installation. I apologize ahead of time if this isn’t the place to ask this question; but, I’m not found any other place that comes close to answering this or provides me an opportunity to ask.

  • Hi, so scenario.m we have 2 SQL servers with failover, each server has 2 pCPUs and 16 cores. As I understand it we don’t need a license for the secondary SQL server? But we would like to run backups from the secondary servers. Rather than license all the pCPUs/cores on the second server could we just license the server and a single CAL for the backup agent?

  • I have machine with 4 cores. I am using sql-server 2008 web edition whereas I need Developer edition (due to SSRS stuff).
    Do I have to take 4 licenses (license per core) or is there any other licensing mechanism as well?

  • For Point 5, I think I would add at the end “per instance”. If you have two instances of Standard Edition in an OSE, each is limited to 16 cores and 128GB RAM for a total of 32 cores and 256GB of RAM in the OSE.

  • Hi Brent,

    What if we have 2 or more SQL editions/versions running side by side (each running different instances). How does licensing work for that scenario in the Server+CAL model? Do we just license the higher version/edition instead of each?

    • Gillian – the only licensing that’s currently sold is the current version. It’s just that it also gives you the ability to run prior versions if you’d rather do that.

      • Then that means just 1 license is required, which makes more sense. MS said that I need 2 licenses (1 for STD 2008 R2 and 1 for STD 2012) even if they are running on the same server. Maybe they misunderstood…

        Thanks, Brent!

  • I’m hoping for a clarification on SA and VM license mobility.

    I was under the impression that if I licensed by VM clients by core (we’re using Enterprise Edition) and with a 4-core minimum per server, we were covered. I was recently told by our licensing rep that this situation requires SA for something called “License Mobility” that allows us to move the VM between hosts more often than once every 90 days.

    However, I’m getting conflicting information from the licensing guide on whether SA is required in the situation where I cover every single core in my VM farm:

    http://go.microsoft.com/fwlink/?LinkId=230678

    Near the bottom of page 9 (“How to license individual machines…”), it mentions that if I’m assigning licenses to the guests, SA is required to move them to other hosts.

    On page 11, it says that I can run unlimited VMs (up to 1 per core in the host) as long as I license every single core in my farm. It doesn’t make a mention of SA until near the bottom of the page, and then only in the context of removing that “up to one guest per core” limitation and not in the context of mobility rights.

    It seems like License Mobility doesn’t’ apply in my scenario because I’m licensing the entire VM farm and not actually moving any licenses around – they stay assigned to their physical host. I’d be moving VMs around at will, but not really reassigning any licenses (as long as I stay below the “one guest per host CPU” limitation).

    Am I reading this correctly? Our licensing rep seems to be ignoring what I’m asking and just insisting it’s safer to always have SA (which I agree with – it’s always safer to buy more than you need), but it doesn’t seem like the licensing guide actually requires SA here. Is this a fight worth having, or am I reading it wrong and I should give in to buying SA?

    Thanks for your help!

    • Ryan – read carefully. You write:

      “On page 11, it says that I can run unlimited VMs (up to 1 per core in the host) as long as I license every single core in my farm.”

      That’s irrelevant to you if you’re licensing the clients by the core rather than the hosts.

      • I’m asking if I can make the switch without forcing me to buy SA – I believe I can, but the licensing rep was telling me I was required to have SA and it didn’t make sense. I found another write-up – I’m basically asking if I can do what this guy is describing in the “License Mobility without SA” section at the bottom of page 10:

        http://www.picacommunications.com/briefs/SLA_SQL_LM_woSA_02.pdf

        I realize I can’t do that if I license by guest, but if I switch to licensing the entire physical host for each of my hosts that’s allowed to run SQL clients, I think I’m covered and it doesn’t require SA. As long as I’m not crazy, I’ll just need to get my license rep to see it my way as well 🙂

  • Hi Brent,

    I have a physical server with 8 cores and SQL Server Standard Edition. If I enable HT , Do I need to buy more licenses ?

    • Paulo – does hyperthreading increase the number of physical cores in the server?

      • Alexandr Volok
        May 13, 2016 1:48 pm

        Perhaps my comment is slightly outdated, but HT creates extra physical threads, which results to a necessity buying a license for 16 cores instead of 8.

        • Alexandr – make sure to read the licensing guide – that’s not exactly true for physical boxes.

          • Alexandr Volok
            May 13, 2016 2:16 pm

            Brent – thanks for pointing, yes, you are right, according to a guide:

            “The use of hyper-threading technology does not affect the number of core licenses required when
            running SQL Server software in a physical OSE.”

          • The miracles never cease.

  • Hi,

    I’m setting up SQL Server 2014 Standard for our ERP upgrade coming at us in the next couple of months. Normally I would look at CAL licensing the sql server and call it a day, BUT……

    I’m pulling my hair out trying to figure out how I should license if I am bringing orders in from a Shopify+ ecommerce site using the shopify web service API, and I will be extracting product and customer data from the ERP system to load into Shopify using the API. On one hand, it only looks like I need to license for the system that will host the application that does the web api calls, but the way the licensing is worded, it almost sounds like I need to core license it because I’m using a “proxy” to gather data from users using the Shopify web site… despite the fact that in no way is the Shopify system is making any kind of calls for data from our end.

    Thoughts?

  • Hi Brent,

    Could be a silly question but if I have an old server running 4 single core physical processors and I take into account the “A minimum of 4 core licenses is required for each physical processor on the server” would this mean we need to pay for 16 cores?

    Thanks

    • Steve – for licensing questions, check out the questions link in the post. That way you can get exact confirmation from the folks who really know.

  • Hey Brent,

    Silly question I guess, but if I use a 2-core license on a 4-core system, will it work by using just 2 cores or will it not work at all?

    Thanks

    Raza

    • Raza – yep, you can even run SQL Server on a single-core system.

      • Right – but in this case (single core system) the no of licenses is greater. My question is regarding when no of cores are greater will it 1) work using the cores it is licensed for 2) work using all cores or 3) not work at all.

        Thanks in advance.

        • I’m not sure what you mean “work.” There’s no license key entry in SQL Server that ties to the number of cores you have.

          This is going to sound odd, but have you actually installed SQL Server, run through the setup process?

          • Hehe. I knew I was sounding odd. Yes, of course, I have installed SQL..I was just wondering that when you enter the license key during setup, would it check the number of cores, and allow you to proceed only if you have the same number of cores that you are licensed for..

            Thanks

  • Hey Brent,

    If I have SQL server with Server + CAL licenses (10 devices accessing server). Do I need 2 additional CALs if server is subscriber for 2 different publishers?

    Thanks,
    Mayur

  • I have two questions, we had some ops people install SQL Server Standard on what are our developer and test servers. Should I be concerned that it’s not developer edition?

    The other one with SQL Developer now being free what has changed in all this?
    We don’t actually develop as such with SQL Server we use it for a datavault DW (perhaps that is development) and for a telephony system and have a non-prod DW and a non-prod Telephony db.

  • Hi Brent,

    A question on licensing test environment. From what I read we need to license test servers: if I install SQL STD 2012 in a test environment then it requires a license. It can be covered by MSDN license if we want to, but what if we have an enterprise agreement? Does that exempt us from being required to license the SQL test server? Or does this entirely depend on what the agreement states?

  • Hi Brent,

    We’re determining whether to go with Standard or Enterprise Editions of SQL Server.
    I’ve tried asking the rep but they only point me to this location: https://msdn.microsoft.com/en-us/library/mt614935.aspx

    In 2016, as Database Mirroring is removed, would you happen to know if there a hard limit on the number of Basic Availability Groups we can have?

    And in terms of licensing, if we only have 1 server accessing the database and all the users if they need to use the application have to RDP into the server to use the application, would that classify as 1 CAL then?

    • Nikhil – first, about the CAL, no. Read the licensing guide and it’s pretty clear on that one. The server you’re using isn’t a client.

      About the number of Availability Groups – give me a rough idea of the number of databases we’re talking about. Is it 10, 100, 1,000, or 10,000?

      • Hi Brent,

        We’re talking about 8 databases in total. So that would be 8 Basic Availability Groups in total?

        In addition, If we were to purchase Standard with SA, and lets say 1 of those 8 BAG has a failure and has to failover to the second server, does that mean all of them have to move to the second server or failing over just 1 to the second server is fine and covered under licensing?

    • David 'justdave' Williams
      July 27, 2018 1:43 pm

      Database mirroring is NOT removed in 2016. https://docs.microsoft.com/en-us/sql/database-engine/deprecated-database-engine-features-in-sql-server-2017?view=sql-server-2017

      Even in the 2017 documentation Database Mirroring comes under “The following SQL Server Database Engine features are supported in the next version of SQL Server, but will be deprecated in a later version. The specific version of SQL Server has not been determined. “

  • For the Ozar community…having trouble getting this nailed down by MS or Software One, our licensing vendor.

    We have two VM Hosts.
    #1 is licensed and holds all of our Primary SQL Enterprise AO AG Servers.
    #2 is NOT licensed and holds all of our secondary AO AG Servers. Non are Readable..truly Passive.

    We have Software Assurance so we have License mobility…but We are under the understanding that this mobility from VMHost to VMHost is only applicable if all our SQL Servers move from #1 to #2…we can’t nickle and dime VMs moving from #1 to #2…all or nothing.

    That’s all fine, I understand that.

    The Issue: if we have a failover event…or we want to apply patching (say add an SP). We can fail back fairly quickly…but for a short time there is an active SQL Server on VMHost #2 which is not licensed.

    Back in the day, there was a 30-day grace period to get Services back to the primary in the event of a failure. My guess I’m remembering this from the days before SA mobility…but whatever. I’m not sure about any of this.

    What I want to know is if there is a grace period to get the primary active again. I’ve gotten all sorts of advice:
    * “There is a grace period…undefined”
    * “Don’t worry about it…just get things back to VMHost#1 and when the trueup comes things will be kosher for MS. If the Tree falls in the woods and nobody heard it, it didn’t really fall”.
    * “Absolutely no grace period…obligated to license VMHost#2 unless you can make every VM failover when even 1 fails – so mobility covers it”

    Any comments?
    Thanks

    • Followup comment…I’m speaking in terms of the SQL Availability Groups failing over rather than VMs themselves migrating from Host to Host…which would be a similar dilemma. All or nothing issues….and is there a grace period.

      so for simplicity, just assume all the VMs themselves stay on the same Hosts.

      sorry if this is confusing.

    • John – your best bet for Microsoft licensing questions is to hit the post – there’s specifics on how to talk to Microsoft there.

  • I’m having trouble with counting User CALs. We have a software vendor with a maintenance agreement that allows them to utilize the software on our servers for application maintenance/troubleshooting. They do this through a single user account, and there could be a varying number of employees sharing that account, depending on the severity of the issue.

    We have User CALs for all of our employees that use the system for regular production use. Do I need User CALs for the currently unknown number of vendor employees that may log in to our system for support purposes?

    I’ve scoured Google, and I can’t find anyone else even asking this question.

  • May I suggest an addition to your rules?

    “But if the query is for non-production use then a Developer Edition License is sufficient; Developer Edition is currently a free license.”

    https://blogs.technet.microsoft.com/dataplatforminsider/2016/03/31/microsoft-sql-server-developer-edition-is-now-free/

    • ‘Non-production’ is to unspecific, because it includes internal usage (e.g. staff management software or a tool that manages the menues of your internal cafeteria, which is used for internal purposes, but you do not earn any money with it).

      Developer edition is only allowed for developement and testing.

  • This is an awesome thread for these questions. One more: If I have an MSDN subscription and install an instance of SQL Server on a server, can other developers access that instance for development purposes? For example, the SQL server instance would service a web application we are developing and would be accessed by a service account for the web app, and by each developer as they test locally. Each developer is already accessing multiple other SQL Server instances that are fully licensed, so I assume they have whatever client licenses they need. Thank you for any light you can shed!

    • MSDN licenses are usually only for the person who has the subscription. On the other hand you and your other developers can get a free, legal SQL 2016 Developer license (but only 2016; needs at least Windows 8 / Window Server 2014, so you can’t it install local, when you are still on Win7) or a SQL 2014 for about 40-50 EUR / USD per Developer…

  • Can I use one Enterprise SQL server core 2 license, for multiple Application servers viz. SharePoint, Mange Engine, Great Plains, Lync, System Centre, Airwatch, etc.?
    If YES, what licensing scheme is applicable?
    My idea is to create multiple SQL server instances and DBs on single Enterprise SQL server with core 2 license on a high-end and high availability hardware. Each SQL server instance for each of the application servers sitting on a separate HW.
    Each of the application server can connect to their respective SQL instance with SQL Server CAL.

    • Nan – for questions, check out the article, where there’s a link on where to go with questions.

    • You could set up a SQL Server Enterprise with only a dual core CPU, but nobody does this (4 cores are the absolute minimum I’ve heared).

      But if you have an dual core server, you could install as many SQL instances on it as you want – but they will fight for the spare CPU-power (and maybe RAM), so that the server will be very slow. A much better solution in this case would be a single SQL instance on a server with 4 or more CPU cores.

      You must NOT create / install multiple SQL servers on different hardware servers with your dual core license.

      On the other hand: why do you not use a SQL Standard Edition (much cheaper) or a free SQL Express edition? When your company is so small, that you believe, that a dual core server could handle all the load of multiple applications (e.g. because there are only < 20 people), you will not really need an Enterprise edition (if you are missing the SQL Server Agent in the Express Edition start to use sqlcmd and the Windows task scheduler e.g. to create your regular backups)

  • Corey Hambrick
    October 31, 2016 10:28 am

    I have a question about MSDN licenses and SQL Server. We have a couple of SQL development environments that use production data for testing and development against and I am trying to understand if we could use MSDN licenses more effectively. Currently we have SQL Development environments using Production Licenses because we cannot use SQL Developer versions against production data. But would it be possible to license say 15 or 20 developers with an MSDN license and then use MSDN LIcensed SQL instances with production data for testing and development. It might be more cost effective to use MSDN licenses for that many people rather than using production licenses? That way we can do multiple dev environments with production data but not have to incur the cost of multiple production sql licenses? Does this make sense? Is this permissible?

    • Corey – you can totally use production data for development. That’s a very common practice, restoring production data into development environments.

      • Corey Hambrick
        October 31, 2016 11:07 am

        Let me clarify myself because I may be wrong. What I was saying is related to the SQL Server Developer editions. As I understand, you cannot run production data on a SQL Server Developer Edition, even for testing and development testing. I thought I had read that you can only have development data on the Developer Editions. If I am not correct on that, then that may be our issue but what I am trying to advise our company on is the proper and most cost effective license scenario so we can have development environments properly licensed but not paying the SQL Server license costs for each development environment that I believe we currently license at production licenses costs.

        • You’re not correct on that.

          • Corey Hambrick
            October 31, 2016 11:15 am

            Ok. So we can use SQL Developer Edition for all our developers without being out of compliance. That is helpful. But what about multiple development environments.
            Also, if anyone touches this SQL Developer Edition server for a production purpose, then we would be out of compliance at that point, correct?

          • Correct. Developer Edition is for development, not production.

            For further questions, head on up to the article, read it carefully, and there’s a link where you can have a chat with Microsoft. Thanks!

          • Corey Hambrick
            October 31, 2016 11:19 am

            Thanks for your quick response Brent. Have a good day.

  • Hi Brent,

    When it comes to a dev/test SQL server, do we need to license it even if we have Enterprise Agreement in place? I couldn’t find anything in Microsoft documentation that says we do not have to license them.

    SQL Developer, Express, and Evaluation are free so that’s fine, but what about servers that are purely for testing/development purposes but have SQL ENT/SQL STD installed, do these need to be licensed? Are there instances where we don’t have to license them?

    • if your dev server has a valid (paid) standard / enterprise license, you do not need to get another for THIS server (but it would be a waste of money).

      But you must not install your Enterprise on prodsrv01 and the same license on devsrv01. In this case you would have to pay for both servers. If you did so, you should uninstall it on the dev server (don’t know if there is a way to change the edition type without reinstall), get a developer license for each of your devs and install a developer edition on the server.

      • Ah, bottomline is test/dev needs to be allocated a license. We have plenty of STD and ENT so I just need to set aside some to cover them. Thanks!

  • I’m under the impression that as late as SQL 2012 the minimum Enterprise license covered 10 cores, is that correct? And I get the impression that in SQL 2016 that is no longer true, the minimum Enterprise license now covers only 4 cores, is *that* correct? And that it doesn’t even matter if these are real cores or hyperthreaded cores. Is THAT correct? Seems like Microsoft could be clearer at least on these very basic matters. Thanks.

  • If I want to use the developer edition of SQL 2014 for a test application with a SQL backend, that has 5 to 10 users testing, do I need a Dev license for each user?

  • Hello, Brent.
    We have a serious argument with one of my colleagues about paragraph 4 in this article.
    Lets say, we have 3 node cluster and one sql instance that can travel across these 3 nodes. Of course it is running only on one node at a time. Does this mean we have to buy licenses for two servers, as we only allowed to have one stand by server? Or does stand by server means that it has a RUNNING SQL-service?
    And in case of three node cluster, where the instance travels across only TWO nodes, and there is a second, mirrored (lets say via AlwaysOn) instance on the third node, but it is not queried. How many servers do we have to license?

    • Egor – the answer is in the last paragraph of the article.

      • Ok, Brent. I’ll paraphrase my question. When YOU were writing about “stand by server” in paragraph 4, what did YOU mean under that phrase?

        • Egor – for licensing questions about specific scenarios, please follow the instructions in the post. Thanks, I appreciate your understanding. Have a great day!

          • there is no chat button on the website. maybe it is because of my region, maybe they’ve removed it. I’ve sent a letter to our local MS partner, but it usualy takes several days to get answer. And as it is partner, but not official MS employees, they often screw up with the answer.
            Soooo, you can’t say what did you mean under standby server?
            I also appreciate your understanding.

          • It could also be because of your web browser, like you’re disabling JS or you’ve got a firewall involved. Thanks!

          • *facepalm*
            or it could be not.
            as always, Brent, very helpful….

  • We have a customer who is looking to migrate some SQL servers from 2012 to 2016 but we are trying to find the right way to do this. We don’t want them to have to buy 2 licenses per server as they are doing the migration. Do you have a way to find the migration rights for SQL 2016 to see if they are allowed to migrate over to another server or server cluster?
    Are they allowed to use the migration license on the new server where they are migrating toward and on the existing server they are decommissioning at the same time?

    From my understanding the customer may upgrade to and use SQL version 2016 in place of software covered by the Qualifying License i.e. SQL server 2012 licensed with active SA .The Customer may not use software under both licenses simultaneously. Can you please confirm if my understanding is correct .

    • Bharat – go ahead and read the post rather than just leaving a comment. The information you seek is in the last sentence of the post.

      • Software Assurance is an additional annual fee that gives you free upgrades as long as you keep paying for it.
        That is fine.
        But what if the customer is not doing an in-place upgrade. Is it fine if they install SQL 2016 on a different physical server while trying to do a side by side upgrade ?

        Pardon me if my question sounds stupid .

  • Wish there was an option to delete the last 6 comments from this page 😀

  • Regarding “all of the processor cores that Windows sees” – is this still correct under SQL Server 2014 and later?

    As I understand, disabling cores (as with a six-core CPU) in the BIOS/CMOS is no longer adequate to comply with Microsoft’s SQL licensing, the CPU itself must be a quad-core for a quad-core license.

  • Hi Brent, does SQL licensing depend on the server’s SQL version/edition? Example: We have 5 servers where the DBA installed SQL Server 2012 Enterprise Core edition, and another 2 servers with SQL Server 2012 Enterprise Edition. Based on the installed product, does it mean we have to apply core model for the 5 servers and server+CAL to the 2 servers?

    • Thomas Franz
      March 21, 2017 6:53 pm

      If you would have read at least the last few month comments, you would know, that Brent will you only direct to your MS vendor (I guess, that he risks some trouble when he gives you a wrong advice and particularly in the USA this could become very expensive).

      Regarding your question: as far I know you can’t license an Enterprise Edition on server / CAL-Basis, this is only possible for the Standard edition.

      And of course you have to license every single SQL Server that you are using (except developement only), except you are using VM’s and license EVERY CPU Core in the VM-host – in this case you could install as many VMs with SQL Server as you want on THIS host.

      But as always – ask your vendor (there must be a reason, that there is a (hard) certification title named Microsoft Certified Licensing Professional).

      • Thanks for the reply, Thomas, but I have asked Microsoft several times. Each time I am given a different answer. As for Server/CAL for Enterprise, it sounds possible based on their documentation “SQL 2012 License Guide”. There’s a topic on SQL Server Enterprise Edition Customers Licensed Under the Server+CAL Model, for customers with active SA coverage for existing SQL Server 2008 R2 Enterprise Edition.

        • Thomas Franz
          March 22, 2017 9:47 am

          ok, I missed the SQL 2012 part (we are using 2014 and 2016 and they changed some licensing rules at 2014 release).

          If you want to use SA and / or plan to upgrade your servers in the future, I would ensure, that the licenses fits also for 2014 / 2016, otherwise you could pick the cheapest answer from Microsoft, ask them again for a binding confirmation and buy it (saving / printing the answer/confirmation).

  • Hi Brent,
    We have a SQL server 2014 Enterprise edition with Core-based License. we want to change the license to Server +Cal Based. how can we do this?
    Can we do in-place upgrade from SQL server 2014 Enterprise edition with Core-based license to SQL Server 2016 with Server +CAL based license.

  • Thomas Franz
    April 26, 2017 1:12 pm

    – Brent is neither Software vendor nor Microsoft, so go and ask them
    – as far I know there are no CAL-Licenses for Enterprise (only for Standard)

  • Hello,
    Do you know if it is tecnically possible to install and run SQL Server 2016 Standard (one licence bought) in one server with 4 cores?
    We already bought one license dor 2 cores and know they told us that the minimun is for 4 cores, so 2 licenses!
    If we proceed with the installation, will it run? Or we are “just” failing with the license terms?
    Cheers

    • He will advice you to read the post again… Very ducking carefully.
      You can install your distrib as many times on as many servers with as many cores as you want. And that all will work fine until one day people from ms come with audit…

  • Bharat anand
    June 1, 2017 8:48 am

    If a secondary server is is running on read-only mode. Can we take it as Truly Passive or it has to be offline?

    • Thomas Franz
      June 1, 2017 2:30 pm

      As far I know (=no guarantee :-)) you can use it without an extra license, when
      – you have a Software Assurance subscription
      – you do not query it (read-only is not enough – a reporting server will be usually read-only too)
      – make no backups from its databases (restores / log shippings from the prod-server are ok)
      – do not run CHECKDB etc. on it

  • Bharat anand
    June 2, 2017 1:21 am

    Hi Thomas
    I guess even in Read-Only mode it is not truly Passive.
    A passive SQL Server instance is one that is not serving SQL Server data to clients or running active SQL Server workloads.
    However In some Fail-Over configurations, The Standby (Passive) server is used as a read-only reporting server installation. Under this usage the Standby server is no longer passive .

    But still not sure 🙂 that is what thought of checking with Brent .

  • Hi Brent,

    Nice post as always, just a ‘quick’ question about SQL Server Developer Edition please. Our Dev environment is pretty much same as production environment apart from its not production. My question is can we use SQL Server developer edition in virtualized Dev environment while using High Availability feature with 3 replicas. Thanks

  • Hi to all,
    I have downloaded mssql server 2008 r2 for application database from one site at free of cost, Is that illegal?
    Did i want to buy a licensed version ? what is the different between those (free & Purchased)? any capacity difference or data handling efficiency change is there? how much for a licensed version ? I am using it for only as a database for my application, so anybody give me detailed guide for me through my email id :cpnissam@gmail.com
    Thank you
    Have a Great Day!!!!

    • Nissam – go ahead and read the post carefully. Thanks!

    • Thomas Franz
      July 20, 2017 12:15 pm

      Downloading is not illegal, but using it (particularly for non-developing purposes, except it is the free Express edition).
      On the other hand – why did you download a 8 year old version and not the most recent (since this week SQL 2017 is out).

      For differences between the editions google for “ms sql difference editions”. For prices ask a software vendor (Amazon / ebay would be ok for a short overview, but licensing a SQL Server is very complex).

      If your database will be < 10 GB I suggest to download and use the free SQL 2017 Express Edition

  • Kyle Dooley
    July 26, 2017 9:12 am

    And if I install Just SSRS on a separate server does that server need to be licensed for SQL as well? Say if I create a SSRS cluster using NLB or some type of DNS switching.

    • Kyle – yep, that’s covered in the licensing guide linked to in the post.

      • Thanks for that info. I have always tried to separate those services such as SSRS,SSIS or SSAS to other machines to leave the DB server only running the databases. I am not sure if that is a best practice or others do it.

  • What is the pricing of SQL Server Enterprise Software Assurance (SA) for SQL Server 2016 ?

  • Gladys Fernandes
    August 8, 2017 9:10 am

    Have a Active-Passive cluster with one instance and planning to add one more instance . Our license now is per core and now only considering Active Nodes . With second instance if I run it in First node itself do I need to license the core of passive node?

  • Is there a way of finding whether the sql server being used was downloaded from MSDN or Production?

  • Ahmed Kamal Pasha
    October 26, 2017 1:14 am

    Hi I have two server with dual processors
    Server one 2 x 8 = 16 Cores
    Server Two 2 x 6 = 12 Cores

    How many Licenses do i need for my SQL Server Standard edition

  • The fact that they’re so many sites dedicated to explaining SQL licensing should tell MS somehting. Relaly should not be this complicated and difficult to price something out. SO on top regulr server License, Server user Cals, TS user Cals, now we have to pay for SQL user Cals as well? Why would server Cals cover SQL??

  • Hi Brent, as always a great read and very helpful.

  • I purchased “licenses” through our University reseller, but how do I apply them to the “Trial Version” I downloaded?

  • Hi Brent,
    I have two servers which is having Active/Passive cluster setup. I am planning to install standalone instances on this two servers only for reporting services. Reporting services uses database which resides on cluster. In this scenario Reporting services are running on both machines. WE do have license for Active/Passive cluster with Enterprise edition.Do we need to purchase license for both nodes? if we implement scale-out architecture then also do we require two licenses?

    • Sachin – check out this part of the post: Got a question not answered by these rules? Head over to the Microsoft licensing chat.

  • Norman Ramos
    August 2, 2018 3:07 am

    Good day, I have a question regarding licenses for Database Mirroring. I have a 2 server, 1 for Principal Server and the other 1 for mirror server. Both installed Windows 2016 Standard Server and Microsoft SQL 2017 Standard. I configure them as database mirroring. Should I need 2 licenses for OS and SQL? or I only need 1 license for OS and SQL? Thank you.

  • Travis Halsell
    August 16, 2018 11:42 am

    Still baffles me that you can’t at least DBCC CheckDB on a SQL 2016 sync AG secondary replica that is only used for DR. Guess we have to pay Microsoft to ensure that we are not failing over to corruption.

    • You might be able to make the licensing argument that you’re not offloading work to it, but only as long as you’re still running checkdb on the primary. If you offload the corruption checking from the primary though, forget it.

      • Travis Halsell
        August 16, 2018 1:50 pm

        Yeah, and that’s pretty much the case. We don’t really have a window to run CheckDB on the primary. We have to take a backup, restore and run it on a different instance, then CheckDB. Thanks for the input, Brent!

        • Yeah, in that case, offloading work = licensing for sure.

        • maybe you have another licenced SQL server who is not so busy (because it runs only some small applications), where you could restore the database and run CHECKDB (at SQL 2017 you could set MAXDOP for CHECKDB; alternatively you could install a second instance and set there a global MAXDOP and MaxMemory)

  • mahendra shukla
    October 14, 2018 8:07 am

    I am using SQL 2008 R2 standard edition at Production site and for this production we build One DR server with same configuration like production .Do we require DR server license or not kindly confirm?

  • I doubt, that you will have SA (Software Assurance) on the SQL 2008 R2 license (since – as far I know – did not existst this time). So – yes, you will need a license, but as written about 100 times above: read the original article and contact your Microsoft sales person…

  • Christian Hageraats
    October 17, 2018 1:55 am

    Hi Brent,

    On October 31, 2016 10:49 am you tell Corey that it is fine to install production data on a development environment and that this is a very common practice.

    But Microsoft states the following: SQL Server Developer Edition may not be used in a production environment or with product data. Any test data that was used for design, development or test purposes must be removed prior to deploying the software for production use.

    A production environment is defined as an environment that is accessed by end-users of an application (such as an Internet website) and that is used for more than gathering feedback or acceptance testing of that application. Other scenarios that constitute production environments include:
    • Environments that connect to a production database.
    • Environments that support disaster-recovery or backup for a production environment.
    • Environments that are used for production at least some of the time, such as a server that is rotated into production during peak periods of activity.

    So I would not advice to use production data for development and really not when there is sensitive (personal) data in the production data.

    • Ok, cool.

    • As far I understand the rules, it is not allowed to create data on a development server and move / restore / import it into a production server, while I’d define data not as the content of some config or lookup table (e.g. states, towns, sexes …), those are more source code as real data. Real data are in my opionion data, whiche are used by your company to make money (as orders or sensor data or user feedbacks or your ticket system).

      On the other hand, it may be a good idea to at least anonymize production data before / while moving it to the development server because of data security.

  • Our consultant thinks that SSIS is competing with our database engine for computing horsepower. Rather than license more enterprise edition cores, he came up with the following idea…
    1) Install SQL Server Enterprise Edition on one VM and license that all virtual cores for that VM.
    2) Install SSIS (without the database engine) on another VM but license that VM as Standard Edition to save money, but use that to process ETL for the first VM.

    Is that licensed properly? If you split off SSIS into a separate VM, does it need to be licensed to match the edition of the db engine it is connecting to?

    • Boberic – sure, if you’re not feeling comfortable with the answers from your consultant, you can totally hire us. Just click Contact at the top of the site and we can talk about your needs and our services.

  • I have a SQL Server 2008 EE on failover cluster in active/passive mode. The DBs on active node are configured for sync ( high safety ) mirroring. So a total of 3 servers ( 2 for cluster node and 1 for mirroring instance). Do I need license for only 1 server? Or do I also need license for mirror instance ( which is in passive mode as well )

Comments are closed.