Possible Duplicate:
Can you help me with my software licensing question?
Running a SQL Server, as far as I understand it, you need one CAL for every user who connects to the database server.
But what happens if the only computer which is accessing the SQL Server is the server running your business layer?
If, for example, you got 1 SQL Server and 1 Business logic server, and 100 Clients who all just query and use the business logic server. No client is using the SQL Server directly, no one is even allowed to contact it.
So, since there is only one computer using the SQL server, do I need only 1 CAL???
I somehow can't believe this would count as only 1 CAL needed for the SQL Server, but I would like to know why not.
You need CAL's for every user of the business logic server, even though there is no direct connection between them and the SQL server. Microsoft use the term "multiplexing" for the scenario you describe.
This is for SQL 2005 but I don't think it is any different for other versions:
Anyone using your Application has to be covered by a CAL, including someone who uses it solely to generate Excel Reports but someone who only receives a copy of one of those Excel Reports by e-mail doesn't.
Edited to add This is just one of many aspects of SQL server licensing and it's only relevant if you choose the Server+CAL licensing model. If you want to get a full understanding of all of the alternatives the definitive document is Microsoft's 63 page SQL Server 2008 Licensing Guide which covers all licensing models and approaches.
Helvick said it all, but I just wanted to add that for your scenario it might be best to go with a processor licensing model, so you would need to pay for each processor on the database server rather than for each client accessing the server. Depending on how many cores your Server has and how much you expect traffic to rise the per processor route could be cheaper.
EDIT: Per Microsoft, Processor Licensing is per-processor, not per-core. So if you have an 8-core processor, you still just need one license, so long as it's a single chip/socket. (In the whitepapers for SQL 2008, they actually make it a selling point, saying that Oracle and others often charge per-core.)
On top of that note that there is different licensing available for internet facing systems - so you dont have to limit the users. Either you grab an internet license (for external users), or actually license through SPLA (Service Provider Licensing Agreement) in those cases.
In your particular case, you would need (if the requirements are accurate) exactly 100 licenses.
100 users, though - may not require ANY CAL - if you can run it on SQL Server Express. The limits are very ok for most scenarios... 4gb per database is quite a lot for many cases.