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

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
对象存储 OSS,20GB 3个月
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 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。如图



上传证书


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



开启TDE功能

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

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


查看数据库开启状态

命令

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

结果


参考:

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


相关文章
|
4天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
40 10
|
1月前
|
SQL 数据库 数据安全/隐私保护
Sql Server数据库Sa密码如何修改
Sql Server数据库Sa密码如何修改
|
1月前
|
SQL 关系型数据库 MySQL
解决MySQL主从慢同步问题的常见的解决方案:
解决MySQL主从慢同步问题的方法有很多,以下是一些常见的解决方案: 1. 检查网络连接:确保主从服务器之间的网络连接稳定,避免网络延迟或丢包导致数据同步缓慢。 2. 优化数据库配置:调整MySQL的配置参数,如增大binlog文件大小、调整innodb_flush_log_at_trx_commit等参数,以提高主从同步性能。 3. 检查IO线程和SQL线程状态:通过SHOW SLAVE STATUS命令检查IO线程和SQL线程的状态,确保它们正常运行并没有出现错误。 4. 检查主从日志位置:确认主从服务器的binlog文件和位置是否正确,避免由于错误的日志位置导致同步延迟。 5.
104 1
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据查询
【数据库SQL server】关系数据库标准语言SQL之数据查询
95 0
|
1月前
|
关系型数据库 MySQL 数据库
深入探讨MySQL并发事务的问题及解决方案
深入探讨MySQL并发事务的问题及解决方案
52 0
|
13天前
|
SQL
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
15 0
|
4天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
44 6
|
4天前
|
SQL 存储 数据挖掘
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。 数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。 将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
|
6天前
|
SQL 数据库 索引
SQL索引失效原因分析与解决方案
SQL索引失效原因分析与解决方案
17 0
|
8天前
|
SQL 安全 Java
SQL server 2017安装教程
SQL server 2017安装教程
13 1