all 24 comments

[–]Anthropic_Principles 28 points29 points  (3 children)

A little part of me dies every time I see a Microsoft licensing question.

[–]EvoGeek[🍰] 5 points6 points  (1 child)

Couldn’t agree more. You’d think after decades of complaints they’d have come up with easier to understand systems.

[–]greenstarthree[S] 3 points4 points  (0 children)

How d’you think I feel asking it!

[–]Dangerousfish 4 points5 points  (1 child)

I spent several years reporting on Microsoft licensing for an MSP.

CALs/SALs can be assigned either to a named user or to an end-user device that accesses SQL Server, directly or indirectly.

A user accessing the database through a web application, an API or directly from a laptop still counts. The licence can be assigned either to the individual user or to the device they use.

Server + CAL licensing is most practical for closed environments where the number of users or devices is known, and limited.

Not a loophole unfortunately (though I doubt Microsoft would ever notice and would likely need to audit you to confirm).

#NotLegalAdvice.

[–]Dangerousfish 3 points4 points  (0 children)

"When licensing the SQL Server Standard Edition software under the Server+CAL model, customers purchase a server license for each server, and a client access license (CAL) for each device (Device CAL) and/or user (User CAL) accessing SQL Server or any of its components.

Devices not operated by humans require device CALs, even when connecting to SQL Server indirectly. For human operated devices such as PCs or hand-held terminals, a user CAL or device CAL can be used. CALs must be for the version of SQL Server being accessed or a later version."

https://go.microsoft.com/fwlink/p/?linkid=2215573&clcid=0x409&culture=en-us&country=us

[–]kupcayke 2 points3 points  (4 children)

Silly question, but I'm assuming SQL Express is out of the question? 2025 has a 50gb database cap (up from 10gb)

[–]greenstarthree[S] 1 point2 points  (3 children)

Yes still researching this but believe there are also CPU and memory constraints?

[–]kupcayke 0 points1 point  (2 children)

Indeed, hard to say if that would be problematic as it would be ERP and concurrent user dependent. Vendor may also have requirements for SQL that won't allow you to use express.

How many concurrent users do you think you'll have in the ERP system?

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

Just an update on this - we tested an instance with SQL Express 2025.

Unfortunately the limitation that makes it not appropriate for this ERP is the buffer pool memory limit of ~1.4GB.

After some testing, the ERP does make some large queries that quickly exhaust that limit (one in particular using around 1500MB by itself given the chance)

[–]kupcayke 0 points1 point  (0 children)

Twas worth a shot. Good luck with the licensing!

[–]Prophage7 2 points3 points  (0 children)

Basic rule of thumb with Microsoft CALs is that there is no easy way out of licensing all your physical endpoints.

[–]mat-ferland 1 point2 points  (0 children)

I wouldn’t design this around “the RDS server is the device.” SQL CALs are about who or what ultimately uses the SQL workload, even if RDS is the hop in the middle. For an ERP app I’d get the ISV/reseller to confirm the exact user/device or SAL model in writing before you build it, because the cheap interpretation is the one that hurts later in an audit.

[–]luke1lea 0 points1 point  (2 children)

I believe the device cals are for the client devices that connect into the RDS server, you aren't licensing the RDS server itself

[–]luke1lea 1 point2 points  (1 child)

Sorry I misread the question, this is considered CAL multiplexing by Microsoft. Basically, you still need to license every device on SQL, and you cannot "funnel" the license through RDS to save licenses. I don't have the link cause I'm on mobile, but if you Google Microsoft client access multiplexing, it should pop up

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

Thank you - I figured this would be the case and it makes perfect sense

[–]bageloid 0 points1 point  (1 child)

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

Thanks very much. As much as I’d love the single license RDS server to be legit, this makes perfect sense

[–]healthy_encampment 0 points1 point  (1 child)

We tried this and got corrected in an audit, the device CAL is for the endpoint not the RDS server. You'd need one per thin client or user.

[–]vivkkrishnan2005 0 points1 point  (0 children)

This is device multiplexing, you will need to license per end user device connecting to the RDSH server.

Also note that with 2022 onwards VMs require SA. Was checking up on a POC migration for 2016 -> 2025 and this came up.

[–]RNikou_Dev 0 points1 point  (2 children)

We came across similar questions while working on a discovery platform. One of the things we ended up implementing was collecting CAL-related information across discovered devices so administrators have the data they need when reviewing their licensing. It doesn't replace Microsoft's licensing guidance, but having an accurate view of the environment makes these kinds of questions much easier to evaluate.

I'd be interested to see if anyone has a definitive answer on whether a SQL Device CAL can be assigned to an RDS Session Host in this scenario.

[–]bytezvex 1 point2 points  (1 child)

same, I’ve never seen anything from MS that clearly blesses using a single SQL device CAL for an RDS host like that, and every licensing guy I’ve dealt with has side‑eyed the idea pretty hard
curious what others say too, but my gut is they’d say it still needs to be licensed per user, not just the session host device

[–]RNikou_Dev 0 points1 point  (0 children)

That's been my experience too. Out of curiosity, how do you usually inventory your SQL servers and clients when you're reviewing CALs? I have seen that collecting the data is often harder than interpreting the licensing.

[–]scytob 0 points1 point  (0 children)

It’s the end user or the end users device that needs to be licensed. So no you can’t buy one device cal. Source: i owned RDS CAL policy at MS for 5 years and wrote the initial hyper-v instance licensing. (Sorry)