加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

关于SQlserver数据库的加密应用

发布时间:2020-12-12 14:41:23 所属栏目:MsSql教程 来源:网络整理
导读:-- Use the AdventureWorks database ?? USE AdventureWorks; -- Create a Database Master Key?? 创建密钥 CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'p@ssw0rd'; -- Create a Temp Table??? 创建一个临时表 CREATE TABLE Person.#Temp ( ContactID INT

-- Use the AdventureWorks database
?? USE AdventureWorks;

-- Create a Database Master Key?? 创建密钥

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'p@ssw0rd';

-- Create a Temp Table??? 创建一个临时表

CREATE TABLE Person.#Temp
(
ContactID INT PRIMARY KEY,
FirstName NVARCHAR(200),
MiddleName NVARCHAR(200),
LastName NVARCHAR(200),
eFirstName VARBINARY(200),
eMiddleName VARBINARY(200),
eLastName VARBINARY(200)
);

?


-- Create a Test Certificate, encrypted by the DMK? 创建证书加密

CREATE CERTIFICATE TestCertificate
WITH SUBJECT = 'Adventureworks Test Certificate',
EXPIRY_DATE = '10/31/2012';


-- EncryptByCert demonstration encrypts 100 names from the Person.Contact table

INSERT INTO Person.#Temp (ContactID,eFirstName,eMiddleName,eLastName)
SELECT ContactID,EncryptByCert(Cert_ID('TestCertificate'),FirstName),
EncryptByCert(Cert_ID('TestCertificate'),MiddleName),LastName)
FROM Person.Contact
WHERE ContactID <= 100;

?

-- DecryptByCert demonstration decrypts the previously encrypted data
UPDATE Person.#Temp
SET FirstName = DecryptByCert(Cert_ID('TestCertificate'),eFirstName),
MiddleName = DecryptByCert(Cert_ID('TestCertificate'),eMiddleName),
LastName = DecryptByCert(Cert_ID('TestCertificate'),eLastName);

?

-- View the results
SELECT * FROM Person.#Temp;

?

-- Clean up work: drop temp table, test certificate and master key DROP TABLE Person.#Temp; DROP CERTIFICATE TestCertificate; DROP MASTER KEY;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读