准备SQL Server 2008透明数据加密

作者:戴羽 来源:IT专家网 时间:2009-01-22 14:18:00 

问题

当浏览SQL Server 2008的新特性时,我们看到了透明数据加密。这看起来很有趣。您能为我们解释一下并介绍下执行它的细节吗?

专家解答

TDE(透明数据加密)是SQL Server 2008中的一个新特性;它提供了对数据和日志文件的实时加密。数据在它写到磁盘之前进行加密;当它从磁盘读出来时进行解密。TDE的“透明”是指加密是由数据库引擎来执行的,而SQL Server客户端对此完全不知道。要进行加密和解密不必编写任何代码。只要执行两个步骤将数据库为TDE准备好,然后加密就通过一个ALTER DATBASE命令在数据库级别开启了。

我们可能都听过关于保存了敏感信息的备份磁带丢失或被窃的事件。有了TDE,只要这个数据库开启了加密,那么只要使用标准BACKUP命令就会将备份文件也加密了。如果没有对用来加密数据的密钥的访问权限,那么备份文件(或磁盘上)中的数据就完全没用。

在我们进入执行TDE的步骤之前,让我们花几分钟来大概地讨论下加密。Wikipedia对加密的定义是“使用一个算法(叫做密码)来转化数据(指明码文本)、使其除非具有特定知识,一般指密钥,不然任何人都不能读取的过程”。为了加密数据,我选择了一个有效的算法并提供了密钥。加密所提供的安全性是基于算法的强度和密钥的保护。密钥有两种——对称密钥和非对称密钥。对于对称密钥,对数据的加密和解密使用相同的值。非对称密钥有两个组成部分——一个私钥和一个公钥。我使用私钥来加密数据而其他人必须使用公钥来解密数据。总之,对称密钥或非对称密钥对的私钥必须安全地存储以便可以有效地加密。

现在让我们看一个关于怎样执行TDE的例子。对一个特定数据库执行TDE包括下面四个步骤:

创建一个主钥。

创建或获得一个受主钥保护的证书。

创建数据库加密密钥并使用证书保护它。

将数据库设为使用加密。

创建一个主钥

主钥是一个对称密钥,是用来创建证书和非对称密钥的。执行下面的脚本来创建一个主钥: 

      USE master;
     
  CREATE MASTER KEY

  ENCRYPTION BY PASSWORD = 'Pass@word1';

  GO

注意,密码应该为强密码(例如使用字母、数字、大写、小写和特殊字符),而且你应该将它备份(使用BACKUP MASTER KEY)和保存在一个安全地方。.

创建证书

证书可以用来创建用于数据加密的对称密钥或用来直接加密数据。执行下面的脚本来创建一个证书: 

      USE master;
     
  CREATE CERTIFICATE TDECert

  WITH SUBJECT = 'TDE Certificate'

  GO

标签:
0
投稿

猜你喜欢

  • JS将指定的某个字符全部转换为其他字符实例代码

    2023-08-28 21:01:01
  • 基于wxpython实现的windows GUI程序实例

    2022-07-03 21:33:01
  • 回调函数的意义以及python实现实例

    2021-07-17 11:42:07
  • vue 项目@change多个参数传值多个事件的操作

    2024-06-07 16:01:08
  • Oracle学习笔记(一)

    2012-01-05 18:51:44
  • 详解Python prometheus_client使用方式

    2022-01-17 11:09:37
  • python OpenCV实现答题卡识别判卷

    2023-12-20 17:27:57
  • 浅析mysql 语句的调度优先级及改变

    2024-01-24 21:27:35
  • vue2.0+webpack环境的构造过程

    2024-05-08 10:42:00
  • 详解Go语言中泛型的实现原理与使用

    2024-02-06 08:30:15
  • ORACLE常用数值函数、转换函数、字符串函数

    2023-07-21 02:03:40
  • Python通过zookeeper实现分布式服务代码解析

    2021-09-11 11:09:48
  • python匿名函数lambda原理及实例解析

    2023-01-05 02:55:07
  • Django项目基础配置和基本使用过程解析

    2023-04-27 18:29:19
  • 基于Python-Pycharm实现的猴子摘桃小游戏(源代码)

    2023-07-07 06:31:22
  • Python实现繁体中文与简体中文相互转换的方法示例

    2021-08-08 08:13:12
  • 浅谈js的html元素的父节点,子节点

    2024-04-23 09:31:56
  • Opera下cloneNode的bug

    2007-11-23 11:40:00
  • 对Django中内置的User模型实例详解

    2022-10-31 05:03:10
  • python按列索引提取文件夹内所有excel指定列汇总(示例代码)

    2021-11-08 09:46:50
  • asp之家 网络编程 m.aspxhome.com