更新时间:2024-09-26 GMT+08:00
分享

开启透明数据加密功能

透明数据加密(Transparent Data Encryption,简称TDE),通过证书加密数据文件和备份文件,可进行实时的io加密/解密,能有效保护数据库及数据文件的安全。

目前,TDE加密功能仅支持部分RDS for SQL Server版本,详见表1

表1 支持TDE加密功能的RDS for SQL Server版本

实例类型

支持TDE加密功能的版本

主备实例

  • 2008 R2 企业版
  • 2012企业版
  • 2014企业版
  • 2016企业版
  • 2019 标准版,该版本如需开通TDE功能,请联系客服申请。

单机实例

  • 2016企业版
  • 2017 企业版
  • 2019 标准版
  • 2019 企业版
  • 2022 企业版

集群版实例

  • 2017 企业版
  • 2019 企业版
  • 2022 企业版

使用限制

  1. RDS for SQL Server暂不支持已开启TDE加密功能的单机实例转主备。
  2. RDS for SQL Server暂不提供TDE证书下载。如果需要通过加密的“.bak”文件在线下恢复数据,需执行以下操作:
    1. 关闭该数据库的TDE加密功能,请参考设置数据库级别的TDE加密功能
    2. 创建该数据库的手动备份。
    3. 获取备份文件并通过备份文件恢复数据。
    4. 请根据需要开启该数据库的TDE加密功能。
  3. 开启TDE加密功能后,可提高数据安全性,但同时会影响访问加密数据库的读写性能。请谨慎选择开启TDE加密功能。
  4. 线下加密的数据库无法直接迁移上云数据库SQL Server实例,需要先关闭线下数据库级别的TDE加密功能,再进行迁移。
  5. 已开启实例级别TDE加密功能的实例无法使用“恢复到已有实例”功能。
  6. 在开启实例级别TDE加密功能、执行存储过程rds_tde、开启/关闭数据库级别TDE功能的过程中,建议不要进行以下操作,否则开启数据库级别TDE可能失败:
    • 从数据库中的文件组中删除文件
    • 删除数据库
    • 使数据库脱机
    • 分离数据库
    • 将数据库或文件组转换为READ ONLY状态
    • 使用ALTER DATABASE命令
    • 创建快照
    • 启动数据库或数据库文件备份
    • 启动数据库或数据库文件还原

开启实例级别的TDE加密功能

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域。
  3. 单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
  4. “实例管理”页面,单击目标实例名称,进入实例的“概览”页面。
  5. 单击“TDE状态”后的

    图1 开启实例级别的TDE加密功能

  6. 在弹出框中,单击“是”进行二次确认后,开启TDE加密功能。

    实例级别的TDE加密功能一旦开启,将不允许关闭,请您谨慎操作。

设置数据库级别的TDE加密功能

在开启数据库级别的TDE加密功能之前,请确保已成功开启实例级别的TDE加密功能。

  1. 连接目标实例。

    请参考通过公网连接RDS for SQL Server实例通过内网连接RDS for SQL Server实例通过DAS连接RDS for SQL Server实例

  2. 通过rds_tde存储过程开启、关闭或查询TDE加密功能。

    exec master.dbo.rds_tde DatabaseName,TDE_Action

    • DatabaseName:目标数据库名,取值可为null。
    • TDE_Action
      • 取值为“-1”,表示查询目标库加密信息。

        如果“DatabaseName”取值为null,则返回所有库的加密状态。

      • 取值为“0”,表示关闭目标库TDE加密功能。
      • 取值为“1”,表示开启目标库TDE加密功能。
    1. 开启数据库db1的TDE加密功能:

      exec master.dbo.rds_tde db1, 1

      图2 开启数据库TDE加密
    2. 关闭数据库db1的TDE加密功能:

      exec master.dbo.rds_tde db1, 0

      图3 关闭数据库TDE加密
    3. 查询数据库db1的TDE加密状态:

      exec master.dbo.rds_tde db1, -1

      图4 开启状态
      图5 关闭状态
    4. 查询所有数据库的TDE加密状态:

      exec master.dbo.rds_tde null, -1

      图6 查询所有库状态

相关文档