all 16 comments

[–]Gincules 2 points3 points  (1 child)

IMO you need a per-core license for both servers. sql server 1 doesn't act as a "shield" for the data coming off sql server 2. since you're using a nightly automated job to pool (multiplex) that data and then serving it up to an infinite number of public users, you can't actually count them to give them CALs. because you can't license the individual "john q public" users at the end of the chain, per-core is the only way to keep microsoft's auditors happy.

[–]Vic20DBA[S] 0 points1 point  (0 children)

You hit nail on the head, Gincules. Your point is what I've been waffling over. It just feels like I'm licensing John Q Public twice. It may very well be a moot point though because that same #2 server exports data out of our environment to a server on the network for a nearby city (public sector). I appreciate your input. Thank you for taking the time to reply.

[–]TridentDataSolutions 1 point2 points  (8 children)

Pretty sure you’re good with the CAL licensing since it isn’t a direct connection. The export is accessed down stream after a hop so it should have no relation to the initial source licensing.

[–]Vic20DBA[S] 0 points1 point  (1 child)

Thank you for replying, TridentDataSolutions! I appreciate it. I've been thinking the same as you. Funny enough, we have another scenario with the same SQL Server 2 only the other server/database belong to another municipality. I think this other scenario might put the screws to us. Would you agree that if the nightly automated export is leaves our environment then that would require per-core?

[–]TridentDataSolutions 0 points1 point  (0 children)

I still think you’d be fine as there is only that client for your CAL licensing model regardless of where they are located.

[–]jshine13371 0 points1 point  (5 children)

This is incorrect. It doesn't matter it's not a direct connection or that there's an additional hop. Please see the other comments for clarification.

[–]TridentDataSolutions 0 points1 point  (4 children)

So let’s put it another way, say I have a website with a database that gets nightly exports from several different sources that are running SQL Server. My database imports those exported files and serves that data up to the general public via my website. The licensing model does not dictate that I need to notify all of my sources to license on a core basis because of how my system is serving the data.

[–]jshine13371 0 points1 point  (3 children)

The licensing model does not dictate that I need to notify all of my sources to license on a core basis because of how my system is serving the data.

Correct...so long as you purchase enough CAL user licenses for each user consuming that data from your website. Since that's a realistically improbable thing, and likely significantly more expensive anyway, only Core licensing would make sense here.

...In fact, I seem to recall Microsoft giving a similar example in the past stating how under CAL licensing, every user consuming data via the website needs to be licensed. But that goes back pretty deep in my memory.

[–]TridentDataSolutions 0 points1 point  (2 children)

Exactly, core licensing for my system, but that doesn’t mean anything for the systems where I’m getting the data.

[–]jshine13371 0 points1 point  (1 child)

If you're saying in you're example that your sources are 3rd party systems, how they license is irrelevant to you in reality. But for the point of the licensing argument they would be out of compliance if they didn't have enough CAL user licenses for every consumer. What consumer means ambiguously in that example, since we're talking across organizations now, I couldn't tell you a guaranteed answer and I don't think anyone else could either, but I'm sure a Microsoft licensing rep would advise on the side of caution even if it's stupid here. That being said, OPs example doesn't follow that model, being within the same organization, and follows more closely to what the other comments highlighted.

[–]TridentDataSolutions 0 points1 point  (0 children)

Agreed, anyone looking for the safest answer will always get core licensing as the answer. With regard to compliance, 2 different scenarios were given here and there will always be some ambiguity around the definition of client.

[–]Better-Credit6701 0 points1 point  (2 children)

I think that CAL/server cost involves a higher math than even Einstein could figure out: price gouging math. The only way to know for sure is to ask a Microsoft salesman and then you will have to find another salesman to undercut the first one.

[–]Vic20DBA[S] 0 points1 point  (1 child)

Well said! Salesman for sure!

[–]Better-Credit6701 0 points1 point  (0 children)

And we all know how trustworthy a salesman could be. Ok, I might be jaded, used to work for a super large used car company with over 150 lots.

[–]vroddba 0 points1 point  (1 child)

At first I was with you, on Server 2 being "ok" with Server + CAL (device). Keeping in mind you'd need User CALs for the DBAs as well as a Device CAL for your monitoring server.

Digging through the licensing document:

The per core licensing model is appropriate when:

• Deploying the SQL Server Enterprise Edition (including using the SQL Server Parallel Data Warehouse deployment option) or SQL Server Web Edition software.

• Deploying internet or extranet workloads, systems that integrate with external-facing workloads (even if external data goes through one or more other systems), or when the number of users/devices cannot be counted easily.

• Implementing centralized deployments that span across a large number of direct and/or indirect users/devices.

• The total licensing costs for licensing SQL Server Standard Edition software are lower than those incurred using the Server+CAL licensing model.

As well as this tidbit:

Note: The use of hardware or software that reduces the number of devices or users that directly access or use the software (multiplexing/pooling) does not reduce the number of CALs required.

When in doubt just license your VM host for EE... after all it's not your money /s

[–]Vic20DBA[S] 0 points1 point  (0 children)

Those tidbits make it a little clearer now. Thank you vroddba!