ALTER CERTIFICATE (Transact-SQL)

Изменяет закрытый ключ, используемый для шифрования сертификата, или добавляет закрытый ключ, если он не существует. Изменяет доступность сертификата для компонента Компонент Service Broker.

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

Значок ссылки на раздел Cинтаксические обозначения в 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'
    Задает пароль, который используется для шифрования закрытого ключа сертификата в базе данных. password должен соответствовать требованиям политики паролей Windows применительно к компьютеру, на котором запущен экземпляр SQL Server. Дополнительные сведения см. в разделе Политика паролей.

  • 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).

Параметр WITH PRIVATE KEY недоступен в автономной базе данных.

Разрешения

Требует разрешения ALTER для сертификата.

Примеры

А.Изменение пароля сертификата

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)

Основные понятия

Иерархия средств шифрования