开发者社区> 阿里云服务支持> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

RDS SQL Server 自带证书开启TDE的解决方案

简介: RDS SQL Server 自带证书开启TDE的解决方案
+关注继续查看


背景


为了帮助保护数据库的安全,可以提供设计安全的系统、对机密资产加密、在数据库服务器外围构建防火墙。

但是恶意方如果窃取了驱动器或数据备份等,就可以还原或附加数据库并浏览其数据。

为了解决此类安全问题,一种解决方案就被提出来了,这就是透明数据加密TDE。


SQL Server TDE 功能


SQL Server支持透明数据加密TDE(Transparent Data Encryption),即对数据文件执行实时I/O加密和解密。数据在写入磁盘之前进行加密,从磁盘读入内存时进行解密。TDE不会增加数据文件的大小,开发人员无需更改任何应用程序,即可使用TDE功能。这种加密方式也称为静态数据加密。


如何开启 RDS SQL Server TDE 功能


  1. 创建主密钥
  2. 创建证书
  3. 将证书上传到 OSS
  4. 开启 TDE 功能
  5. 查看数据库开启状态


创建主密钥

命令

USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'DifferentP@$$w0rd';

说明

  • 数据库主密钥是指用于保护证书私钥的对称密钥以及数据库中存在的非对称密钥
  • password 必须符合运行 SQL Server 实例的计算机的 Windows 密码策略要求。
  • 当创建主密钥时,会使用 AES_256 算法以及用户提供的密码对其进行加密。


创建证书


命令

USE master;
GO
CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My DEK Certificate';


备份证书


命令

BACKUP CERTIFICATE MyServerCert
TO FILE = 'D:\MSSQL\backup\MyServerCert'
WITH PRIVATE KEY (file='D:\MSSQL\backup\MyServerCert.pvk ', ENCRYPTION BY PASSWORD='DifferentP@$$w0rd')

说明

  • MyServerCert 指定证书名称。
  • TO FILE 指定导致证书的路径。
  • WITH PRIVATE KEY 指定需要导致私钥。
  • ENCRYPTION BY PASSWORD 。
  • 这里使用的备份密码要与主密钥密码一致,不然在开启TDE时报错。


最终会得到 MyServerCert 证书和私钥文件MyServerCert.pvk。如图


image


上传证书


  • 将证书和私钥上传到阿里云OSS(文件要上传到根目录,不然在选择证书的时候,可能会找不到
  • 若没有现成的Bucket 需要新建
    • 新建:对象存储->Bucket列表->创建Bucket->选择与实例对应的地域即可(其它默认,名称全局唯一)
  • 若有:
    • 操作路径:对象存储->Bucket列表->选择对应Region Bucket-文件管理->扫描文件->查看扫描结果->确认无误选择上传文件。如截图


image


开启TDE功能

  • 操作:选择需要开启的实例->选择数据安全->选择TDE->选择自带密钥

image

  • 选择Bucket 和 证书文件。
  • 密码是备份证书和主密钥的密码,要一致,不然会报错不匹配。

image


image

查看数据库开启状态

命令

select name,is_encrypted from sys.databases where name = 'db01';

结果

image


参考:

https://learn.microsoft.com/zh-cn/sql/t-sql/statements/backup-certificate-transact-sql?view=sql-server-ver15

https://learn.microsoft.com/zh-cn/sql/relational-databases/security/encryption/transparent-data-encryption?view=sql-server-ver16

https://learn.microsoft.com/zh-cn/sql/big-data-cluster/encryption-at-rest-sql-server-tde?view=sql-server-ver15

https://learn.microsoft.com/zh-cn/sql/t-sql/statements/create-master-key-transact-sql?view=sql-server-ver15

https://learn.microsoft.com/zh-cn/sql/t-sql/statements/backup-master-key-transact-sql?view=sql-server-ver15


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SQL Sever2012安装错误——Windows Installer错误消息:打开安装日志文件的错误的原因及解决方案
由于要对着错误信息来解决,所以此处是用手机拍摄的,如果看不清楚可以看下面的文字版;此处的错误是在安装程序支持规则中爆出的
0 0
RDS SQL Server 通过链接服务器访问公网的解决方案
RDS SQL Server 开放了 Linked Server功能,但是默认只能在RDS之间,或者同VPC 下的ECS 自建SQL Server,实现Linkded Server 功能。本文将介绍,利用VPC SNAT 功能,实现RDS Linked Server 访问公网数据库的能力。
0 0
第十一篇:数据层解决方案 SQL NoSQL
第十一篇:数据层解决方案 SQL NoSQL
0 0
MySQL执行SQL文件出现【Unknown collation ‘utf8mb4_0900_ai_ci‘】的解决方案
MySQL执行SQL文件出现【Unknown collation ‘utf8mb4_0900_ai_ci‘】的解决方案
0 0
解决:为何Java执行插入sql,保存进数据库的中文内容会自动变成问号??【解决方案】
解决:为何Java执行插入sql,保存进数据库的中文内容会自动变成问号??【解决方案】
0 0
Java 执行 Postgresql Jdbc 类型异常时,复杂sql难定位的解决方案
Java 执行 Postgresql Jdbc 类型异常时,复杂sql难定位的解决方案
0 0
详解程序员常用的3大Web安全漏洞防御解决方案:XSS、CSRF及SQL注入
随着互联网的普及,网络安全变得越来越重要,程序员需要掌握最基本的web安全防范,在项目研发过程中才能防患于未然,下面列举一些常见的安全漏洞和对应的防御措施。
2577 0
捷信达温泉管理软件消费区域序号只能是一位数不完美解决方案SQL
捷信达温泉管理软件消费区域序号只能是一位数不完美解决方案SQL,反编译不了软件,只能修改数据层。 snWsPara --工作站参数维护snArea --消费区snAreaItemType --消费区、消费项目类型snItemType --消费类别设置以上数据表areaNO varchar(2) 修改成两位捷信达资料维护模块存在PB代码进行数据校验,所以后续添加消费区域,需要在数据库进行维护。
760 0
SQL server 2008 最小化安装(学习专用)
之后下载这两个安装包,根据电脑实际情况下载,这里我选择x64版本的两个轻量级安装包,其他版本比较大,学习的话这两个版本就够了
0 0
文章
问答
来源圈子
更多
作为全球云计算的领先者,阿里云为全球230万企业提供着云计算服务,服务范围覆盖200多个国家和地区。我们致力于为企业、政府等组织机构提供安全可靠的云计算服务,给用户带来极速愉悦的服务体验。
+ 订阅
相关文档: 迁云实施服务
文章排行榜
最热
最新
相关电子书
更多
用SQL做数据分析
立即下载
阿里云流计算 Flink SQL 核心功能解密
立即下载
Comparison of Spark SQL with Hive
立即下载