views:

3514

answers:

5

Can you please explain the difference between MS SQL Device and User CAls. I need the MS SQL Server for an intranet website, how do I assess whow many license I need and what type?

+1  A: 

As quoted from this article:

If you're using SQL Server to back a Web application, you probably don't have any choice: unless you want to buy a CAL for every user or computer that hits your Web site, you need to purchase processor licenses. On the other hand, for internal applications you may be better off with CALs if there are a limited number of devices or users that will access the SQL Server.

So, do a break-even analysis - how wide is the audience for this web app, would you ever want to use the same SQL instance for other webapps, and would the total number of users exceed the cost of a processor license?

Most likely, a processor license will be the way to go.

Greg Hurlman
+1  A: 

The difference is simple:

CAL = Client Access License (nothing to do with MS-Access tho). Device = Device License.

So the difference relies on how you want your users to connect.

If you have 10 users, you'll need 10 licences. Either CAL or Device. This is best described by Microsoft itself:

Device CALs. Optimized for non-Web-based scenarios in which there are multiple users per device (for example, kiosks). A license is required for the computer running SQL Server 2005, as well as a CAL for each client device.

That means, you have 10 users, but 5 computers. So the users "share" the Licence. The licence belongs to the device (computer or whatever).

On the other hand…

User CALs. Optimized for non-Web-based scenarios in which there are multiple devices per user (for example, a laptop, PDA, and home PC). A license is required for the computer running SQL Server 2005, as well as a CAL for each user.

You could have only 5 users, but each user has two computers (One laptop and one desktop). The license "belongs to the user". So when you (the user) login, you're using your CAL. If you logoff, you can later relogin from another computer, using your USER CAL.

Hope this helps :) It's a little bit weird.

In your case, since you're going to use an intranet website, the connection is always established from the server's backend to the SQL, you might want to consider Processor License; In that scenario, you pay per processor on the server (CPUs) and need neither User CAL nor Device CAL. If you talk to Microsoft, they'll often offer you the best alternative for your scenario.

Good Luck!

Martín Marconcini
+2  A: 

Well, there's a big difference between a Device and a User CAL.

  • Device CALs provide access to a "device" (namely a client computer most of the time), no matter how many different users have login access to that device.

  • User CALs provide access to a "user", that can login from as many "devices" as he wants.

So, how to decide? Depends on your architecture. The rules are simple:

  • You have more devices than users accessing the database: buy "user" CALs. An example of this might be an organization where you have just 3 users connecting to the server using any of 10 computers (not a far-off case, considering laptops, other servers, etc.).

  • You have a lot of users accessing a server through an small set of devices: buy Device CALs. An example of this would be a library, where you have (say) 10 people accessing the server through 3 terminals in the building. In that case, buying just 3 Device CALs will cover the accesses to the server y any of the users.

  • You have a number of users accessing the server through an specific computer: buy Device CALs. An example of this is a recruiting agency, where consultants are variable (you might be hiring new people all the time, or you might have part-time workers sharing a single desktop at different times of the day). In fact this is just a case (considering future hires/part-timers) of the previous rule.

Be sure to take into consideration how the user/device map might grow in the future.

dguaraglia
A: 

This is a server app where the application server would access the database all the time hiding the user. I am thinking to go with device license, because it is always the same machine who is going to access the DB. Is this the correct thinking?

gyurisc
+1  A: 

No, I'm sorry. That would not be OK according to the licensing terms. This kind of design where multiple users uses an SQL-server but connects through an application server is called Multiplexing. This application server can be anything from a 3rd-tier service to a simlpe webserver. To prevent people to simply running their database enabled systems through webservices or simple application "proxies" to avoid licensing costs Microsoft has specifically designed their licensing to prevent this.

So, basically. If you run website (public or intranet) that connects to an MS SQL Server you would need CAL's for every possible user. Unless, ofcourse, you purchase CPU-licenses.

But they are enforcing this only through licensing, aren't they? So while I will follow closely the number of users are using the DB, I will not have problems where the latest user will be unable to connect because I have only x number of user licenses and he is the x+1th user
gyurisc