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

已加入sys.trusted_assemblies的SQLCLR程序发布提示不受信任如何解决

解决方案

发布报错修复

  1. 更新受信任程序集哈希
    修改代码重新编译后,程序集的哈希值会发生变化,你之前添加的旧哈希已经失效。需要先重新计算新生成的CLR_UDF.dll的哈希值,删除sys.trusted_assemblies中的旧条目,重新执行sp_add_trusted_assembly添加新哈希后再发布。
  2. 调整发布逻辑
    可以在VS2019的数据库项目发布配置中开启「增量更新程序集」选项,避免发布时删除重建程序集触发信任校验;也可以手动修改发布生成的SQL脚本,将CREATE ASSEMBLY语句替换为ALTER ASSEMBLY语句更新现有程序集。
  3. 改用签名信任方案
    你已经使用SNK文件对程序集签名,更稳定的方案是走签名信任流程,不需要依赖受信任程序集列表:在master数据库中基于SNK文件创建非对称密钥,再基于该密钥创建对应登录账号,授予该账号UNSAFE ASSEMBLY权限,只要SNK签名不变,后续代码迭代都不会触发信任校验报错。

运行时报错修复

移除模拟代码后的报错是因为SQL Server服务的默认运行账号没有目标路径的访问权限:

  • 访问本地路径时,给SQL Server服务运行账号授予对应目录的读取权限即可
  • 访问远程服务器路径时,保留身份模拟逻辑,将代码中写死的用户名、密码、域参数替换为实际有目标路径访问权限的账号信息
  • 补充身份回滚逻辑:当前代码模拟身份后没有调用undoimpersonateUser()回滚,会导致后续请求身份异常,建议用using块包裹模拟逻辑,保证离开作用域时自动回滚身份。

内容的提问来源于stack exchange,提问作者Simple Simon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:24:03