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

SQL Server 2022中创建TDE数据库加密密钥时RSA_4096语法错误如何解决?

解决SQL Server 2022 TDE中RSA_4096语法错误问题

你的问题出在对TDE加密层级的理解偏差:数据库加密密钥(DEK)本身不使用RSA算法,RSA_4096是用来创建保护DEK的非对称密钥的算法。CREATE DATABASE ENCRYPTION KEY语句中只能指定DEK自身的对称加密算法(如AES_256、AES_192等),而非RSA系列。

正确的操作步骤及脚本

1. 在master数据库中创建RSA_4096非对称密钥

非对称密钥必须存储在master库中,用于后续加密DEK:

USE master;
GO

-- 创建RSA_4096非对称密钥(需CONTROL SERVER权限)
CREATE ASYMMETRIC KEY TDE_AsymKey_RSA4096
WITH ALGORITHM = RSA_4096
ENCRYPTION BY PASSWORD = '你的强密码'; -- 替换为实际安全密码
GO

2. 切换到目标库,用上述非对称密钥创建DEK

DEK使用对称加密算法(SQL Server 2022推荐AES_256),并指定由刚创建的非对称密钥加密:

USE AdventureWorks2019;
GO

-- 创建数据库加密密钥,使用AES_256算法,由master库的非对称密钥保护
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER ASYMMETRIC KEY TDE_AsymKey_RSA4096;
GO

3. 启用透明数据加密(TDE)

ALTER DATABASE AdventureWorks2019
SET ENCRYPTION ON;
GO

关键注意事项

  • 操作需要CONTROL SERVER或ALTER ANY ASYMMETRIC KEY等权限,确保执行账户拥有足够权限。
  • 非对称密钥必须存储在master库,不能在用户库中创建用于TDE保护的非对称密钥。
  • 后续需备份master库中的非对称密钥,否则数据库恢复时会无法解密。

内容的提问来源于stack exchange,提问作者Helloit'sme

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 10:58:21