We're currently running a SQL 2000 server, with around 40 device CALs, covering access to the server from Sage software and a bespoke Sales Order Processing system. Once a night (and also on demand), we export several of the tables in our database into a MS Access database, for use by our web server, running ColdFusion MX7. This data transfer is one-way, as no data is currently fetched back from the MDB file.

In the next month, we're going to install a brand new SQL 2005 server, again on the device CAL licensing model. We were originally planning to connect our webserver to our new SQL server directly, through a proxy, without any intermediate database. However, we're informed that we need to be on the per-processor licensing model for that, as each user accessing the website needs to be licensed (which sounds daft to me, but there you go!) This option will cost us considerably more money, as we have 2 CPUs in our new server.

We're giving some thought as to how, if at all we can get around the issue of needing one CAL for every user in the world to be able to connect to our website. We understand that we will not be able to achieve a live/direct connection to our SQL Server, but were hoping to at least be able to move away from using our MSAccess database and instead, using something like SQL Server Express on our web server and setting up some sort of replication. Which would enable us to use stored procedures and functions to do more with our website, and also to fetch data back from our web server back into our Sales Order Processing system.

Is that a legal way of doing it? Is there a better way to achieve this?

Do something a bit clever with some sort of MySQL in front of your SQL, doing some sort of caching, or something, so there's effectively only one SQL user CAL required because all your web users only hit the MySQL, and not the SQL... ?

"External connection will indeed make a difference: if connecting your SQL database to a web server you would then have to licence every user connecting to SQL via the internet. As such, the per processor model would indeed be the best and most cost efficient model to go for in this case. SQL is licensed per physical processor, rather than by the cores."

I'm wondering if they're telling porkies to sell me a more expensive product. Although, I've not been able to find anything on the Internet to contradict what they've told me.

Do something a bit clever with some sort of MySQL in front of your SQL, doing some sort of caching, or something, so there's effectively only one SQL user CAL required because all your web users only hit the MySQL, and not the SQL... ?

Our new server has two CPUs. The licenses cost £5,510.66 per CPU, so £11,021.32 for us. (We only have 42 clients, which on the server+CAL model would cost us £6,652.21 [£767.59 + 42@£140]).
The extra cost of £4369.11 puts us well over-budget, which is why we're exploring other possibilities.

Using SQL Express to serve data that originated on a SQL Standard server to web users still requires each web user to have a CAL, as this is seen as a way of multiplexing.

The purpose of linking MS SQL was to make use of the stored procedures we have on our server, so that no code had to be re-written

Not an option - we're a business and aren't willing to take a chance with software licenses.

Again, this would be another database to maintain; and code written in two languages that does the same.

Pretty much :(. If we'd realised that we needed CPU licenses in order to connect a web server to our SQL server, we probably wouldn't have bought the 2nd CPU.

We're looking into the possibility of replicating to SQL Server 2008 Web Edition, which we hope will be a slightly cheaper option to us. Somehow, I doubt that it's going to save us a great deal of money, but it's worth looking into.

Once we've moved over to SQL 2005, we're going to have a SQL Server 2000 license + 35 device CALs... I wonder if we could utilize them for the web server?

We already have our Windows Server 2003 R2 x64 server in place. I presume you're talking about installing Windows Server 2008 Datacentre Edition onto the server and using it as a platform for multiple VM's for our SQL server(s)?

I don't think that's going to be a cheaper option, as the OS alone would probably cost a fortune.

Pay £5,510.66 for 1x CPU license, access the SQL data directly from our web server and physically remove one processor from the server

Pay £6,652.21 for 1x Server + 42 CALs, utilizing both CPUs, but forgetting about direct access to our SQL data from our web server. We'd just have to stick to our MSAccess database being created and uploaded once a day.

We're going with option 3 for now. When we come to redevelop our website, we'll purchase a SQL Server Web Edition CPU license at that point (currently £3,486.63), in order to link to our SQL data. Although we don't stand to save much money by doing this, we are going to be able to spread the cost over a 1year+ period, by purchasing the additional licensing only when we need it.

Thanks very much for your help, Tom. It's always useful to talk these things through with another IT professional.

We're going with option 3 for now. When we come to redevelop our website, we'll purchase a SQL Server Web Edition CPU license at that point (currently £3,486.63), in order to link to our SQL data. Although we don't stand to save much money by doing this, we are going to be able to spread the cost over a 1year+ period, by purchasing the additional licensing only when we need it.

Thanks very much for your help, Tom. It's always useful to talk these things through with another IT professional.

No problem! Just in case, is it worth considering a trial version? You can push some for 6 months until you need to pay for the licence...

Is the plan to do a direct replacement of your Access database with SQL Server? If so what attribute of SQL Server is driving your decision?

The reason that I'm asking is if your just looking to go to SQL Server as a direct replacement for access then I would lean toward SQL Server Express in the immediate future and save the money (possibly combining it with next year's budget) to purchase one of the options in the future. This could give you some breathing room and also time to assess whether or not you NEED a full blown SQL Server.

The biggest limitation to SQL Server Express is the 4GB database size limit.

We're currently running a SQL 2000 server, with around 40 device CALs, covering access to the server from Sage software and a bespoke Sales Order Processing system. Once a night (and also on demand), we export several of the tables in our database into a MS Access database, for use by our web server, running ColdFusion MX7. This data transfer is one-way, as no data is currently fetched back from the MDB file.

Hi Jim

As I said, we already have a SQL 2000 server on our internal network.

To clarify, we're upgrading to SQL Server 2005 in 3 weeks time, mainly due to the fact that our accounts department are moving to a new version of Sage accounting software which will benefit from being installed onto an up-to-date SQL 2005 server.

Whilst making the decision of which licensing route to go down, we hit a snag - if we wanted to connect our website directly to our SQL database, licensing became ridicuolously expensive (as we'd be forced down the processor licensing route, of which there are 2 CPUs in our new server) and we found ourselves wondering whether it would be of enough benefit to warrant the extra cost. But at the same time, if we chose a licensing model that would prevent us from EVER connecting our web server to the SQL server, that puts a block on any such development of our customer facing website.

In the end, we made the decision to purchase on the Server + CAL model and then make a further purchase of SQL Server 2008 Web Edition when we redevelop our website. We will continue to use a DTS package to extract our data from SQL to an MDB file, then FTP it to our webserver.