SQL Server 的透明数据加密

news2024/9/27 9:30:28

透明数据加密是SQL Server数据库安全众多特性中的一个,本文只针对透明数据加密。
在这里插入图片描述

在此测试之前,已经按照文档如何快速获得一个测试用SQL Server企业版创建了一个SQL Server 2019,并按照文档为SQL Server安装示例数据库AdventureWorks安装了样例数据库并导入了测试数据。

这里的SQL Server虽然是2019,但其他版本的SQL Server也是类似的,SQL Server从2016版开始支持透明数据加密。

操作非常简单,毕竟这是数据库内置的功能:

1> use master;
2> go
Changed database context to 'master'.
1> create master key encryption by password = 'Welcome1';
2> go
1> create certificate MyServerCert with subject = 'My DEK Certificate';
2> go
1> use AdventureWorks2019;
3> go
Changed database context to 'AdventureWorks2019'.
1> CREATE DATABASE ENCRYPTION KEY
2> WITH ALGORITHM = AES_256
3> ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
4> go
Warning: The certificate used for encrypting the database encryption key has not been backed up. You should immediately back up the certificate and the private key associated with the certificate. If the certificate ever becomes unavailable or if you must restore or attach the database on another server, you must have backups of both the certificate and the private key or you will not be able to open the database.
1> ALTER DATABASE AdventureWorks2019 SET ENCRYPTION ON;
2> go

以上的报警是提示你需要备份秘钥,略。

其实SQL Server的加密架构,和Oracle,和MySQL都是一样的。都是两层秘钥架构,即主密钥和加密密钥。

此时查看数据文件,发现都是乱码:

$ sudo strings /var/opt/mssql/data/AdventureWorks2019_Data.mdf|more
Jn9v5
Jn9v
g       4d
|%&z"
Jn9v5
Jn9v
g       4d
|%&z"
Jn9v5
Jn9v
g       4d
|%&z"
Jn9v5
Jn9v
g       4d
|%&z"
Jn9v5
Jn9v
g       4d
...

$ sudo strings /var/opt/mssql/data/AdventureWorks2019_log.ldf |more
Jn9v5
Jn9v
Jn9v

                                                                                     $
Jn9v
Jn9v
g       4d
|%&z"

                                                                                     $
Jn9v
Jn9v
g       4d
|%&z"
...

查询加密状态:
在这里插入图片描述

解密:

1> use AdventureWorks2019;
2> go
Changed database context to 'AdventureWorks2019'.
1> alter database AdventureWorks2019 set encryption off;
2> go

解密后,探索数据文件,可以看到明码,包括数据库中存储的源代码:
在这里插入图片描述

参考

  • SQL Server 2019 透明数据加密
  • SQL Server 2022 透明数据加密
  • SQL Server 数据库安全
  • Database encryption becomes transparent with SQL Server TDE!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1988793.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Aspose.Words.dll 插入模板表格,使用的是邮件合并MailMerge功能,数据源是DataTable或list对象,实例

本实例中的实例功能有: 1、 Aspose.Words.dll 插入模板指定域替换为文字或html标签,见1 2、Aspose.Words.dll 插入模板表格,使用的是邮件合并MailMerge功能,数据源是DataTable或List对象(将list转换成DataTable),见1和2 3、word转换Pdf文件,见1 4、将多个word输出文…

PXE实现批量主机开机自动安装

华子目录 前言PXE装机的基本工作原理PXE组件实验前的准备工作1.VM进入虚拟网络编辑器关闭dhcp功能2.从RHEL7母机上克隆一个server端和client端3.配置server端4.关闭firewalld和selinux5.mobaxterm使用ssh -X连接到server端6.anaconda-ks.cfg介绍6.1文件概述6.2文件内容6.3文件使…

dbeaver 导入sql 报错,ERROR 2059 (HY000)

dbeaver 导入sql 报错。 C:\Users\admin\AppData\Roaming\DBeaverData\drivers\clients\mysql\win\mysql.exe --default-character-setutf8mb4 -u root --host222.85.214.245 --port11076 res_protect Task ‘MySQL script’ started at Wed Aug 07 16:31:58 CST 2024 ERROR 2…

【c++】基础知识——快速入门c++

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:C 目录 前言 一、手搓一个Hello World 二、命名空间namespace 1.命名空间的定义 2.命名空间的使用 3.命名空间补充知识 三、c中的输入和输出 四、缺省参…

哈哈哈日记

最近真的没有什么灵感更新,大家都在更啥呀!我就像天气一样时好时坏的,嘴上每天都是“好想死”,但是身体稍微有点不舒服立马就去看医生,委屈了啥都不能委屈自己,2块钱的矿泉水舍不得买,35一杯的咖啡我倒是看…

Pygame制作简单的跑酷游戏

今天我们来看看如何使用Pygame框架制作一个简单的跑酷游戏。这个游戏包含了基本的游戏元素,如玩家角色、障碍物、背景、音效等,可以作为入门Pygame游戏开发的一个不错的示例。 游戏概述 这是一个简单的横版跑酷游戏,玩家控制一个忍者角色,通过跳跃来躲避迎面而来的各种障碍物…

C++设计模式(代理模式)

1. 电话虫 在海贼中,有一种神奇的通信工具叫做电话虫(Den Den Mushi),外形如蜗牛,身上带有斑点或条纹或通体纯色,壳顶上有对讲机或按键,不接通时会睡觉,接通时会惊醒,并发…

bpmn简单使用(制作流程图)

1、先下载依赖,下面是我下载的版本 "bpmn-io/properties-panel": "^3.23.0", "bpmn-js": "^17.9.1", "bpmn-js-properties-panel": "^5.6.1", "camunda-bpmn-moddle": "^7.0.1",…

【鸿蒙开发基础学习】HSP-应用程序包开发与使用

HSP - 应用程序包开发与使用 HSP HSP(Harmony Shared Package)是动态共享包,可以包含代码、C库、资源和配置文件,通过HSP可以实现代码和资源的共享。HSP不支持独立发布,而是跟随其宿主应用的APP包一起发布&#xff0…

【开端】web系统中返回状态码组织管理

一、绪论 http web系统接口返回状态码有很多中,包括行业内定的状态码 ,比如200 表示成功,500表示服务器系统不可用,但是有包含很多业务上自定义的状态码。比如阿里,腾讯这些公司的产品会定义很多自己公司产品的状态码…

Spring全家桶(三):Spring AOP

Spring AOP面向切面编程 1.面向切面编程思维(AOP) 1.1.面向切面编程思想AOP AOP:Aspect Oriented Programming面向切面编程 AOP可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。O…

宝塔+acme.sh 使用https请求

安装acme.sh curl https://get.acme.sh | sh -s emailmyexample.com [记得修改邮箱]安装后的路径 /root/.acme 设置别名 alias acme.sh~/.acme.sh/acme.sh 运行 source ~/.bashrc 或者打开~/.bashrc文件,输入要设置的alias命令,保存,然后运行…

mysql case when用法

目录 一:概述 二:使用场景 一:概述 CASE WHEN 是 SQL 中的一个条件表达式,用于在 SQL 查询中实现条件逻辑。它类似于编程语言中的 if-else 或 switch 语句。通过使用 CASE WHEN,你可以在执行查询时根据条件对结果进行…

全网最全的设计效率工具?设计师的最佳助手!

身为设计师的你,是不是下载的素材堆积如山,用时却得在文件夹里层层翻找。在PS,Figma等不同的设计软件里做好的效果样式和工程,想要整理和再次使用很麻烦。不过,现在有了千鹿设计助手,提供一系列适合设计师的…

系统编程-02进程间通信

目录 1、管道 2、消息队列 (1)ftock()--创建IPC的键值KEY (2)获取消息队列ID (3)发送和接收消息 (4)设置或者获取消息队列的相关属性 3、共享内存 (1&#xff09…

14.Spring程序部署-Linux部署

文章目录 1. 打包项目2. linux中删除mariadb,下载mysql3. .yml配置文件4.xshell中部署项目1)首先先在Linux中创建一个新的文件夹2)进入刚创建的文件夹,并将刚打包好的.jar包文件拖进来3)进入Linux中的mysql,并建库建表4)启动程序5)Linux服务器…

使用Anaconda安装多个版本的Python并与Pycharm进行对接

1、参考链接 Anaconda安装使用教程解决多Python版本问题_anaconda安装多个python版本-CSDN博客 基于上面的一篇博客的提示,我做了尝试。并在Pycharm的对接上做了拓展。 2、首先安装Anaconda 这个比较简单,直接安装即可: 3、设置conda.exe的…

筑牢企业防线,打造高效员工行为管控体系!行为管控软件分享,老板的智慧之选!

商贾之道,在于治事有序,人心齐整。有言曰,防身立命,先固其本。企业之基,在于人心与秩序。 行为管控软件乃老板之智慧,企业之福音也!本文将以安企神行为管控软件为例,探讨如何借助这…

人工智能在肿瘤免疫微环境领域的研究进展|顶刊速递·24-08-07

小罗碎碎念 2024-08-07 今天这期推文的主题是——人工智能在肿瘤免疫微环境领域的研究进展。 第三、五、六篇文献在06-02的推文中介绍过,但是考虑到知识体系的完整性,同时方便大家补充这一部分的临床知识,所以再次把这三篇文章收纳进来。 我…

进程状态(三)----- linux 中具体的进程状态(下)

目录 前言1. T && t 状态2. X 与 Z 状态3. 孤儿进程 前言 继上一篇文章 进程状态(二)----- linux 中具体的进程状态(上) 介绍了 linux 系统中具体的 R、S、D 状态,而这篇文章继续介绍 linux 系统中剩下的三种…