RESTORE SYMMETRIC KEY (Transact-SQL)

适用于: SQL Server 2022 (16.x)

注意

SQL Server 2022 (16.x) 引入了以下支持:可从 Azure Blob 存储或文件导出和导入对称密钥。

导入对称密钥。

Transact-SQL 语法约定

语法

RESTORE SYMMETRIC KEY key_name FROM 
  {
    FILE = 'path_to_file'
  | URL = 'Azure Blob storage URL'
  }
      DECRYPTION BY PASSWORD = 'password'
      ENCRYPTION BY PASSWORD = 'password' 

参数

FILE ='path_to_file'
指定将导出对称密钥的文件的完整路径(包括文件名)。 此路径可以是本地路径,也可以是网络位置的 UNC 路径。

URL ='Azure Blob storage URL' 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'
指定用于在将对称密钥加载到数据库之后对该密钥进行加密的密码。 此密码应通过复杂性检查。 有关详细信息,请参阅 Password Policy

先决条件

若要通过 Azure Blob 存储还原对称密钥,需要:

  1. 具备有对称密钥备份的 Azure 存储帐户
  2. 创建存储访问策略和共享访问存储
  3. 使用共享访问签名创建 SQL Server 凭据

有关详细信息,请参阅教程:将 Azure Blob 存储与 SQL Server 配合使用

权限

要求对对称密钥具有 ALTER 权限。 如果使用证书或非对称密钥添加加密,则要求对证书或非对称密钥具有 VIEW DEFINITION 权限。 如果使用证书或非对称密钥删除加密,则要求对证书或非对称密钥具有 CONTROL 权限。

示例

在以下示例中,对称密钥是通过文件还原的。

RESTORE SYMMETRIC KEY symmetric_key
   FROM FILE = 'c:\temp_backups\keys\symmetric_key' 
   DECRYPTION BY PASSWORD = '3dH85Hhk003#GHkf02597gheij04'   
   ENCRYPTION BY PASSWORD = '259087M#MyjkFkjhywiyedfgGDFD'; 

在以下示例中,对称密钥是通过 Azure Blob 存储还原的。

RESTORE SYMMETRIC KEY symmetric_key 
   FROM URL = 'https://mydocsteststorage.blob.core.windows.net/mytestcontainer/symmetric_key.bak'
   DECRYPTION BY PASSWORD = '3dH85Hhk003#GHkf02597gheij04'   
   ENCRYPTION BY PASSWORD = '259087M#MyjkFkjhywiyedfgGDFD'; 

另请参阅

BACKUP SYMMETRIC KEY