sql加密表的方法:首先测试环境;然后创建数据库主密钥;接着创建证书以及一个对称秘钥;最后加密数据即可。
sql server 怎么设置表中加密
SQL Server支持数据库级的加密(TDE)和列级的数据加密,数据库级的加密是在在数据库中进行的,对程序来说是是透明的,开发过程中不需要做额外的操作。相对数据库级的加密来说,列级的数据加密过程有点麻烦,程序需要做一些额外的操作。下图是SQL Server的加密层次结构,可以看出SQL Server的加密是分层级的,上面层级的加密保护其子层级的加密,本文说明一个使用图中①②③④四个层次的方法来加密/解密数据的过程。
(1)测试环境说明
测试使用SQL Servre 2012 R2,创建如下的数据表:
--创建测试用的用户表
CREATE TABLE TBLUser ( Name nvarchar(30), Password varbinary(1000), ) GO
(2)创建数据库主密钥
数据库主密钥(Database Master Key)在服务主密钥之下,由服务主密钥进行加密。这是一个数据库级别的密钥,可以用于为创建数据库级别的证书或非对称密钥提供加密。每一个数据库只能有一个数据库主密钥,通过T-SQL语句创建。具体代码如下:
CREATE MASTER KEY ENCRYPTION BY PASSWORD ='passW@ord' GO
(3)创建证书
创建一个用来加密对称秘钥证书,具体代码如下:
CREATE CERTIFICATE TestCert with SUBJECT = 'Test Certificate' GO
(4)创建一个对称秘钥
由SQL Server加密层次结构可以看出,对称密钥可以通过密码创建,也可以通过其它对称密钥、非对称密钥和证书创建。本文以证书创建一个测试用的对称秘钥,具体代码如下:
CREATE SYMMETRIC KEY TestSymmetric WITH ALGORITHM = AES_256 ENCRYPTION BY CERTIFICATE TestCert GO
(5)加密数据
先打开证对称秘钥,再使用ENCRYPTBYKEY函数加密数据,完成后关闭对称秘钥。具体代码如下:
OPEN SYMMETRIC KEY TestSymmetric DECRYPTION BY CERTIFICATE TestCert; INSERT INTO TBLUser values('张三', ENCRYPTBYKEY(Key_Guid(N'TestSymmetric'), '123456')); CLOSE SYMMETRIC KEY TestSymmetric; GO
(6)查看加密后的数据
直接下SQL查询加密后的数据,可以看到password的内容是一串不可以阅读的16进制的字符。
SELECT * FROM TBLUser GO
(7)解密数据
先打开证对称秘钥,再使用DecryptByKey函数解密数据,完成后关闭对称秘钥。具体代码如下:
OPEN SYMMETRIC KEY TestSymmetric DECRYPTION BY CERTIFICATE TestCert; SELECT Name, CAST(DecryptByKey(password) as varchar(100)) Password FROM TBLUser; CLOSE SYMMETRIC KEY TestSymmetric; GO
以上是sql怎么加密表的详细内容。更多信息请关注PHP中文网其他相关文章!

本篇文章给大家带来了关于SQL的相关知识,其中主要介绍了SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询的方法,文中通过示例代码介绍的非常详细,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于SQL server的相关知识,其中主要介绍了SQL SERVER没有自带的解析json函数,需要自建一个函数(表值函数),下面介绍关于SQL Server解析/操作Json格式字段数据的相关资料,希望对大家有帮助。

如何优化sql中的orderBy语句?下面本篇文章给大家介绍一下优化sql中orderBy语句的方法,具有很好的参考价值,希望对大家有所帮助。

monacoeditor创建//创建和设置值if(!this.monacoEditor){this.monacoEditor=monaco.editor.create(this._node,{value:value||code,language:language,...options});this.monacoEditor.onDidChangeModelContent(e=>{constvalue=this.monacoEditor.getValue();//使value和其值保持一致i

本篇文章给大家带来了关于SQL server的相关知识,开窗函数也叫分析函数有两类,一类是聚合开窗函数,一类是排序开窗函数,下面这篇文章主要给大家介绍了关于SQL中开窗函数的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下。

monacoeditor创建//创建和设置值if(!this.monacoEditor){this.monacoEditor=monaco.editor.create(this._node,{value:value||code,language:language,...options});this.monacoEditor.onDidChangeModelContent(e=>{constvalue=this.monacoEditor.getValue();//使value和其值保持一致i

当某些sql因为不知名原因堵塞时,为了不影响后台服务运行,想要给sql增加执行时间限制,超时后就抛异常,保证后台线程不会因为sql堵塞而堵塞。一、yml全局配置单数据源可以,多数据源时会失效二、java配置类配置成功抛出超时异常。importcom.alibaba.druid.pool.DruidDataSource;importcom.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;importorg.apache.

0x01前言概述小编又在MySQL中发现了一个Double型数据溢出。当我们拿到MySQL里的函数时,小编比较感兴趣的是其中的数学函数,它们也应该包含一些数据类型来保存数值。所以小编就跑去测试看哪些函数会出现溢出错误。然后小编发现,当传递一个大于709的值时,函数exp()就会引起一个溢出错误。mysql>selectexp(709);+-----------------------+|exp(709)|+-----------------------+|8.218407461554972


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版