Is User Acceptance Testing Covered Under Developer Edition?


Holy mackerel, it is!

I tend to think of development environments as SQL Servers where customers are surely never allowed to enter, for fear that the licensing dollars will pile up like banks of snow around the gates to the instance.

But there’s an exception. Check out this screenshot from Microsoft’s SQL Server 2016 Licensing Datasheet:


Developer Edition allows for users of an application to do acceptance testing– I’m not a licensing salesperson, a Microsoft employee, a lawyer, or Doctor House, but this wording is pretty clear on the subject to me.

And Developer Edition is now free for SQL Server 2016 and 2014 via membership in the Visual Studio Dev Essentials program.

Not only is that awesome, it’s even more awesome than I thought it was.

Update: the SQL Server 2014 licensing guide is a bit longer, and notes that there’s a limitation:

Customers cannot use the software in a production environment, and any test data that was used for design, development or test purposes must be removed prior to deploying the software for production use.

So be very careful if your User Acceptance Testing environment is used to “stage” data that is later restored to production. Per the 2014 rules, that is a production system.

Previous Post
How to Level Up Your DBA Career (Dear SQL DBA)
Next Post
MAXDOP of Confusion (Dear SQL DBA Episode 8)

Related Posts

No results found

40 Comments. Leave new

  • I wonder….are testing restores (restoring, running CHECKDB, etc…) covered?

    • Regularly restoring a database for the purpose of running CHECKDB (so it doesn’t have to be run on the production database) is a super gray area. That’s like *murkey gray*. I would check with your own licensing reps on that one, because I’ve heard it interpreted a couple of different ways.

  • Hello Kendra,

    Regarding the statement “So be very careful if your User Acceptance Testing environment is used to “stage” data that is later restored to production. Per the 2014 rules, that is a production system.”,

    If I’ve got ServerA for Acceptance testing and ServerB as Production, does the above statement mean that after am done with my acceptance testing on ServerA, I cannot upgrade my Acceptance testing environment ServerA to be a Production server unless I delete all the data from it?

    Or does it mean that once am done with acceptance testing with the data on ServerA, I cannot transfer that data to Production ServerB? -> I hope this is not the case as to then how would I follow the Development process to push the data from test to Production environment unless it goes into Acceptance phase?

    • This question rises for us as well. We sell software that also runs an SQL Server database. Typically changes are configured and tested on acceptance environments at the customer. E.g. GUI settings but many more. After testing, we export these configurations (which is thus data from SQL Server perspective) and import them on production. Is this allowed? It could potentially save money for our customers if we use developer

      • In this case you’re using the environment at the customer to configure their production settings, so that is a production usage — not OK for Developer Edition.

        If you were having the customer just test out the system for pure UAT, and then the customer went into the dedicated production environment and configured it separately, that would be different and the UAT environment would be suitable for Developer Edition.

        For your use case, I actually wonder if Evaluation Edition might be a fit for you? It sounds like what is happening is that you have a temporary evaluation going on at your client, which goes away after this initial period?

        • Kendra,

          What if you make configurations, but then update those configuration after restoring the database to a production environment?

          I’m trying to tell people we could be violating the Developer Edition usage terms by making configurations and then either keeping or just updating them when we migrate the database to production. Removing everything from the database is not something people like to hear.

          • It sounds like what you’re doing is configuring a database for production, which is a production use. I agree that does not sound like it meets the approved uses for developer edition.

            Is there a reason that you can’t just create the database fresh in production and use scripts to configure it in production?

          • The yellow highlighted words sound like Developer Edition covers the usage of Demonstrations and Training?

  • […] When an environment is being used for development, it can be licensed with the free Developer Edition (even if you do user acceptance testing in it). […]

  • […] Note that these changes don’t apply to Developer Edition. It continues to have all the features of Enterprise Edition, and it’s free (aww yeah), but it’s only for non-production environments. […]

  • Hey Kendra

    How would this work if your production server is standard edition?

    Developer edition mirrors enterprise so there is a risk of the features passing in UAT but failing in production.

    Would the approach be to install standard edition on UAT? If so will I have to licence each environment fully or can I license them like I would developer edition?

    Thanks and great blog/podcast! Keep up the good work 🙂

    • If you install Standard Edition, you need to pay for Standard Edition. So I’d stick with Dev Edition.

      One piece of good news– with most “programmability” features becoming available in Standard Edition, this becomes less of a concern with SQL Server 2016 SP1. In that case, you might want to make sure that if columnstore is in use, that it’s not using more than the parallelism allowed in Standard Edition, and you could configure max memory to give you effectively similar limits to Standard.

      Below SQL Server 2016, you can use sys.dm_db_persisted_sku_features to check and make sure Enterprise features aren’t in use:

      There are some Enterprise features like merry go round scans and advanced read ahead which you can’t turn off, but generally that difference isn’t worth the licensing dollars.

  • Hi Kendra,

    Can we use SQL Server 2014 Developer edition for UAT environment.


    • Yes, should be fine. There’s the limitation I mention in the article where you can’t stage data in UAT and then transfer it to production later, but that doesn’t prevent you from using it for UAT.

  • […] licensing this type of server is a “murky gray” area and you should consult with your organization’s licensing […]

  • Hi Kendra,

    I have a concern and cant seem to find the appropriate answer. We have SQL Server 2014 Standard installed on our production server (Hosted by another company). We (the developers) logon a VM Server which is with another provider. Currently we (the developers) have express installed on the VM’s to tap into the main server (Standard Version), but this obviously does not provide all the standard features (SSIS, SQL Server Agent etc). Would we be able to use the Developer Addition on the VM in order to have these capabilities. We have CAL licences for the developers… dont know if this will help. What would be your suggestion on this?

    I don’t understand that the developers don’t get the same version software to access the production server. Is this the reason that there is a developer edition that you can download for free… or do you need some kind of license for that too.

    Your help will be appreciated. Thank you

    • Hi there,

      The licensing is all about what you’re using it for. “Tap into the main server” sounds like it would be to manipulate data for customer purposes, if you want things like SSIS and the SQL Server Agent. That would be a production use of the data and would not be covered under Developer Edition licensing.

      To put it in another way, Developer Edition is meant to cover development and testing activities only. So you could design and test an SSIS package using Developer Edition to make sure it works — but you couldn’t run the package against production data or use it for a customer for anything other than User Acceptance Testing (making sure the feature works before it’s deployed to a real production environment).

      Hope this helps!

      • Hi Kendra,

        Thank you for your assistance. I understand much better now. I have another question for you. I have come across a better price for a license and just wanted to confirm that this is the correct license I am going for as I am not really sure what NL and OLP is. I know it means No Level and Open License Program but not sure what that is. The full name that i got from the Support Department is as follows: SQL Sever Standard Core 2017 Single OLP License NL Core License. Would this be the correct license to get so that I can use all the SQL Standard features in the Production environment. I woul dlike to confirm as I dont want the company spending money on the wrong licenses.

        I really appreciate your assistance.

        Thank you.

        Ruahl Behr

        • Hi Ruahl,

          It sounds like you could use an explanation from Microsoft themselves in this case. You want assurances that you’re purchasing the correct license, and no matter what *I* say, I don’t work for Microsoft or sell licenses. I would recommend that you contact Microsoft reps and talk your situation through with them, so you can ask each other questions — and then you’ll get the type of assurance that’s meaningful.


  • Would a front end web application that is used for multiple purposes such as UAT, demos, support, QA, testing and training with a SQL Developer Edition back-end be an acceptable use? Would one function or more need to be moved to a different server?

    Databases and data are never moved to production and deleted frequently.

    • Support and training sound potentially like they wouldn’t be covered.

      If the support is for end-users with issues with a production environment, that’s a production use. If the training is for end-users for active business purposes, that sounds like a production use as well.

      If the support is IT people supporting developers testing code, that sounds like a development activity. If the training is for QA people or for developers for the purpose of learning to build the product, that sounds like a development activity.

      The exceptions for the use all read to me like simply, “Yes, it’s OK to let customers peek at your dev environment to give you feedback, just for the purpose of developing your product.”

  • Hi Kendra,
    SQL 2016 licensing guide has additional statement comparing to SQL 2014 ones – “SQL Server Developer Edition may not be used in a production environment !!! or with product data !!!.” which looks suspicious for me.
    It is clear that moving data from UAT to PROD requires prod license for UAT. But what if we restore PROD db on UAT for testing App with new SQL SP or new App version? Formally in this case UAT holds production data.

    • Data restored to a development environment and used purely for development or UAT is not “production”. The guide is very clear at defining “production” as an environment accessed by end users that’s used for more than gathering feedback or UAT. Once the data has left that environment, if it’s only used for gathering feedback or UAT, it’s no longer production data.

  • Hi Kendra, we are looking to install SQL Server to serve a number of public demo websites to display our product to potential clients. The databases contain sample data only and never production. The information here indicates we can use Developer Edition to do this. I just want to clarify as I would not like to fall foul of any licensing issues.

    • That definitely sounds like a sales use to me. Sales is not the same as UAT. My understanding is that UAT is for existing clients, just testing that a new feature being added meets their expectations and functions as designed. Sales to me is a business activity to attract new revenue.

      Are the databases small enough that you could just use Express Edition?

  • So if we have a test environment for something like Great Plains (i.e., software we did not develop, but need to test an update before running the same update in production), would that fall under the development/testing license? Assuming that Great Plains and the OS are licensed…

  • Hi, Kendra,

    We’re about to build a new NAV 2017 infrastructure and we decided to host it in Azure. Our PROD DB will go to Azure SQL, but we didn’t feel like creating 2 additional Azure SQL DBs for the TEST and DEV environments. Another option is to do a “sandbox” installation where NAV server and it’s DB are all on one VM. We need to install a local SQL instance on these 2 VMs and Express is not an option because of the limitations. Is SQL Developer edition OK for this use-case? We will not access production data from these environments – we will only do developments and tests and will transfer those developments to the PROD server. From time to time we will have to refresh the TEST/DEV DBs with data from PROD.

  • Hi,

    We would like to make an upgrade of a third-party application, which uses SQL Server as a DB Server. The whole process is being made by an outsourcing company (so not our workers). We would like to backup the production data, then anonymize it where needed (personal and senstitive data) and then give access for the environment for the outsourcing company, so that they could prepare and test migration scripts. The environment will not be connected to any production server and the anonymized data would not be used for any other purpose that to design and test scripts.
    1. Could we use a Developer Edition for this purpose?
    2. Can we use a Developer Edition for the anonymization process or we should anonymize the data on the production database and just copy it and restore ready?
    3. Are there any restrictions for usage of the SQL Dev. Edition server by the 3rd party developers ?

    We want to develop and test everything on this free license and then (where everything is ready for usage but requires a real data testing only), test it on a production data on a core licensed PRE-production servers.

    • Hi,

      I think this is a bit simpler than you may be worried. What you need to ask yourself is, “is this a production use of the data?”

      None of those sound like production usage to me, you describe them all as part of a development process.


  • I’m sorry I am late to the party. I know the Enterprise Features are all available. Are there any technical implications of running Development Edition on a server-class machine? CPU/core, memory, etc, limitations?

  • Hi Kendra, I wonder which one is the right way of getting the Developer Edition for a test environment (at the customer side) used for acceptance tests: We (the company creating the software the customer want to test before installing the new releases) are creating/using a Visual Studio Dev Essentials account to download the SQL DevEd – or – the customer creates a Visual Studio Dev Essentials account itself (perhaps with the help of us). Thank you very much!

  • […] Developer: my default choice for all test and dev environments. Now free. Review the definition of non-production environments as there are some caveats – Is User Acceptance Testing Covered Under Developer Edition?. […]

  • Could you perhaps help with the following scenario: We have and outward facing production SQL server running SQL Server 2016 Enterprise edition. We want to replicate some of this data to a different server for internal reporting and BI dashboards. Would it be legal to install SQL Server Developer Edition on this partially replicated server?
    And the same question applies if we want to run a data warehouse server that sources some data from the production server – can we install Developer edition on this data warehouse server?
    The theory is that it will be fine, because all DW data, BI data and reporting is for internal purposes only

    • These sound clearly like production use cases to me — the delineation is not whether the users are internal or external, but whether the use is purely “is this new column in the table?”

      A parallel example is that developer edition is not allowed for the databases behind monitoring applications used by internal folks. Same for reporting.


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.