【安当产品应用案例100集】028-实现SQL Server数据库的透明加密

数据库是企业的重要资产,涉及多个方面的核心利益。为了帮助保护用户数据库的安全,可以采取以下预防措施:

  • 设计安全的系统
  • 对机密资产加密
  • 在数据库服务器外围构建防火墙

但恶意方如果窃取了硬盘或备份磁带等物理介质,就可以还原或附加数据库并浏览其数据。对此,TDE 可以防止恶意方尝试还原被盗的数据库文件,例如数据、日志、备份、快照和数据库副本。

一、TDE实现原理

在SQL Server数据库上启用 TDE 后,所有脱机数据库文件都使用指定的密钥进行加密,当数据库打开时,内存中的数据会被解密。同时,TDE还可对操作系统,也就是服务器上的用户做权限控制,预防高权限用户拷贝或移动数据,从而避免数据泄漏。整个过程中,用户不需要对应用程序进行任何更改,即可使用我们的安当TDE透明加密实现对数据库的保护。

二、透明加密步骤

使用安当TDE实现SQL Server数据库加密的步骤如下:

1.部署TDE客户端

在数据库服务器上安装TDE客户端软件,通常只需简单的安装步骤即可完成。

2.注册TDE客户端

安装完毕后,需要配置KSP服务地址及注册令牌以建立通信。注册成功后,TDE客户端便能够与KSP进行通信。

客户端注册成功:

3.确定数据的表空间存储位置

SQL Server的数据都是以库文件形式存储,此处我们需要加密的库为andang.mdf

4.配置加密策略

在KSP端创建自定义加密策略,包括定义资源集、用户集、进程集、安全规则以及密钥规则等元素。

  • 资源集:需加密的数据资源(如andang.mdf)
  • 用户集:与计算机系统进行交互的用户的集合(如Operator、backup、Admin等)
  • 进程集:指定用于加密和解密操作的系统进程(如记事本、数据库进程等)
  • 安全规则:控制用户访问权限
  • 密钥规则:用于文件加解密的密钥

在示例策略中,策略通过配置实现资源集,即我们指定的数据表的加密存储。配置操作系统用户Operator拥有所有操作权限,backup用户拥有复制及查看密文的权限,其余所有用户(包括Admin),都不允许对加密数据文件做任何操作。

5.下发保护点

创建并下发保护点,即指定要加密的文件或目录集合。通过合理配置保护点,可以确保关键数据在客户端上获得全面的加密保护。

保护点下发成功后,加密策略会自动推送到TDE客户端。随后,TDE客户端将策略转发至底层驱动程序进行解析,并根据策略对指定的资源集和本地应用进程实施加密和权限控制操作。至此,SQL Server数据库加密所需的五个步骤均已完成。接下来,我们将展示策略下发后的实际效果。

三、加密效果验证

1.使用具有全部操作权限的Operator用户访问加密文件,能正常访问

2.使用只能看见密文的backup用户访问加密文件,访问成功,且只能看见密文

3.使用没有任何权限的Admin用户访问加密文件,被拒绝访问

4.打开数据库连接工具操作数据库,数据库服务正常运行,未受任何影响

四、数据完整性校验

通过TDE的透明加密机制,数据库实例文件在存储过程中始终处于加密状态,即便是在静止状态下也能有效抵御未授权访问的风险。更重要的是,TDE内置了数据完整性校验功能,可以在每次读取或写入数据时自动进行校验,确保数据在传输和存储过程中未被篡改。

五、数据库性能影响评估

在启用安当TDE加密后,我们进行了大量测试,结果显示加密后对数据库操作的性能损耗较小,具体损耗如下:

以上就是安当TDE对SQL Server数据库实现保护的步骤。希望通过这篇文章,能为您提供一定的指导,帮助您有效地保护SQL Server数据库的安全,防止数据泄露和未授权访问,确保业务的连续性和数据的完整性。

文章作者:久洋 ©本文章解释权归安当西安研发中心所有

相关推荐
※DX3906※几秒前
SpringBoot之旅4: MyBatis 操作数据库(进阶) 动态SQL+MyBatis-Plus实战,从入门到熟练,再也不踩绑定异常、SQL拼接坑
java·数据库·spring boot·spring·java-ee·maven·mybatis
小的~~25 分钟前
使用StreamLoad向Doris-4.0.3版本的聚合表导数据超时问题
运维·服务器·数据库
笑梦无境29 分钟前
mysql基础篇一(多年前整理)
数据库·mysql
Yushan Bai30 分钟前
HP-UX平台Oracle启动实例遭遇ORA-27300/ORA-27301/ORA-27302报错
数据库·oracle·ux
山佳的山31 分钟前
Kingbase 身份认证与权限控制实践—数据库安全的第一道防线
数据库
深蓝轨迹35 分钟前
解决Redis排序后MySQL查询乱序问题:从原因到落地(通用版)
数据库·redis·笔记·mysql·bug
jnrjian44 分钟前
预估 PURGE DBA_RECYCLEBIN 执行时间 v$SESSION_LONGOPS 6 秒限制
数据库·dba
尽兴-1 小时前
Git 分支管理核心命令科普指南
数据库·git·分支管理·代码仓库
XDHCOM1 小时前
Redis本地化实现策略与应用问题解析,如何配置Redis本地化,常见问题解决
数据库·redis·缓存
RDCJM1 小时前
C#数据库操作系列---SqlSugar完结篇
网络·数据库·c#