BACKUP CERTIFICATE (Transact-SQL)

Область применения: система платформы аналитики SQL Server (PDW)

Экспортирует сертификат в файл.

Примечание.

В SQL Server 2022 (16.x) сертификаты с закрытыми ключами можно создать резервную копию или восстановить непосредственно в файлы или двоичные BLOB-объекты с помощью формата пар открытых ключей (PKCS) #12 или обмена персональными данными (PFX).

Формат PKCS #12 или PFX — это двоичный формат для хранения сертификата сервера, всех промежуточных сертификатов и закрытого ключа в одном файле. PFX-файлы обычно имеют такие расширения, как .pfx и .p12. Для клиентов это упрощает соблюдение текущих рекомендаций по обеспечению безопасности и стандартов соответствия требованиям, запрещающих шифрование RC4, устраняя необходимость использования таких средств преобразования, как PVKConverter (для формата PVK или DER).

Соглашения о синтаксисе Transact-SQL

Синтаксис

-- Syntax for SQL Server  
  
BACKUP CERTIFICATE certname TO FILE = 'path_to_file'  
    [ WITH
      [FORMAT = 'PFX',]
      PRIVATE KEY   
      (   
        FILE = 'path_to_private_key_file' ,  
        ENCRYPTION BY PASSWORD = 'encryption_password'   
        [ , DECRYPTION BY PASSWORD = 'decryption_password' ]   
      )   
    ]  
-- Syntax for Parallel Data Warehouse  
  
BACKUP CERTIFICATE certname TO FILE ='path_to_file'  
      WITH PRIVATE KEY   
      (   
        FILE ='path_to_private_key_file',  
        ENCRYPTION BY PASSWORD ='encryption_password'   
      )   

Аргументы

certname
Является именем сертификата для резервного копирования.

TO FILE = 'путь к файлу'
Указывает полный путь, включая имя файла, для файла, в котором должен быть сохранен сертификат. Это может быть локальный путь или UNC-путь к расположению в сети. Если указано только имя файла, файл будет сохранен в папке данных пользователя по умолчанию для экземпляра (это может быть папка данных DATA для SQL Server или любая другая папка). В SQL Server Express LocalDB папкой данных пользователя по умолчанию для экземпляра является путь, указанный в переменной среды %USERPROFILE% учетной записи, создавшей этот экземпляр.

WITH FORMAT = 'PFX'
Область применения: SQL Server 2022 (16.x) и более поздних версий
Указывает на экспорт сертификата и его закрытого ключа в PFX-файл. Предложение не является обязательным.

WITH PRIVATE KEY указывает, что закрытый ключ сертификата следует сохранить в файл. Предложение не является обязательным.

FILE = 'путь к файлу закрытого ключа'
Указывает полный путь, включая имя файла, для файла, в котором должен быть сохранен закрытый ключ. Это может быть локальный путь или UNC-путь к расположению в сети. Если указано только имя файла, файл будет сохранен в папке данных пользователя по умолчанию для экземпляра (это может быть папка данных DATA для SQL Server или любая другая папка). В SQL Server Express LocalDB папкой данных пользователя по умолчанию для экземпляра является путь, указанный в переменной среды %USERPROFILE% учетной записи, создавшей этот экземпляр.

ENCRYPTION BY PASSWORD = 'пароль шифрования'
Пароль, используемый для шифрования закрытого ключа перед записью ключа в файл резервной копии. Пароль проходит проверку сложности.

DECRYPTION BY PASSWORD = 'пароль шифрования'
Пароль, используемый для дешифрования закрытого ключа перед созданием резервной копии ключа. Этот аргумент не является обязательным, если сертификат зашифрован главным ключом.

Замечания

Если закрытый ключ зашифрован с паролем в базе данных, необходимо указать пароль для дешифрования.

При создании резервной копии закрытого ключа в файле шифрование является необходимым. Пароль, используемый для защиты закрытого ключа в файле, не является тем же ключом, который применялся для шифрования закрытого ключа сертификата в базе данных.

Закрытые ключи сохраняются в формате PVK.

Чтобы восстановить резервную копию сертификата без закрытого ключа или с ним, используйте инструкцию CREATE CERTIFICATE.

Чтобы восстановить закрытый ключ в существующем сертификате в базе данных, используйте инструкцию ALTER CERTIFICATE.

При резервном копировании файлы будут перечислены в учетной записи службы экземпляра SQL Server. Если вам нужно восстановить сертификат сервера, работающего в другой учетной записи, настройте разрешения для файлов, чтобы они считывались новой учетной записью.

Разрешения

Требуется разрешение CONTROL для сертификата и знание пароля, использованного для шифрования закрытого ключа. Если резервное копирование выполняется только для общедоступной части сертификата, этой команде требуются некоторые разрешения для сертификата, а также необходимо, чтобы для вызывающей программы не было запрещено разрешение VIEW для сертификата.

Примеры

А. Экспорт сертификата в файл

В следующем примере сертификат экспортируется в файл.

BACKUP CERTIFICATE sales05 TO FILE = 'c:\storedcerts\sales05cert';  
GO  

B. Экспорт сертификата и закрытого ключа

В следующем примере закрытый ключ сертификата, подвергаемого резервному копированию, будет зашифрован с паролем 997jkhUbhk$w4ez0876hKHJH5gh.

BACKUP CERTIFICATE sales05 TO FILE = 'c:\storedcerts\sales05cert'  
    WITH PRIVATE KEY ( FILE = 'c:\storedkeys\sales05key' ,   
    ENCRYPTION BY PASSWORD = '997jkhUbhk$w4ez0876hKHJH5gh' );  
GO  

C. Экспорт сертификата с зашифрованным закрытым ключом

В следующем примере закрытый ключ сертификата подвергается шифрованию в базе данных. Дешифрование ключа должно проводиться с паролем 9875t6#6rfid7vble7r. При сохранении сертификата в файле резервной копии закрытый ключ будет зашифрован с паролем 9n34khUbhk$w4ecJH5gh.

BACKUP CERTIFICATE sales09 TO FILE = 'c:\storedcerts\sales09cert'   
    WITH PRIVATE KEY ( DECRYPTION BY PASSWORD = '9875t6#6rfid7vble7r' ,  
    FILE = 'c:\storedkeys\sales09key' ,   
    ENCRYPTION BY PASSWORD = '9n34khUbhk$w4ecJH5gh' );  
GO  

D. Экспорт сертификата и его закрытого ключа в PFX-файл

BACKUP CERTIFICATE Shipping04 TO FILE = 'c:\storedcerts\shipping04cert.pfx'
WITH  
    FORMAT = 'PFX',  
    PRIVATE KEY ( 
ENCRYPTION BY PASSWORD = '9n34khUbhk$w4ecJH5gh',  
ALGORITHM = 'AES_256'
    )

См. также

CREATE CERTIFICATE (Transact-SQL)
ALTER CERTIFICATE (Transact-SQL)
DROP CERTIFICATE (Transact-SQL)
CERTENCODED (Transact-SQL)
CERTPRIVATEKEY (Transact-SQL)
CERT_ID (Transact-SQL)
CERTPROPERTY (Transact-SQL)