当前位置: 首页 > news >正文

SQL Server 的透明数据加密

透明数据加密是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!

相关文章:

SQL Server 的透明数据加密

透明数据加密是SQL Server数据库安全众多特性中的一个,本文只针对透明数据加密。 在此测试之前,已经按照文档如何快速获得一个测试用SQL Server企业版创建了一个SQL Server 2019,并按照文档为SQL Server安装示例数据库AdventureWorks安装了…...

Windows图形界面(GUI)-MFC-C/C++ - 列表视图(List Control) - CListCtrl

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 列表视图(List Control) - CListCtrl 创建列表视图 设置列表视图属性 成员函数 注意事项 示例代码 列表视图(List Control) - CListCtrl 创建列表视图 在对话框编辑器中&#xff…...

一机两用的简单介绍

电子政务外网终端使用过程的风险与挑战 1、终端防护弱,失陷风险大 政务外网终端具备访问互联网能力,造成政务外网终端极易感染僵木蠕病毒,破坏正常办公 政务外网终端易被攻击失陷,成为从互联网攻击政务外网的跳板机 2、VPN漏洞…...

uniapp离线打包热更新失败-AndroidStudio离线打包apk后无法下载打开-热更新失败-plus.runtime.install失败

效果图 仅安卓 前言 1.plus.runtime.install一直fail(20240808), uni.openDocument可以打开本地apk文件 2.权限问题需小心 跑通前提 1.先确定apk地址有效,浏览器中手动下载可安装 2.确保已添加离线打包AndroidStudio的“android.permission.INSTALL_PACKAGES”权…...

深植根基、蓬勃向上 | openKylin 2.0正式发布!

2024年8月8日,openKylin 2.0版本正式发布!该版本默认搭载Linux 6.6 LTS内核,完成180操作系统核心组件自主选型升级,深度融合AI技术,上线麒麟AI助手等实用AI功能,并为用户带来包括开明软件包格式、不可变系统…...

【Material-UI】按钮组:尺寸与颜色详解

文章目录 一、按钮组概述1. 组件介绍2. 基本用法 二、按钮组的尺寸(Sizes)1. 小尺寸(Small)2. 中等尺寸(Medium)3. 大尺寸(Large) 三、按钮组的颜色(Colors)1…...

app抓包 burp配置

证书导出 模拟器安装证书 点击安装证书 将证书直接拖进来就行 配置代理 打开浏览器抓包...

图像与像素:利用ImageJ分析荧光显微镜图像|QuPath基础教程1|24-08-08

内容概要 数字图像由像素组成,每个像素具有一个数值,通常与检测到的光线相关。相同的像素值可以通过不同的方式进行显示。在科学图像处理中,可以通过修改查找表来独立于像素值改变图像外观。 一、引言 图像由其最小的组成单位——像素构成。…...

Prompt Fuzzer:用于增强 GenAI 应用程序的开源工具

Prompt Fuzzer 是一个开源工具,可以评估GenAI应用程序的系统提示针对基于动态 LLM 的威胁的安全性。 Prompt Fuzzer 功能: 1. 模拟十几种类型的 GenAI 攻击。 2. 该工具会根据系统提示自动进行情境化,针对与 GenAI 应用程序相关的特定主题或行…...

Vision Pro使用GLFT 加载模型shader错误解决办法

Glft shader在vision pro上加载错误 前言相关背景解决办法 参考文章 前言 之前在Vision Pro上尝试加载Glb文件,但是加载完成后发现加载出来的Glb文件材质不正确。材质是黑色的。因此整理一下解决方案。 相关背景 使用Unity开发,Glb的加载插件为gltf F…...

Netty技术全解析:MessageToMessageCodec类深度解析

❃博主首页 &#xff1a; 「码到三十五」 &#xff0c;同名公众号 :「码到三十五」&#xff0c;wx号 : 「liwu0213」 ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a…...

Three 【3D车模换肤】

目录 &#x1f31f;前言&#x1f31f;先看效果&#x1f31f;实现代码&#x1f31f;写在最后 &#x1f31f;前言 哈喽小伙伴们&#xff0c;最近工作比较忙一直没有给大家更新&#xff0c;新的专栏 Three.js第三篇&#xff0c;记录一下博主学习Three.js的过程&#xff1b;一起来…...

语言模型简介和Ngram模型(1)

语言模型介绍一 语言模型语言模型概念语言模型应用-语音识别声纹特征提取语言模型挑选成句 语言模型应用-手写识别语言模型应用-输入法语言模型分类语言模型评价指标-困惑度PPL N-gram语言模型马尔科夫假设平滑问题平滑问题解决一平滑问题解决二 插值优化语言模型应用-文本纠错…...

MessageBox弹框替代系统自带的alert、confirm -- 高仿ElementUI MessageBox

MessageBox 弹框 MessageBox 的作用是替代系统自带的 alert、confirm &#xff0c;仅适合展示较为简单的内容。如果需要弹出较为复杂的内容&#xff0c;请使用定制的弹窗。基本仿照ElementUI的同名组件。 原生&#xff0c;无依赖项&#xff0c;自适应布局&#xff0c;双端通用&…...

数据结构一排序算法

排序算法总结 冒泡排序 冒泡排序&#xff08;Bubble Sort&#xff09;也是一种简单直观的排序算法。假设长度为n的数组arr&#xff0c;要按照从小到大排序。则冒泡排序的具体过程可以描述为&#xff1a;首先从数组的第一个元素开始到数组最后一个元素为止&#xff0c;对数组中…...

[Leetcode 215][Medium]-数组中的第K个最大元素-快排/小根堆/堆排序

一、题目描述 原题地址 二、整体思路 &#xff08;1&#xff09;快排 对于SELECT K问题&#xff0c;可以通过三路快排解决&#xff0c;快排可以把一个元素放至按升序排序的数组正确的位置&#xff0c;左边为小于该元素的元素集合&#xff0c;右边为大于该元素的元素集合。 三…...

【栈和队列】常见面试题

文章目录 1.[有效的括号](https://leetcode.cn/problems/valid-parentheses/description/)1.1 题目要求1.2 利用栈解决 2. [用队列实现栈](https://leetcode.cn/problems/implement-stack-using-queues/description/)2.1 题目要求2.2 用队列实现栈 3.[用栈实现队列](https://le…...

关于float浮点值二进制存储和运算精度损失的话题

1.前言 浮点值的存储、运算都可能会带来精度损失&#xff0c;了解精度损失背后的机制原因方便我们更好的了解什么情况下会发生精度损失、什么情况下精度损失较大&#xff0c;以及思考怎么避免或减少精度损失。 2.知识点 &#xff08;1&#xff09;IEEE 754标准 EEE 754标准…...

python爬虫学习记录-请求模块urllib3

&#xff08;文章内容仅作学习交流使用&#xff09; urllib3是一个功能强大、条理清晰&#xff0c;用于HTTP客户端的第三方模块 urllib3-发送网络请求 使用urllib3发送网络请求时&#xff0c;需要先创建PoolManager对象&#xff0c;并使用该对象的request方法发送请求&#…...

谷粒商城实战笔记-133~135-城业务-商品上架-远程上架接口

文章目录 一&#xff0c;谷粒商城实战笔记-133-城业务-商品上架-远程上架接口1&#xff0c;开发目标2&#xff0c;详细设计2.1&#xff0c;提前建立索引2.2&#xff0c;构造批量操作请求参数2.3&#xff0c;使用HighLevelClient调用bulk请求保存数据 二&#xff0c;134-商城业务…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...