Licensing Microsoft products always seems to be an overly complicated affair and virtualization doesn't make the task any easier. As a basic rule of thumb, you should consider a virtual machine (VM) to be the same as a physical server. While there are exceptions, you should figure on buying licenses for the OS that runs on the VM, server software such as SQL Server, and any CALs.

However, there are exceptions. The Windows Server 2008 editions allow the following number of virtual instances with no additional licenses:

  • The Standard Edition allows one virtual instance.
  • The Enterprise Edition allows four virtual instances.
  • The Datacenter Edition allows an unlimited number of virtual instances.

This holds true no matter what virtualization technology you use.

SQL Server offers three licensing options:

  • Per server and client device
  • Per server and user
  • Per processor

Per server licensing is rather straightforward for virtualization. Each VM running SQL Server requires a server license. The licenses for client devices or users for a VM installation are the same as those for a physical server.

When using SQL Server's per-processor licensing for a VM, you license the virtual processors in the VM—not the physical CPU in the virtualization host. However, there's an exception when using SQL Server 2008 Enterprise Edition. If you opt for per-processor licensing for this edition and you license all of the CPUs in the host, you can have an unlimited number of SQL Server instances running on VMs with no additional licensing costs. You can download more information about SQL Server licensing by clicking here.