自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析SQL Server 2008中的代碼安全之四:主密鑰

數(shù)據(jù)庫(kù) SQL Server
本文主要介紹服務(wù)主密鑰的備份與還原,數(shù)據(jù)庫(kù)的主密鑰的創(chuàng)建、重新生成、刪除和備份、還原。

在SQL Server中的加密由層次結(jié)構(gòu)形式進(jìn)行處理以提供多級(jí)別的安全。SQL Server包含兩個(gè)用于加密數(shù)據(jù)的密鑰類(lèi)型。如下圖:

1、服務(wù)器主密鑰(Service Master Key),位于層次結(jié)構(gòu)的最頂端,并且在安裝SQL Server時(shí)自動(dòng)創(chuàng)建,用于加密系統(tǒng)數(shù)據(jù)、鏈接的服務(wù)器登錄名以及數(shù)據(jù)庫(kù)主密鑰。在***次通過(guò)SQL Server使用服務(wù)主密鑰來(lái)加密證書(shū)、數(shù)據(jù)庫(kù)主密鑰或鏈接的服務(wù)器主密碼時(shí),服務(wù)主密鑰會(huì)自動(dòng)生成,并且使用SQL Server服務(wù)賬戶(hù)的Windows證書(shū)來(lái)生成它。如果必須改變SQL Server服務(wù)賬號(hào),微軟建議使用SQL Server配置管理器,因?yàn)檫@個(gè)工具將執(zhí)行生成新服務(wù)主密鑰需要的合適的解密和加密方法,而且可以使加密層次結(jié)構(gòu)保持完整。服務(wù)主密鑰也用于加密其下的數(shù)據(jù)庫(kù)主密鑰。

2、數(shù)據(jù)庫(kù)主密鑰(Database Master Key),用于加密證書(shū),以及非對(duì)稱(chēng)密鑰和對(duì)稱(chēng)密鑰。所有數(shù)據(jù)庫(kù)都可以只包含一個(gè)數(shù)據(jù)庫(kù)主密鑰,在創(chuàng)建它時(shí),通過(guò)服務(wù)主密鑰對(duì)其加密。創(chuàng)建非對(duì)稱(chēng)密鑰時(shí),可以決定在加密非對(duì)稱(chēng)密鑰對(duì)應(yīng)的私鑰是否包含密碼。如果示包含密碼,將使用數(shù)據(jù)庫(kù)主密鑰來(lái)加密私鑰。

我們看一組例子:

示例一、備份及還原服務(wù)主密鑰

用到以下兩個(gè)sql命令:

BACKUP SERVICE MASTER KEY  導(dǎo)出服務(wù)主密鑰。(http://msdn.microsoft.com/zh-cn/library/ms190337.aspx)

RESTORE SERVICE MASTER KEY從備份文件中導(dǎo)入服務(wù)主密鑰。(http://msdn.microsoft.com/zh-cn/library/ms187972.aspx)

  1. --以下語(yǔ)句備份服務(wù)主密鑰到C:\SqlBackup\SMK.bak  
  2. BACKUP SERVICE MASTER KEY 
  3. TO FILE = 'C:\SqlBackup\SMK.bak' 
  4. ENCRYPTION BY PASSWORD = 'MakeItAGoodOne!1AB'----注意該密碼可以使用單引號(hào)  
  5. go  
  6. --恢復(fù)服務(wù)主密鑰  
  7. RESTORE SERVICE MASTER KEY 
  8. FROM FILE = 'H:\SqlBackup\SMK.bak' 
  9. DECRYPTION BY PASSWORD = 'MakeItAGoodOne!1AB' 
  10. go  

如果該密鑰沒(méi)有實(shí)際變化,而執(zhí)行密鑰恢復(fù)時(shí),會(huì)收到提示:

--The old and new master keys are identical. No data re-encryption is required.

示例二、創(chuàng)建、再生成和刪除數(shù)據(jù)庫(kù)主密鑰

用到以下兩個(gè)sql命令:

CREATE MASTER KEY 創(chuàng)建數(shù)據(jù)庫(kù)主密鑰(http://technet.microsoft.com/zh-cn/library/ms174382.aspx)

ALTER MASTER KEY 重新生成數(shù)據(jù)庫(kù)主密鑰(http://msdn.microsoft.com/en-us/library/ms186937%28SQL.90%29.aspx)

DROP MASTER KEY 刪除數(shù)據(jù)庫(kù)主密鑰(http://msdn.microsoft.com/en-us/library/ms180071.aspx)

當(dāng)數(shù)據(jù)庫(kù)主密鑰被顯式創(chuàng)建時(shí),會(huì)同時(shí)自動(dòng)生成一個(gè)額外生成的安全層,用于加密數(shù)據(jù)庫(kù)中的新證書(shū)和非對(duì)稱(chēng)密鑰,更進(jìn)一步保護(hù)已加密的數(shù)據(jù)。

  1. IF NOT EXISTS (SELECT name 
  2. FROM sys.databases  
  3. WHERE name = 'BookStore')  
  4. BEGIN 
  5. CREATE DATABASE BookStore  
  6. END 
  7. GO  
  8. USE BookStore  
  9. GO  
  10. --創(chuàng)建數(shù)據(jù)庫(kù)主密鑰  
  11. CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password' 
  12. go  
  13. USE BookStore  
  14. GO  
  15. --重新生成數(shù)據(jù)庫(kù)主密鑰  
  16. ALTER MASTER KEY 
  17. [FORCE] REGENERATE WITH ENCRYPTION BY PASSWORD = 'password' 
  18. --刪除數(shù)據(jù)庫(kù)主密鑰  
  19. USE BookStore  
  20. GO  
  21. DROP MASTER KEY  
注意:如果該數(shù)據(jù)庫(kù)主密鑰仍然被其他數(shù)據(jù)庫(kù)對(duì)象使用,則不能被刪除,這點(diǎn)與架構(gòu)類(lèi)似。

同時(shí)一旦創(chuàng)建數(shù)據(jù)庫(kù)主密鑰,就立刻備份它是一個(gè)好的習(xí)慣。

示例三、備份、恢復(fù)一個(gè)數(shù)據(jù)庫(kù)主密鑰

語(yǔ)法:

BACKUP MASTER KEY導(dǎo)出服務(wù)主密鑰。(http://technet.microsoft.com/en-us/library/ms174387.aspx)

RESTORE MASTER KEY從備份文件中導(dǎo)入數(shù)據(jù)庫(kù)主密鑰。(http://msdn.microsoft.com/en-us/library/ms186336.aspx)

下面是一個(gè)完整示例:

  1. --備份數(shù)據(jù)庫(kù)主密鑰  
  2. USE BookStore  
  3. GO  
  4. CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MagneticFields!' 
  5. GO  
  6. BACKUP MASTER KEY TO FILE = 'H:\SqlBackup\BookStore_Master_Key.BAK' 
  7. ENCRYPTION BY PASSWORD = '4D280837!!!' 
  8. --恢復(fù)數(shù)據(jù)庫(kù)主密鑰  
  9. RESTORE MASTER KEY FROM FILE = 'H:\SqlBackup\BookStore_Master_Key.BAK' 
  10. DECRYPTION BY PASSWORD = '4D280837!!!' 
  11. ENCRYPTION BY PASSWORD = 'MagneticFields!'  
與服務(wù)主密鑰類(lèi)似,如果沒(méi)有修改,則會(huì)收到如下提示:

The old and new master keys are identical. No data re-encryption is required.

示例三、從數(shù)據(jù)庫(kù)主密鑰刪除服務(wù)主密鑰

當(dāng)一個(gè)數(shù)據(jù)庫(kù)主密鑰被創(chuàng)建時(shí),它被默認(rèn)使用兩種方式加密:服務(wù)主密鑰和被使用CREATE MASTER KEY 命令中使用的密碼。如果你不想使用服務(wù)主密碼加密數(shù)據(jù)庫(kù)主密鑰(這種情況下,擁有sysadmin特權(quán)的login在不知道數(shù)據(jù)庫(kù)主密鑰的前提下將不能訪問(wèn)加密數(shù)據(jù)),你可以使用ALTER MASTER KEY 命令刪除服務(wù)主密鑰。

簡(jiǎn)略語(yǔ)法如下:

  1. ALTER MASTER KEY 
  2. ADD ENCRYPTION BY SERVICE MASTER KEY |  
  3. DROP ENCRYPTION BY SERVICE MASTER KEY 

由于服務(wù)主密鑰允許擁有足夠許可(如sysadmin)的用戶(hù)自動(dòng)使用數(shù)據(jù)庫(kù)加密,因此,一旦刪除了服務(wù)主密鑰的加密,而再想修改數(shù)據(jù)庫(kù)主密鑰時(shí),你必須使用一個(gè)新的命令訪問(wèn)它。OPEN MASTER KEY, 語(yǔ)法如下:

  1. OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password' 

下面是一個(gè)例子:

  1. ALTER MASTER KEY DROP ENCRYPTION BY SERVICE MASTER KEY 
  2. --一旦執(zhí)行,任何數(shù)據(jù)庫(kù)主密鑰的修改需要使用OPEN MASTER KEY的口令訪問(wèn),這樣是為了重新應(yīng)用服務(wù)主密鑰的加密  
  3. OPEN MASTER KEY DECRYPTION BY PASSWORD = 'MagneticFieldS!' 
  4. --一旦服務(wù)主密鑰被用于加密數(shù)據(jù)庫(kù)主密鑰,數(shù)據(jù)庫(kù)主密鑰不再需要被顯式打開(kāi)或關(guān)閉。  
  5. ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY 
  6. --關(guān)閉數(shù)據(jù)庫(kù)主密鑰  
  7. CLOSE MASTER KEY  

小結(jié):

1、本文主要介紹服務(wù)主密鑰的備份與還原,數(shù)據(jù)庫(kù)的主密鑰的創(chuàng)建、重新生成、刪除和備份、還原。

2、一旦創(chuàng)建主密鑰,立刻備份它是一個(gè)很好的習(xí)慣。

下文將主要介紹非對(duì)稱(chēng)密鑰加密(Asymmetric Key Encryption)

原文出處:http://www.cnblogs.com/downmoon/archive/2011/03/10/1979786.html

【編輯推薦】

  1. 淺析SQL Server 2008中的代碼安全之一:存儲(chǔ)過(guò)程加密與安全上下文
  2. 淺析SQL Server 2008中的代碼安全之二:DDL觸發(fā)器與登錄觸發(fā)器
  3. 淺析SQL Server 2008中的代碼安全之三:通過(guò)PassPhrase加密
  4. Win 7下SQL Server不能連接的一個(gè)案例解決
  5. sql server安全的兩層模型

 

責(zé)任編輯:艾婧 來(lái)源: 博客園
相關(guān)推薦

2011-03-15 09:51:09

2011-03-14 10:38:10

SQL Server非對(duì)稱(chēng)密鑰加密

2011-03-16 08:42:22

SQL Server證書(shū)加密

2011-08-19 11:26:41

SQL Server 主密鑰

2011-03-18 09:11:14

SQL Server透明加密

2011-03-14 15:06:49

SQL Server 安全

2011-03-03 10:45:51

2009-04-16 18:07:39

2011-03-18 10:27:00

SQL Server目錄索引

2011-02-28 15:46:22

SQLSQL ServerSQL Server

2009-04-16 17:34:19

2011-03-03 09:30:24

downmoonsql登錄觸發(fā)器

2009-02-16 16:10:49

安全審計(jì)安裝SQL Server

2009-04-16 18:25:55

2010-06-30 08:20:05

SQL Server

2011-08-19 10:40:27

SQL Server Merge命令

2009-04-16 17:44:31

2009-04-16 18:15:19

動(dòng)作審核審核活動(dòng)SQL Server

2011-08-19 10:13:34

SQL Server Values新用途

2011-08-19 10:24:46

SQL Server Top新用途
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)