【安当产品应用案例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数据库的安全,防止数据泄露和未授权访问,确保业务的连续性和数据的完整性。

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

相关推荐
许苑向上9 分钟前
最详细【Elasticsearch】Elasticsearch Java API + Spring Boot集成 实战入门(基础篇)
java·数据库·spring boot·elasticsearch
CodeCraft Studio1 小时前
【实用技能】在 SQL Server 中使用 LIMIT 子句的替代方案
数据库·sql·sqlserver
Mephisto.java1 小时前
【大数据学习 | kafka】kafka的偏移量管理
大数据·sql·oracle·sqlite·json·hbase
jlting1952 小时前
HiveSQL 中判断字段是否包含某个值的方法
数据库·sql
求一个好offer拜托拜托2 小时前
SQL常见语法
数据库·sql
喵手2 小时前
PostgreSQL 增量备份:保护你的数据资产
数据库·postgresql
cliffordl2 小时前
SQLAlchemy 介绍与实践
数据库·python
文军的烹饪实验室2 小时前
sqlalchemy连接mysql数据库
数据库·mysql
zybsjn2 小时前
如何产看SQL 查询的执行时间
数据库·sql