Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Система платформы аналитики (PDW)
База данных SQL в Microsoft Fabric
Изменяет пароль, используемый для шифрования закрытого ключа сертификата, удаляет закрытый ключ или импортирует закрытый ключ, если он не существует. Изменяет доступность сертификата на Service Broker.
Соглашения о синтаксисе Transact-SQL
Syntax
-- Syntax for SQL Server and Azure SQL Database
ALTER CERTIFICATE certificate_name
REMOVE PRIVATE KEY
| WITH PRIVATE KEY ( <private_key_spec> )
| WITH ACTIVE FOR BEGIN_DIALOG = { ON | OFF }
<private_key_spec> ::=
{
{ FILE = 'path_to_private_key' | BINARY = private_key_bits }
[ , DECRYPTION BY PASSWORD = 'current_password' ]
[ , ENCRYPTION BY PASSWORD = 'new_password' ]
}
|
{
[ DECRYPTION BY PASSWORD = 'current_password' ]
[ [ , ] ENCRYPTION BY PASSWORD = 'new_password' ]
}
-- Syntax for Parallel Data Warehouse
ALTER CERTIFICATE certificate_name
{
REMOVE PRIVATE KEY
| WITH PRIVATE KEY (
FILE = '<path_to_private_key>',
DECRYPTION BY PASSWORD = '<key password>' )
}
Arguments
certificate_name
Уникальное имя, по которому сертификат известен в базе данных.
УДАЛЕНИЕ ЗАКРЫТОГО КЛЮЧА
Указывает, что закрытый ключ больше не будет храниться в базе данных.
WITH PRIVATE KEY указывает, что закрытый ключ сертификата следует загрузить в SQL Server.
ФАЙЛ ='path_to_private_key'
Указывает полный путь к закрытому ключу, включая имя файла. Этот аргумент может быть локальным путем или UNC-путем к точке в сети. Доступ к файлу осуществляется в контексте безопасности учетной записи службы SQL Server. Используя этот аргумент, необходимо убедиться в том, что учетная запись службы имеет доступ к указанному файлу.
Если указать только имя файла, файл сохраняется в папке данных пользователя по умолчанию для экземпляра. Эта папка может быть или не является папкой ДАННЫХ SQL Server. В SQL Server Express LocalDB папкой данных пользователя по умолчанию для экземпляра является путь, указанный в переменной среды %USERPROFILE% учетной записи, создавшей этот экземпляр.
БИНАРНЫЙ ='private_key_bits'
Область применения: SQL Server 2012 (11.x) и более поздних версий.
Биты закрытого ключа, указанного в качестве двоичной константы. Биты могут находиться в зашифрованном виде. При шифровании необходимо указать пароль расшифровки. SQL Server не выполняет проверку политики паролей по этому паролю. Биты закрытого ключа должны быть в формате файла PVK.
DECRYPTION BY PASSWORD ='текущий пароль'
Указывает пароль, необходимый для расшифровки закрытого ключа.
ENCRYPTION BY PASSWORD ='новый пароль'
Задает пароль, который используется для шифрования закрытого ключа сертификата в базе данных.
new_password должны соответствовать требованиям политики паролей Windows компьютера, на котором выполняется экземпляр SQL Server. Дополнительные сведения см. в разделе Политика паролей.
АКТИВНО BEGIN_DIALOG = { ON | OFF }
Делает сертификат доступным инициатору диалога Service Broker.
Remarks
Закрытый ключ должен соответствовать открытому ключу, заданному аргументом certificate_name.
Если пароль в файле защищен паролем, можно опустить предложение DECRYPTION BY.
При импорте закрытого ключа сертификата, уже существующего в базе данных, закрытый ключ автоматически защищен главным ключом базы данных. Чтобы защитить закрытый ключ паролем, используйте предложение ENCRYPTION BY PASSWORD.
Параметр REMOVE PRIVATE KEY удаляет закрытый ключ сертификата из базы данных. При использовании сертификата можно удалить закрытый ключ для проверки подписей или в сценариях Service Broker, которые не требуют закрытого ключа. Не удаляйте закрытый ключ сертификата, который защищает симметричный ключ. Необходимо восстановить закрытый ключ, чтобы подписать все дополнительные модули или строки, которые должны быть проверены с помощью сертификата, или расшифровать значение, зашифрованное с помощью сертификата.
Не нужно указывать пароль расшифровки при шифровании закрытого ключа с помощью главного ключа базы данных.
Чтобы изменить пароль, используемый для шифрования закрытого ключа, не указывайте предложения FILE или BINARY.
Important
Всегда создавайте архивную копию закрытого ключа, прежде чем удалять его из базы данных. Дополнительные сведения см. в разделе BACKUP CERTIFICATE (Transact-SQL) и CERTPRIVATEKEY (Transact-SQL).
Параметр WITH PRIVATE KEY недоступен в автономной базе данных.
Ограничения
Имена сертификатов не могут быть изменены после создания. ALTER CERTIFICATE не поддерживает переименование сертификатов. Если необходимо использовать другое имя сертификата, необходимо создать новый сертификат и перенести зависимости.
Обходное решение для сертификатов TDE
Если необходимо заменить сертификат прозрачного шифрования данных (TDE) другим именем:
Резервное копирование текущего сертификата и закрытого ключа:
BACKUP CERTIFICATE OldTDECert TO FILE = 'C:\Backup\OldTDECert.cer' WITH PRIVATE KEY ( FILE = 'C:\Backup\OldTDECert.pvk', ENCRYPTION BY PASSWORD = '<password>' );Создайте новый сертификат с правильным именем:
CREATE CERTIFICATE NewTDECert WITH SUBJECT = 'TDE Certificate - Correct Name';Для каждой зашифрованной базы данных TDE измените ключ шифрования:
USE EncryptedDB; GO ALTER DATABASE ENCRYPTION KEY ENCRYPTION BY SERVER CERTIFICATE NewTDECert;После переноса всех баз данных удалите старый сертификат:
USE master; GO DROP CERTIFICATE OldTDECert;
Important
Перед внесением изменений TDE всегда выполняйте резервную копию сертификатов и закрытых ключей. Хранение резервных копий в безопасном расположении отдельно от сервера базы данных.
Permissions
Требует разрешения ALTER для сертификата.
Examples
A. Удаление закрытого ключа сертификата
ALTER CERTIFICATE Shipping04
REMOVE PRIVATE KEY;
GO
B. Изменение пароля, используемого для шифрования закрытого ключа
ALTER CERTIFICATE Shipping11
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hkjdskghFDGGG4%',
ENCRYPTION BY PASSWORD = '34958tosdgfkh##38');
GO
C. Импорт закрытого ключа для сертификата, который уже присутствует в базе данных
ALTER CERTIFICATE Shipping13
WITH PRIVATE KEY (FILE = 'c:\importedkeys\Shipping13',
DECRYPTION BY PASSWORD = 'GDFLKl8^^GGG4000%');
GO
D. Изменение защиты закрытого ключа паролем на защиту главным ключом базы данных
ALTER CERTIFICATE Shipping15
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hk000eEnvjkjy#F%');
GO