使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

Microsoft 将 Microsoft SQL Server 2008 和 Microsoft SQL Server 2008 R2 修补程序分发为一个可下载文件。 由于修补程序是累积的,因此每个新版本都包含以前的 SQL Server 2008 或 SQL Server 2008 R2 版本的所有修补程序和所有安全修补程序。

症状

请考虑以下情况:

  • 在 SQL Server 2008 或 Microsoft SQL Server 2008 R2 中对数据库使用透明数据加密。

  • 对数据库禁用加密。

  • 您在禁用加密后立即备份数据库。

  • 尝试使用备份还原另一个 SQL Server 实例上的数据库。

在这种情况下,还原操作将失败,并且你会收到类似于以下内容的错误消息:

SqlClient:文件 "<数据库名称>_log" 无法正确初始化。 有关详细信息,请查看错误日志。 (Microsoft.SqlServer.Smo)

但是,错误日志没有详细信息。 如果在备份数据库之前删除数据库的加密密钥,则当你尝试还原数据库时收到以下错误消息:

SqlClient:找不到指纹为 "0xCB62FF76463A6BF86E8F769B541BA6483AFC2FF2" 的服务器证书。 (Microsoft.SqlServer.Smo)

解决方案

累积更新信息

SQL Server 2008 Service Pack 1

此问题的修补程序首次发布于 SQL Server 2008 Service Pack 1 的累积更新10。有关此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2279604 SQL Server 2008 的累积更新包 10 Service Pack 1注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2008 修复版本附带的所有修补程序和所有安全修补程序。 Microsoft 建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

970365 在发布 SQL Server 2008 Service Pack 1 之后发布的 SQL Server 2008 版本 为特定 SQL Server service pack 创建 Microsoft SQL Server 2008 修补程序。 必须将 SQL Server 2008 Service Pack 1 修补程序应用到 SQL Server 2008 Service Pack 1 的安装。 默认情况下,SQL Server service pack 中提供的任何修补程序都包含在下一个 SQL Server service pack 中。

SQL Server 2008 Service Pack 2

此问题的修补程序首次发布于 SQL Server 2008 Service Pack 2 的累积更新1。 有关此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2289254 SQL Server 2008 Service Pack 2 的累积更新1注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2008 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2402659 发布 SQL Server 2008 Service Pack 2 后发布的 SQL Server 2008 版本

SQL Server 2008 R2

此问题的修补程序首次在累积更新4中发布。有关如何为 SQL Server 2008 R2 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2345451 SQL Server 2008 R2 的累积更新程序包4 注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 修补程序版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

981356 发布 SQL Server 2008 R2 后发布的 SQL Server 2008 R2 版本

状态

Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

重现问题的步骤

  1. 创建主密钥。 下面是创建主密钥的代码示例:

    use masterCreate Master Key encryption by password = 'Password01!';go
  2. 创建或获取受主密钥保护的证书。 下面是创建受主密钥保护的证书的代码示例:

    create certificate cert_testDB_encryptDEK  authorization dbowith subject='Certificate to encrypt the DEK of testDB'
  3. 创建新数据库,创建数据库加密密钥,然后通过证书保护该密钥。 下面是创建新数据库的代码示例,它创建数据库加密密钥,然后通过使用证书来保护密钥:

    create Database testDBuse testDBCreate database encryption key with algorithm=AES_128encryption by server certificate cert_testDB_encryptDEK  
  4. 将数据库设置为使用加密。 下面是将数据库设置为使用加密的代码示例:

    Alter database testDB set encryption on 
  5. 对数据库禁用加密。 下面是对数据库禁用加密的代码示例:

    Alter database testDB set encryption off 
  6. 备份数据库,然后在另一个版本的 SQL Server 上还原备份。

参考

有关透明数据加密(TDE)的详细信息,请访问以下 Microsoft 开发人员网络(MSDN)网站:

有关 TDE 的常规信息有关 SQL Server 的增量服务模型的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

935897 从 SQL Server 团队提供的增量服务模型可提供报告问题的修补程序有关 SQL Server 更新的命名架构的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

822499Microsoft SQL Server 软件更新程序包的新命名架构有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

824684 用于描述 Microsoft 软件更新的标准术语的说明

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×