SQL Server Licencing

pilks

Well-Known Member
Joined
Oct 9, 2009
Messages
129
Reaction score
0
I am currently writing a program for a company and they have a SQL Server 2005 installation running.

My program is a Silverlight Based internal project. It gets data via a web service that is hosted internally which connects to a Database for data. We make use of SSRS for reporting which pulls from the same DB.

Now the Microsoft guy told them they would need a CAL for every user who uses the system. However it is my thought process that says , it is a single user(web service cloud) connecting to the DB to get the user and then delivering the data to the connected clients. I would need a CAL for SSRS too .
So total count of CALS in my mind would be 2 and not 1 for every user in the company

Is the Microsoft guy right or am I right ?
 
I am currently writing a program for a company and they have a SQL Server 2005 installation running.

My program is a Silverlight Based internal project. It gets data via a web service that is hosted internally which connects to a Database for data. We make use of SSRS for reporting which pulls from the same DB.

Now the Microsoft guy told them they would need a CAL for every user who uses the system. However it is my thought process that says , it is a single user(web service cloud) connecting to the DB to get the user and then delivering the data to the connected clients. I would need a CAL for SSRS too .
So total count of CALS in my mind would be 2 and not 1 for every user in the company

Is the Microsoft guy right or am I right ?

Yeah, unfortunately CAL doesn't refer to Windows account, it refers to a consumer of the data. I had the same issue and it turns out cheaper to use the per processor model with licensing SQL in many cases since you can't always count your users. Not sure where the threshold is on the per model where it becomes cheaper per processor - I recall 20ish? Perhaps it was 10.

The bottom line is that anyone who uses a web app that itself refers to SQL is considered a user of the SQL system.

I also can't see the logic here but it's all about the money to M$
 
Not to familiar with the specifics but because your Web Server is running under a single account, should only need one CAL as only one user is accessing the database even if the application had multiple users. Different story if you're passing thru credentials from the app to make the actual connection though.
 
Not to familiar with the specifics but because your Web Server is running under a single account, should only need one CAL as only one user is accessing the database even if the application had multiple users. Different story if you're passing thru credentials from the app to make the actual connection though.
Not so, like I said, MS require one license per consumer of the data in their per user model... read [user of the application that uses webservices to retrieve data] to serve it's users. This is not a physical limit, it's a logical licensing and legal issue.

The principle is the same as... you can listen to a song you bought on the CD it came with but you can't legally rip it, stick it on your phone, MP3 player and home media system or broadcast it without paying more.

Heck, even if you don't have ANY CALs the app will work.... illegally.

Example: You have an n-tier architechture app with a server running IIS for your front end, another server running SQL and .Net remoting connecting the two. Your IIS maching is being used in an intranet environment by 7 users...

7 CAL per user license is ideal.
BUT
If it is being used publically by all and sundry, then a per processor license is the affordable option since you can't actually count your users.
Nowhere ini these two models do more than one user account or machine access the SQL instance - only the server via .Net remoting. That, however, has nothing to do with the consumers of the data itself. A user is a person who consumes the data, even if the data is never displayed on the screen, but used to authenticate or whatever, the app you created used SQL and is being operated by x number of users. X is the number you need to take into account.

I've been through this before with MS. Now you know why Postgres/MySQL/etc are popular for web servers.
 
Last edited:
Nothing quite as complicated as MS licensing....

In short, for SQL Server, everyone consuming the service (directly or indirectly) needs a CAL. You're also using SSRS, so everyone using the reports needs a CAL, the same CAL would be valid for both the database engine and SSRS provided they are part of the same installation.
 
I see what you mean, had a browse around the interwebs and the consensus is to only use the CAL scheme for internal, limited use applications. Any websites should use CPU licensing. You mention the company already has a SQL Server running, maybe they already have CPU licensing. If not, will need to either change it or get new server/licenses.

Alternatively, use SQL Server Express :D (for a small amount of data of course).

But seriously, the main difference between standard and express are:

- Four CPUs vs One CPU
- 64GB memory vs 1GB memory (maximum)
- 524PB :sick: vs 10GB database
- Some other stuff that might be important for you-

http://msdn.microsoft.com/en-us/library/cc645993.aspx
 
Thanks for the information. This is very unfortunate. The company is not willing to change its licencing manner due to their lack of understanding of the situation and the Outsourced IT company that handles their infrastructure being deemed GOD. I am only a grad doing a part time and my influence is limited.

I have been using SQL Express and SSRS express and it does suit my applications needs. My database wont grow bigger than 1gb in 3 years so it is actually fine.

Does SSRS express support the use of webservices as a datasource like SSRS Full?
 
Not sure, but this might help
http://social.msdn.microsoft.com/Fo...s/thread/3de2eb6c-cfbd-48fd-a592-433e13537e6c
and
http://msdn.microsoft.com/en-us/library/ms365166.aspx
Programmability in SQL Server Express
The Report Server Web service can be accessed programmatically. Although you can access all of the report server SOAP endpoints, you cannot use all the features. If you cannot use a method, Reporting Services returns an error. For more information, see Programming Features for Reporting Services Editions.
 
Thanks for the information. This is very unfortunate. The company is not willing to change its licencing manner due to their lack of understanding of the situation and the Outsourced IT company that handles their infrastructure being deemed GOD. I am only a grad doing a part time and my influence is limited.

Infrastructure has an enormous governance task - it may seem they make things difficult - but in the end they are responsible for it

...and #$@%! expensive lol, though the price is less of an issue than the complexity in my books.

Remember SQL Server is a beast - and apart from the database engine, its packaged with enormously powerful tools - the complete BI stack actually - and geared for performance and scalability in enterprise environments.

Have you seen what Oracle charge? And that does not even include reporting / data transformation et al, you have to buy those (very expensive) products like SAS / Business Objects separately...
 
I think its easier to learn php+ajax+html5+mysql than it is to fathom MS licence agreements.
 
Not to familiar with the specifics but because your Web Server is running under a single account, should only need one CAL as only one user is accessing the database even if the application had multiple users. Different story if you're passing thru credentials from the app to make the actual connection though.

The scenario you are describing is multiplexing, this is not allowed when doing SQL server CAL calculations.
 
I think its easier to learn php+ajax+html5+mysql than it is to fathom MS licence agreements.
+1 lol
Or get through to them to ask a simple licensing question. It's like trying to phone your local telkom office (as opposed to the national call center).
 
Top
Sign up to the MyBroadband newsletter
X