I was recently at a client site and we started talking about SQL Server licensing, specifically for their development and testing (they call it staging) environments. The client said that they purchased regular licenses for their staging environment but that they had MSDN Professional (“Visual Studio Professional with MSDN”) licenses to cover their developers. At this point I started to talk to them about SQL Server Developer Edition and how MSDN subscriptions – while they give you a boatload of available installable software – were intended for individual use and not for shared environments. I dug a little online and could not find anything definitive so I told the client I would call Microsoft.
Before I did that I turned to my primary help resource - #sqlhelp on Twitter. I referenced a blog post I found (but of course anyone can write a blog) talking about how to set up a lab with MSDN subscriptions and asked the question:
This question brought several responses from what I consider reliable technical sources saying “of course it doesn’t work that way” which is what I expected.
I called Microsoft licensing today and to my amazement, the MSDN subscription answer appears to be correct, as long as you are careful to have an MSDN subscription of the appropriate level to include SQL Server (currently Professional or higher as shown here) for each of the developers in your environment.
I asked the Microsoft Licensing rep a couple of key questions and here are his answers:
Q: “So if a shop of twelve developers has twelve MSDN subscriptions does that mean they can install 50+ Enterprise Edition SQL Servers for development and testing?”
A: “Yes – as long as all individual developers have subscriptions that include SQL, they can install as many servers as they want”
Q: “The MSDN Licensing page (http://msdn.microsoft.com/en-us/subscriptions/cc150618.aspx) says that ‘IT Pros that install a test lab’ need subscriptions as well – so if my hypothetical twelve developers have two DBA’s that install their dev/test SQL Servers for them, I just need fourteen MSDN subscriptions to be covered for as many copies of SQL as I want in dev/test?
Q: “What about end-users that test the software? Do I need MSDN subscriptions for all of them too?”
A: “No – if you look at the Visual Studio 2010 and MSDN licensing white paper you will see a section titled ‘Acceptance Testing’ that describes the following:
At the end of a software development project, end users (or team members such as a business sponsor or product manager acting as proxies for end users, particularly in cases where it’s infeasible or impossible for the actual end users of the program to participate) typically review an application and determine whether it meets the necessary criteria for release—a process often called user acceptance testing or UAT. MSDN software may be accessed by end users who do not have an MSDN subscription for purposes of acceptance testing, provided that the use of the software otherwise complies with all MSDN licensing terms. It is rare that someone whose primary role is designing, developing, or testing the software would also qualify as an “end user.”
Under MSDN licensing, acceptance testing must not use live production data. If a copy of any live production data is used, then that copy of the data must be discarded after the testing is complete and cannot be incorporated back into the live production data.
As you can see in this blurb, QA staff (whose primary role is to test software) would not qualify as end-users and as such would need MSDN subscriptions as well under this scheme.
This call still blows my mind – for a little shop, MSDN subscriptions (which generally run $1000+ per year at list price) are expensive and make this scheme undoable compared to SQL Server Developer Edition licenses at $40-$50 each, but for a shop of any size, especially one that may already have MSDN subscriptions for their developers as part of doing business, this could save some money (*especially* if you aren’t using SQL Server Developer Edition in dev/test!)
Near the end of my #sqlhelp conversation the other day I had this exchange:
Maybe I finally found something that does work the “beneficial” way in licensing – it must be a trick! ;)