This is what I remember from training about MS licensing. It is probably not be 100% correct but I believe it is close:
In case of MS Software it is more complicated than it looks like. MS Windows Server license doesn't have to be enough. MS as many other companies also uses client access licenses (CAL) = you must pay for every client accessing to your server.
When dealing with CALs you can have multiple options:
- Per user CAL - each authenticated user must have his own CAL
- Per device CAL - each connecting device must have its own CAL
- External connector - usually for Internet where you don't pay for every authenticated user but simply buy (some very expensive) license for everyone. External connector should not be needed for anonymous users.
- Special cases
- Per processor licenses don't require CALs for end users (for example SQL server)
- Special server types don't require CALs (for example Windows Web Server 2008)
More about CALs. CALs are most commonly purchased in some Volume licensing plans because it reduces their price a lot.
Some example how it can be:
You join a company where you will use your desktop machine running Windows 7 Enterprise + Office 2010. You will also use MS Exchange and MS Sharepoint. You need:
- License for Windows 7 Enterprise
- License for Office 2010
- CAL License for Windows Server because both MS Exchange and MS Sharepoint are running on Windows Server (one CAL user call per product can be used to connect to every instance of the product => the price of CAL is same if you need to connect to single Windows Server or to 100 Windows Servers within company).
- CAL License for Exchange
- CAL License for Sharepoint
- SQL server used for Sharepoint must use per processor licensing or you will also need CAL to SQL server
Price of CALs differs per server version so CALs for Enterprise versions are much more expensive than CALs for Standard versions.
You want to run Windows Server hosting your business application which internally connects to MS CRM and MS SQL. The application requires user to authenticate. You need:
- Windows Server license for App Server, CRM and SQL
- CRM license
- Per processor SQL license
- External connector for Windows Server Enterprise
- External connector for CRM because you exposing information from CRM to external users
So as you can see the licensing costs can be very different per application and requirements. The important is that these costs should bother you only if you host the application on the servers where you are responsible for licenses. In shared hosting / VS hosting / or cloud it should not be the case because you pay for hosting plan which should already offer you SW with correct licensing.
Edit: There is also possibility that hosting companies have different licensing options.