一、SQL Server on Linux许可证概述
自SQL Server 2017开始,微软正式支持Linux平台,Ubuntu是最受支持发行版之一。了解SQL Server在Ubuntu上的许可证要求,是企业合法合规使用数据库的前提。
1.1 许可证核心原则
SQL Server在Linux上的许可证模式与Windows版完全一致,遵循以下核心原则:
- 按核心授权:服务器+客户端访问许可证(CAL)模式或按核心计费模式
- 版本对应:不同版本功能差异大,许可证要求不同
- 环境区分:生产环境和开发测试环境许可证要求不同
- 合规审计:微软定期进行许可证合规审计
1.2 支持的Ubuntu版本
| Ubuntu版本 | SQL Server 2019 | SQL Server 2022 |
|---|---|---|
| 18.04 LTS | ✅ 支持 | ❌ 不支持 |
| 20.04 LTS | ✅ 支持 | ✅ 支持 |
| 22.04 LTS | ✅ 支持 | ✅ 支持 |
| 24.04 LTS | ❌ 不支持 | ✅ 支持 |
二、SQL Server版本与许可证类型
2.1 主要版本对比
| 版本 | 许可证类型 | 核心限制 | 适用场景 | 价格参考 |
|---|---|---|---|---|
| Express | 免费 | 1核/1GB内存/10GB存储 | 小型应用、学习 | 免费 |
| Developer | 免费(仅限开发) | 无限制 | 开发测试环境 | 免费 |
| Standard | 付费 | 4核/128GB内存 | 中小型企业 | $931/核心 |
| Enterprise | 付费 | 无限制 | 大型企业 | $5,437/核心 |
| Web | 付费 | 4核 | Web应用 | 约$400/核心 |
2.2 两种许可证模式详解
模式一:按核心许可(Core-based Licensing)
适用场景:面向互联网的公共应用、无法控制客户端数量的场景
规则:
– 按服务器物理核心数购买许可证
– 需要购买最低核心数为4核(即使实际使用少于4核)
– Enterprise版必须使用此模式
– 不需要额外购买CAL
计算示例:
服务器配置:双路E5-2680v4(共28核)
所需许可证:28个核心许可证
(最低按4核起购,实际按28核购买)
模式二:服务器+CAL许可(Server+CAL Licensing)
适用场景:内部应用、客户端数量可控的场景
规则:
– 购买服务器许可证
– 每个连接用户需要1个CAL
– 仅适用于Standard版
– 客户端数量较少时更经济
计算示例:
1台Standard服务器许可证 + 50个CAL
成本可能低于按核心许可
2.3 两种模式成本对比
| 场景 | 核心数 | 用户数 | 核心模式费用 | 服务器+CAL模式费用 | 推荐 |
|---|---|---|---|---|---|
| 小型内部系统 | 4核 | 20人 | $3,724 | $1,831 | 服务器+CAL |
| 中型内部系统 | 8核 | 50人 | $7,448 | $5,931 | 服务器+CAL |
| 大型内部系统 | 16核 | 100人 | $14,896 | $13,331 | 看情况 |
| 公共Web应用 | 8核 | 不限 | $7,448 | 不适用 | 核心模式 |
| 大型公共平台 | 32核 | 不限 | $29,792 | 不适用 | 核心模式 |
三、免费版本详解
3.1 SQL Server Express
许可证要求:完全免费,无需购买许可证
技术限制:
– 最大1个CPU核心(可识别1个插槽)
– 最大1GB内存
– 最大10GB数据库文件大小
– 最大10GB日志文件
适用场景:
– 小型网站后端数据库
– 桌面应用嵌入式数据库
– 学习和原型开发
– 数据量小于10GB的轻量应用
在Ubuntu上安装:
# 添加仓库
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)"
# 安装
sudo apt update
sudo apt install -y mssql-server
# 配置时选择Express版本
sudo /opt/mssql/bin/mssql-conf setup
3.2 SQL Server Developer
许可证要求:免费,但仅限开发和测试环境
技术限制:无限制(与Enterprise版功能完全相同)
重要约束:
– ❌ 不可用于生产环境
– ❌ 不可用于向最终用户提供服务
– ✅ 可用于开发、测试、演示
– ✅ 包含Enterprise版全部功能
违规风险:
– 微软审计发现违规使用可能面临高额罚款
– 罚款金额通常是许可证费用的数倍
3.3 评估版(Evaluation)
许可证要求:免费,有效期180天
技术限制:与Enterprise版功能相同
适用场景:
– 评估SQL Server功能
– 短期项目测试
– POC验证
四、Ubuntu上SQL Server合规使用指南
4.1 生产环境许可证配置
步骤一:确认版本需求
评估因素:
├── 数据库大小 → 影响是否需要Standard/Enterprise
├── 并发用户数 → 影响CAL模式选择
├── 功能需求 → 部分高级功能仅Enterprise版提供
├── 内存需求 → Standard限128GB,Enterprise无限制
└── 高可用需求 → Always On等特性需要Standard以上
步骤二:选择许可证模式
决策流程:
├── 客户端数量可控?
│ ├── 是 → 评估服务器+CAL模式
│ └── 否 → 必须使用核心模式
├── 需要Enterprise功能?
│ ├── 是 → 必须使用核心模式
│ └── 否 → 两种模式均可
└── 预算有限?
├── 是 → 优先考虑Standard版+CAL
└── 否 → Enterprise核心模式
步骤三:配置SQL Server版本
# 查看当前版本
sqlcmd -S localhost -U SA -Q "SELECT @@VERSION"
# 更改版本(需要有效许可证密钥)
sudo /opt/mssql/bin/mssql-conf set-sa-password
sudo /opt/mssql/bin/mssql-conf setup
4.2 许可证合规自查清单
- [ ] 确认SQL Server版本与购买许可证匹配
- [ ] 核心数是否覆盖所有物理核心
- [ ] CAL数量是否覆盖所有连接用户
- [ ] Developer版是否仅用于非生产环境
- [ ] Express版是否超出技术限制
- [ ] 是否保留购买凭证和许可证文件
- [ ] 是否定期进行许可证盘点
4.3 常见违规情况
| 违规行为 | 风险等级 | 后果 |
|---|---|---|
| Developer版用于生产 | 🔴 高 | 高额罚款+补购许可证 |
| 超出CAL用户数 | 🟡 中 | 补购CAL+可能罚款 |
| 核心数不足 | 🔴 高 | 补购核心许可证+罚款 |
| Express超限使用 | 🟡 中 | 需升级到付费版本 |
| 降级使用未授权版本 | 🔴 高 | 许可证失效+罚款 |
五、SA(软件保障)计划
5.1 SA计划内容
软件保障(Software Assurance)是微软提供的附加服务计划:
核心权益:
– 版本升级:免费升级到最新版本
– 故障转移:允许在备用服务器上运行实例
– 虚拟化权益:灵活的虚拟机部署
– 技术支持:获取微软专业技术支持
– 培训资源:在线培训和认证折扣
5.2 SA计划费用
| 项目 | 费用 | 说明 |
|---|---|---|
| SA年费 | 许可证费用的25%/年 | 按年续费 |
| 版本升级 | 包含在SA中 | 无额外费用 |
| 技术支持 | 包含在SA中 | 工单+热线 |
5.3 SA是否值得购买
推荐购买SA的场景:
– 计划使用SQL Server 3年以上
– 需要故障转移和灾备能力
– 需要微软官方技术支持
– 希望及时获得安全补丁和功能更新
不推荐购买SA的场景:
– 短期项目(1-2年)
– 有专业运维团队,不需要微软支持
– 预算非常有限
六、替代方案对比
6.1 开源数据库方案
| 数据库 | 许可证 | 与SQL Server兼容性 | 迁移难度 |
|---|---|---|---|
| PostgreSQL | MIT | 中等 | 中等 |
| MySQL | GPL | 低 | 较高 |
| MariaDB | GPL | 低 | 较高 |
6.2 云数据库方案
| 服务 | 计费方式 | 优势 | 劣势 |
|---|---|---|---|
| Azure SQL | 按需/预留 | 完全兼容 | 绑定Azure |
| AWS RDS for SQL Server | 按需/预留 | AWS生态 | 许可证费用高 |
| 阿里云RDS SQL Server | 按需/包年 | 国内服务好 | 国际访问一般 |
七、常见问题解答
Q1: Ubuntu上SQL Server许可证和Windows上一样吗?
A: 完全一样。微软对Linux和Windows上的SQL Server采用相同的许可证政策,价格也相同。
Q2: 可以在Docker容器中运行SQL Server吗?许可证如何计算?
A: 可以。容器中的SQL Server许可证计算方式与物理机相同,按宿主机核心数计算。如果使用Kubernetes等编排工具,需要确保许可证覆盖所有可能运行的节点。
Q3: Developer版可以在生产环境短暂使用吗?
A: 不可以。Developer版明确禁止任何生产用途,即使短暂使用也属于违规。建议使用Express版(免费)或购买Standard版许可证。
Q4: 如何查看当前SQL Server的许可证信息?
A: 使用以下SQL查询:
SELECT
SERVERPROPERTY('Edition') AS Edition,
SERVERPROPERTY('ProductVersion') AS Version,
SERVERPROPERTY('LicenseType') AS LicenseType;
Q5: 微软如何审计Linux上的SQL Server许可证?
A: 微软通过多种方式审计:定期SAM(软件资产管理)审查、合作伙伴审计、技术手段检测(如遥测数据)。Linux环境下同样会受到审计。
八、总结
SQL Server on Ubuntu的许可证要求与Windows版本一致,企业在使用时必须注意:
- 选择正确版本:根据实际需求选择Express/Standard/Enterprise
- 合规使用免费版:Developer版仅限开发测试,不可用于生产
- 合理选择许可模式:核心模式或服务器+CAL模式各有优势
- 保留许可证凭证:便于应对微软合规审计
- 考虑SA计划:长期使用建议购买软件保障
合规使用SQL Server不仅避免法律风险,也能获得微软官方技术支持和安全更新,保障业务稳定运行。
注:本文基于2026年微软SQL Server许可证政策编写,具体价格和政策请以微软官网最新公布为准。