建立SQL Server 和資料庫加密金鑰
SQL Server 使用加密金鑰幫助保護儲存在伺服器資料庫中的資料、憑據和連線資訊。SQL Server 的金鑰分為兩種:“對稱”和“非對稱”。對稱金鑰使用相同的密碼對資料進行加密和解密。非對稱金鑰使用一個密碼來加密資料(稱為公鑰),使用另一個密碼來解密資料(稱為私鑰)。
在 SQL Server 中,加密金鑰包括一組用來保護敏感資料的公鑰、私鑰和對稱金鑰。當第一次啟動 SQL Server 例項時,將在 SQL Server 初始化過程中建立對稱金鑰。SQL Server 使用此金鑰來加密儲存在 SQL Server 中的敏感資料。公鑰和私鑰由作業系統建立,用於保護對稱金鑰。對於在資料庫中儲存敏感資料的每個 SQL Server 例項,都要建立一個公鑰私鑰對。
SQL Server 和資料庫金鑰的應用
SQL Server 中的金鑰應用主要有兩個方面:在某 SQL Server 例項上為該例項生成的“服務主金鑰”(SMK) 和用於資料庫的“資料庫主金鑰”(DMK)。
當第一次啟動 SQL Server 例項時,將自動生成 SMK 並用於對連結的伺服器密碼、憑據和資料庫主金鑰進行加密。SMK 是通過使用採用 Windows 資料保護 API (DPAPI) 的本地計算機金鑰進行加密的。DPAPI 使用從 SQL Server 服務帳戶的 Windows 憑據和計算機的憑據派生的金鑰。服務主金鑰只能由建立它時所用的服務帳戶或可以訪問該計算機憑據的主體進行解密。
資料庫主金鑰是一種用於保護資料庫中存在的證書私鑰和非對稱金鑰的對稱金鑰。它還可用於對資料進行加密,但由於它有長度限制,所以用於資料加密時實用性不如對稱金鑰。
當建立主金鑰時,會使用 Triple DES 演算法以及使用者提供的密碼對其進行加密。若要啟用資料庫主金鑰的自動解密,請使用 SMK 對此金鑰的副本進行加密。此金鑰的副本儲存在使用它的資料庫和 master 系統資料庫中。
每當更改 DMK 時,儲存在 master 系統資料庫中的 DMK 副本都將在沒有提示的情況下更新。但是,使用 ALTER MASTER KEY 語句的 DROP ENCRYPTION BY SERVICE MASTER KEY 選項可以更改此預設設定。必須使用 OPEN MASTER KEY 語句和密碼開啟未使用服務主金鑰進行加密的 DMK。
管理 SQL Server 和資料庫金鑰
對加密金鑰的管理包括建立新資料庫金鑰,建立伺服器和資料庫金鑰的備份以及瞭解還原、刪除或更改金鑰的條件和方式。
若要管理對稱金鑰,可以使用 SQL Server 中包括的工具執行下列操作:
備份伺服器和資料庫金鑰的副本,以便可以使用這些金鑰來恢復伺服器安裝,或作為計劃遷移的一部分。
將以前儲存的金鑰還原到資料庫。這樣,新伺服器例項就可以訪問最初不是由其加密的現有資料。
當不能再訪問加密資料時刪除資料庫中的加密資料,這種情況極少出現。
當金鑰的安全性受到威脅時,重新建立金鑰並重新對資料進行加密,這種情況極少出現。作為安全性方面的最佳做法,您應定期(例如,每隔幾個月)重新建立金鑰以保護伺服器,使其能夠抵禦試圖解開金鑰的攻擊。
在伺服器擴充套件部署(多個伺服器同時共享單個資料庫以及為該資料庫提供可逆加密的金鑰)中新增或刪除伺服器例項。
重要的安全資訊
訪問由服務主金鑰保護的物件需要使用用來建立該金鑰的 SQL Server 服務帳戶或計算機帳戶。即,計算機與建立金鑰的系統繫結在一起。您可以更改 SQL Server 服務帳戶或計算機帳戶,而不會失去對金鑰的訪問許可權。但是,如果同時更改兩者,則將失去對服務主金鑰的訪問許可權。如果在不具有這兩個元素中的任何一個的情況下失去了服務主金鑰的訪問許可權,則將無法對使用原始金鑰加密的資料和物件進行解密。
如果沒有服務主金鑰,則將無法還原受服務主金鑰保護的連線。
訪問受資料庫主金鑰保護的物件和資料只需要有用於幫助保護金鑰的密碼。
注意:
如果失去了對前述金鑰的所有訪問許可權,則將無法訪問由這些金鑰保護的物件、連線和資料。可按照此處顯示的連結中說明的方法還原服務主金鑰,也可以返回原始加密系統來恢復訪問許可權。沒有用來恢復訪問許可權的“後門”。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-503439/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server 和資料庫加密金鑰SQLServer資料庫加密
- 獲取安卓中加密資料庫的金鑰安卓加密資料庫
- 如何建立和還原SQL Server 2005資料庫?SQLServer資料庫
- 如何建立和還原SQL Server 2000資料庫?SQLServer資料庫
- 資料加密 第四篇:對稱金鑰加密
- SQL建立資料庫和表SQL資料庫
- 建立SQL Server資料庫指令碼 範例SQLServer資料庫指令碼
- SQL Server 建立伺服器和資料庫級別審計SQLServer伺服器資料庫
- 資料加密 第五篇:非對稱金鑰加密
- SQL Server 2008證書和非對稱金鑰SQLServer
- ASP建立SQL Server資料庫的兩種方法SQLServer資料庫
- server2003安裝金鑰 server金鑰序列號Server
- Zabbix透過PSK共享金鑰實現Server和Agent的通訊加密Server加密
- 【資料庫資料恢復】SQL server資料庫被加密怎麼辦?如何恢復?資料庫資料恢復SQLServer加密
- 伺服器SQL server資料庫被加密恢復方案伺服器SQLServer資料庫加密
- SQL Server建立使用者只能訪問指定資料庫和檢視SQLServer資料庫
- SQL Server資料庫安全SQLServer資料庫
- SQL Server 資料庫映象SQLServer資料庫
- SQL Server 資料庫索引SQLServer資料庫索引
- 資料庫映象 (SQL Server)資料庫SQLServer
- 附加和分離SQL Server資料庫方法SQLServer資料庫
- 備份和恢復SQL Server資料庫SQLServer資料庫
- 關於SQL Server 映象資料庫快照的建立及使用SQLServer資料庫
- SQL Server 2008 建立完整資料庫備份SQLServer資料庫
- SQL Server資料庫管理常用SQL和T-SQL語句SQLServer資料庫
- C# Rsa加密(私鑰加密、公鑰解密、金鑰格式轉換、支援超大長度分段加密)C#加密解密
- Sql Server基礎:使用T_SQL建立,修改,檢視資料庫資訊SQLServer資料庫
- iOS和macOS應用程式本地資料庫金鑰處理設計iOSMac資料庫
- SQL Server資料庫建立新使用者及關聯資料庫的方法教程SQLServer資料庫
- SQL Server 2008企業版中的資料庫加密SQLServer資料庫加密
- SQL Server收縮資料庫SQLServer資料庫
- 管理SQL Server資料庫安全SQLServer資料庫
- SQL Server資料庫遷移SQLServer資料庫
- 還原SQL Server資料庫SQLServer資料庫
- sql server跟蹤資料庫SQLServer資料庫
- SQL Server資料庫監控SQLServer資料庫
- 資料庫例項 (SQL Server)資料庫SQLServer
- Sql Server系列:資料庫操作SQLServer資料庫