日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
SQLServer2008中的代碼安全之主密鑰詳解

SQL Server 2008中的代碼安全之主密鑰的相關(guān)知識(shí)是本文我們主要要介紹的內(nèi)容,在SQL Server中的加密由層次結(jié)構(gòu)形式進(jìn)行處理以提供多級(jí)別的安全。SQL Server包含兩個(gè)用于加密數(shù)據(jù)的密鑰類型。如下圖:

創(chuàng)新互聯(lián)建站長(zhǎng)期為千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為江海企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,江海網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

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

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

我們看一組例子:

示例一、備份及還原服務(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)

--以下語句備份服務(wù)主密鑰到C:\SqlBackup\SMK.bak.

 
 
 
 
  1. BACKUP SERVICE MASTER KEY
  2. TO FILE = 'C:\SqlBackup\SMK.bak'
  3. ENCRYPTION BY PASSWORD = 'MakeItAGoodOne!1AB'----注意該密碼可以使用單引號(hào)
  4. go

--恢復(fù)服務(wù)主密鑰

 
 
 
 
  1. RESTORE SERVICE MASTER KEY
  2. FROM FILE = 'H:\SqlBackup\SMK.bak'
  3. DECRYPTION BY PASSWORD = 'MakeItAGoodOne!1AB'
  4. go

如果該密鑰沒有實(shí)際變化,而執(zhí)行密鑰恢復(fù)時(shí),會(huì)收到提示:--The old and new master keys are identical. No data re-encryption is required.

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

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

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

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

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

當(dāng)數(shù)據(jù)庫主密鑰被顯式創(chuàng)建時(shí),會(huì)同時(shí)自動(dòng)生成一個(gè)額外生成的安全層,用于加密數(shù)據(jù)庫中的新證書和非對(duì)稱密鑰,更進(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

--創(chuàng)建數(shù)據(jù)庫主密鑰

 
 
 
 
  1. CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password'
  2. go
  3. USE BookStore
  4. GO

--重新生成數(shù)據(jù)庫主密鑰

 
 
 
 
  1. ALTER MASTER KEY
  2. [FORCE] REGENERATE WITH ENCRYPTION BY PASSWORD = 'password'

--刪除數(shù)據(jù)庫主密鑰

 
 
 
 
  1. USE BookStore
  2. GO
  3. DROP MASTER KEY

注意:如果該數(shù)據(jù)庫主密鑰仍然被其他數(shù)據(jù)庫對(duì)象使用,則不能被刪除,這點(diǎn)與架構(gòu)類似。同時(shí)一旦創(chuàng)建數(shù)據(jù)庫主密鑰,就立刻備份它是一個(gè)好的習(xí)慣。

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

語法:

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

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

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

--備份數(shù)據(jù)庫主密鑰

 
 
 
 
  1. USE BookStore
  2. GO
  3. CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MagneticFields!'
  4. GO
  5. BACKUP MASTER KEY TO FILE = 'H:\SqlBackup\BookStore_Master_Key.BAK'
  6. ENCRYPTION BY PASSWORD = '4D280837!!!'

--恢復(fù)數(shù)據(jù)庫主密鑰

 
 
 
 
  1. RESTORE MASTER KEY FROM FILE = 'H:\SqlBackup\BookStore_Master_Key.BAK'
  2. DECRYPTION BY PASSWORD = '4D280837!!!'
  3. ENCRYPTION BY PASSWORD = 'MagneticFields!'

與服務(wù)主密鑰類似,如果沒有修改,則會(huì)收到如下提示:The old and new master keys are identical. No data re-encryption is required.

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

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

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

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

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

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

ALTER MASTER KEY DROP ENCRYPTION BY SERVICE MASTER KEY一旦執(zhí)行,任何數(shù)據(jù)庫主密鑰的修改需要使用OPEN MASTER KEY的口令訪問,這樣是為了重新應(yīng)用服務(wù)主密鑰的加密.

OPEN MASTER KEY DECRYPTION BY PASSWORD = 'MagneticFieldS!'一旦服務(wù)主密鑰被用于加密數(shù)據(jù)庫主密鑰,數(shù)據(jù)庫主密鑰不再需要被顯式打開或關(guān)閉。

ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY關(guān)閉數(shù)據(jù)庫主密鑰CLOSE MASTER KEY.

小結(jié):

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

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

關(guān)于SQL Server 2008中的代碼安全之主密鑰的知識(shí)就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!


文章標(biāo)題:SQLServer2008中的代碼安全之主密鑰詳解
文章網(wǎng)址:http://www.5511xx.com/article/coiojeg.html