You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在Linux系统的SQL Server Docker容器中使用.NET 6实现CLR集成?

基于.NET 6的CLR集成在Linux版SQL Server容器中运行的可行性解答

可以,完全支持基于.NET 6编写CLR集成并在Linux版SQL Server Docker容器中运行,但需要注意以下关键要点:

  • SQL Server版本要求:必须使用SQL Server 2022及以上版本,这是首个支持.NET 5+(包括.NET 6)CLR集成的SQL Server版本,Linux版和Docker镜像均适用。选择Docker镜像时,要确保标签为2022或更高,比如mcr.microsoft.com/mssql/server:2022-latest。

  • 启用CLR集成:SQL Server默认禁用CLR,需要先执行以下命令开启:

    sp_configure 'show advanced options', 1;
    RECONFIGURE;
    sp_configure 'clr enabled', 1;
    RECONFIGURE;
    

    如果启用了严格安全模式(默认开启),要么将clr strict security设置为0(不推荐,存在安全风险),要么为你的.NET 6程序集添加数字签名,再将签名证书导入SQL Server并创建对应的登录名和权限。

  • 程序集编译与部署:

    • 编写.NET 6类库时,避免使用SQL Server沙箱环境不支持的API(比如部分系统IO、未授权的网络调用等)。
    • 编译后将程序集部署到SQL Server,可使用CREATE ASSEMBLY语句,根据需求设置权限级别(SAFE、EXTERNAL_ACCESS或UNSAFE,优先使用SAFE)。
  • Docker容器配置:运行SQL Server容器时,无需额外特殊配置,只需确保启动容器时指定了正确的版本镜像,并且设置了必要的环境变量(如ACCEPT_EULA=Y、SA_PASSWORD)。示例启动命令:

    docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=YourStrong@Passw0rd" -p 1433:1433 --name sqlserver-2022 -d mcr.microsoft.com/mssql/server:2022-latest
    
  • 测试与排查:部署前先在Linux环境或容器内测试程序集功能,若遇到权限问题,检查程序集的权限级别设置;若出现兼容性错误,排查是否使用了不支持的.NET API。

内容的提问来源于stack exchange,提问作者Ali EXE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 17:20:56