RESTORE MASTER KEY (Transact-SQL)
適用于:SQL Server
從備份檔案匯入資料庫主要金鑰。
重要
SQL Server 2022 (16.x) 引進對 Azure Blob 儲存體中資料庫主要金鑰的備份和還原支援。 語法 URL
僅適用于 SQL Server 2022 (16.x) 和更新版本。
Syntax
RESTORE MASTER KEY FROM
{
FILE = 'path_to_file'
| URL = 'Azure Blob storage URL'
}
DECRYPTION BY PASSWORD = 'password'
ENCRYPTION BY PASSWORD = 'password'
[ FORCE ]
注意
若要檢視 SQL Server 2014 與更早版本的 Transact-SQL 語法,請參閱舊版文件。
引數
FILE ='path_to_file'
指定預存資料庫主要金鑰的完整路徑,包括檔案名稱。 path_to_file 可以是本機路徑或通往網路位置的 UNC 路徑。
URL ='Azure Blob 儲存體 URL'
適用于:SQL Server 2022 (16.x) 及更新版本
這是 Azure Blob 儲存體的 URL,其格式類似 https://<storage_account_name>.blob.core.windows.net/<storage_container_name>/<backup_file_name>.bak
。
DECRYPTION BY PASSWORD ='password'
指定解密要從檔案匯入之資料庫主要金鑰時所需的密碼。
ENCRYPTION BY PASSWORD ='password'
指定資料庫主要金鑰已載入資料庫中之後用來加密該金鑰的密碼。
FORCE
指定 RESTORE 程式應該繼續,即使目前的資料庫主要金鑰未開啟,或SQL Server無法解密其中一些已加密的私密金鑰。
備註
還原主要金鑰時,SQL Server解密使用目前作用中主要金鑰加密的所有金鑰,然後使用還原的主要金鑰來加密這些金鑰。 這項需要大量資源的作業應該安排在低需求時進行。 如果目前的資料庫主要金鑰未開啟或無法開啟,或如果無法解密所加密的任何金鑰,還原作業就會失敗。
請只在主要金鑰無法擷取或解密失敗時才使用 FORCE 選項。 只由無法擷取的金鑰加密的資訊會遺失。
如果先前是由服務主要金鑰加密主要金鑰,則還原的主要金鑰也會由服務主要金鑰來加密。
如果目前資料庫中沒有主要金鑰,RESTORE MASTER KEY 會建立主要金鑰。 新的主要金鑰不會使用服務主要金鑰自動加密。
如果您使用 SQL Server 2022 (16.x) 和更新版本,而且想要從 Azure Blob 儲存體還原資料庫主要金鑰,則適用下列必要條件:
擁有 Azure 儲存體帳戶。
-
如需詳細資訊,請參閱教學課程:搭配SQL Server使用Azure Blob 儲存體。
權限
需要資料庫的 CONTROL 權限。
範例
下列範例會從檔案還原資料庫的資料庫主要金鑰 AdventureWorks2012
。
USE AdventureWorks2012;
RESTORE MASTER KEY
FROM FILE = 'c:\backups\keys\AdventureWorks2012_master_key'
DECRYPTION BY PASSWORD = '3dH85Hhk003#GHkf02597gheij04'
ENCRYPTION BY PASSWORD = '259087M#MyjkFkjhywiyedfgGDFD';
GO
下列範例會從 Azure Blob 儲存體還原資料庫的資料庫主要金鑰 AdventureWorks2012
。
USE AdventureWorks2012;
RESTORE MASTER KEY
FROM URL = 'https://mydocsteststorage.blob.core.windows.net/mytestcontainer/AdventureWorks2012_master_key.bak'
DECRYPTION BY PASSWORD = '3dH85Hhk003#GHkf02597gheij04'
ENCRYPTION BY PASSWORD = '259087M#MyjkFkjhywiyedfgGDFD';
GO
另請參閱
CREATE MASTER KEY (Transact-SQL)
ALTER MASTER KEY (Transact-SQL)
加密階層
RESTORE SYMMETRIC KEY