SQL Server 2017 (14.x) 中数据库引擎功能的重大更改

适用于: SQL Server 2017 (14.x) 及更高版本

本主介绍 SQL Server 2017 (14.x) 数据库引擎 中的中断性变更。 这些更改可能导致基于 SQL Server的早期版本的应用程序、脚本或功能无法继续使用。 在进行升级时可能会遇到这些问题。

SQL Server 2017 数据库引擎 中的中断性变更

  • CLR 在 .NET Framework 中使用代码访问安全性 (CAS)(不可再作为安全边界)。 从 SQL Server 2017 (14.x) 数据库引擎开始,引入了称为 clr strict securitysp_configure 选项,以增强 CLR 程序集的安全性。 默认情况下启用 clr 严格安全性,并将 SAFEEXTERNAL_ACCESS CLR 程序集视为标记为 UNSAFE。 可禁用 clr strict security 选项以实现后向兼容性,但不建议这样做。 禁用 clr strict security 后,使用 PERMISSION_SET = SAFE 创建的 CLR 程序集可以访问外部系统资源、调用非托管的代码以及获取“sysadmin” 特权。 启用严格安全性后,未签名的任何程序集都将加载失败。 此外,如果数据库具有 SAFEEXTERNAL_ACCESS 程序集,则 RESTOREATTACH DATABASE 语句可以完成,但程序集可能加载失败。

    若要加载程序集,必须更改或删除并重新创建每个程序集,以便使用证书或非对称密钥对程序集进行签名,这样的证书或密钥具有与服务器上的 UNSAFE ASSEMBLY 权限相应的登录名。 有关详细信息,请参阅 CLR 严格安全性

  • 已在 SQL Server 2016 (13.x) 中弃用 MD2、MD4、MD5、SHA 和 SHA1 算法。 在 SQL Server 2016 (13.x) 之前,需使用 SHA1 创建自签名证书。 从 SQL Server 2017 (14.x) 开始,可使用 SHA2_256 创建自签名证书。

旧版

旧版本的 SQL Server 的存档文档

我们通过多组存档网页来留存较早版本的 Microsoft SQL Server 的相关文档。 搜索引擎(例如 bing.com 和 google.com)不会处理存档网页。 但是,可在 Docs previous-versions/sql/ 地址中看到这些存档 :

这些存档至少包括以下较早版本的相关文档:

  • SQL Server 2014 (12.x)
  • SQL Server 2012 (11.x)
  • SQL Server 2008 R2 (10.50.x)
  • SQL Server 2008 (10.0.x)
  • SQL Server 2005 (9.x)

SQL Server 2014 文档仍在主要的 Docs 地址中提供。

SQL Server 2022 文档在主要的 Docs 地址中提供。 然后,可以使用页面顶部附近的“版本控制”下拉列表来选择其他感兴趣的版本。

有关 SQL Server 早期版本的文档的详细信息,请参阅以前版本的 SQL Server 文档

另请参阅