ALTER CERTIFICATE (Transact-SQL)
Изменения: 12 декабря 2006 г.
Изменяет закрытый ключ, используемый для шифрования сертификата, или добавляет закрытый ключ, если он не существует. Изменяет доступность сертификата для компонента Service Broker.
Синтаксические обозначения в Transact-SQL
Синтаксис
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'
|
DECRYPTION BY PASSWORD = 'key_password'
|
ENCRYPTION BY PASSWORD = 'password'
Аргументы
- certificate_name
Уникальное имя, под которым сертификат известен в базе данных.
- FILE ='path_to_private_key'
Указывает полный путь к закрытому ключу, включая имя файла. Этот аргумент может быть локальным путем или UNC-путем к точке в сети. Доступ к файлу осуществляется в контексте безопасности учетной записи службы SQL Server. Используя этот аргумент, необходимо убедиться в том, что учетная запись службы имеет доступ к указанному файлу.
- DECRYPTION BY PASSWORD ='key_password'
Указывает пароль, необходимый для расшифровки закрытого ключа.
- ENCRYPTION BY PASSWORD ='password'
Указывает пароль, использованный для шифрования закрытого ключа сертификата в базе данных. Этот пароль проходит проверку сложности согласно принятым правилам. Дополнительные сведения см. в разделе Политика паролей.
- REMOVE PRIVATE KEY
Указывает, что закрытый ключ больше не нужно хранить в базе данных.
- ACTIVE FOR BEGIN_DIALOG = { ON | OFF }
Делает сертификат доступным для инициатора диалога с компонентом Service Broker.
Замечания
Закрытый ключ должен соответствовать открытому ключу, заданному в аргументе certificate_name.
Предложение DECRYPTION BY PASSWORD может быть опущено, если пароль в файле защищен паролем, равным NULL.
Если закрытый ключ сертификата, уже существующий в базе данных, импортируется из файла, закрытый ключ будет автоматически защищен главным ключом базы данных. Чтобы защитить закрытый ключ паролем, используйте предложение ENCRYPTION BY PASSWORD.
Параметр REMOVE PRIVATE KEY удалит закрытый ключ сертификата из базы данных. Это можно сделать, если сертификат будет использоваться для проверки подписей или в сценариях компонента Service Broker, не требующих закрытого ключа. Не удаляйте закрытый ключ сертификата, который защищает симметричный ключ.
Указывать пароль расшифровки не нужно, если закрытый ключ зашифрован с помощью главного ключа базы данных.
Важно! |
---|
Всегда создавайте архивную копию закрытого ключа, прежде чем удалять его из базы данных. Дополнительные сведения см. в разделе BACKUP CERTIFICATE (Transact-SQL). |
Разрешения
Требует разрешения ALTER для сертификата.
Примеры
A. Изменение пароля сертификата
ALTER CERTIFICATE Shipping04
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = 'pGF$5DGvbd2439587y',
ENCRYPTION BY PASSWORD = '4-329578thlkajdshglXCSgf');
GO
Б. Изменение пароля, используемого для шифрования закрытого ключа
ALTER CERTIFICATE Shipping11
WITH PRIVATE KEY (ENCRYPTION BY PASSWORD = '34958tosdgfkh##38',
DECRYPTION BY PASSWORD = '95hkjdskghFDGGG4%');
GO
В. Импорт закрытого ключа для сертификата, который уже присутствует в базе данных
ALTER CERTIFICATE Shipping13
WITH PRIVATE KEY (FILE = 'c:\\importedkeys\Shipping13',
DECRYPTION BY PASSWORD = 'GDFLKl8^^GGG4000%');
GO
Г. Изменение защиты закрытого ключа с пароля на главный ключ базы данных
ALTER CERTIFICATE Shipping15
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hk000eEnvjkjy#F%');
GO
См. также
Справочник
CREATE CERTIFICATE (Transact-SQL)
DROP CERTIFICATE (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL)
EVENTDATA (Transact-SQL)