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
В. Экспорт сертификата с зашифрованным закрытым ключом
В следующем примере закрытый ключ сертификата подвергается шифрованию в базе данных. Дешифрование ключа должно проводиться с паролем 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)