OPEN MASTER KEY (Transact-SQL)
Открывает главный ключ текущей базы данных.
Синтаксис
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password'
Аргументы
- 'password'
Пароль, которым был зашифрован главный ключ базы данных.
Замечания
Если главный ключ базы данных был зашифрован с помощью главного ключа службы, то он автоматически будет открываться при необходимости расшифровать или зашифровать ключ. В этом случае инструкцию OPEN MASTER KEY использовать не нужно.
При первом присоединении базы данных к новому экземпляру SQL Server копия главного ключа базы данных (зашифрованная главным ключом службы) еще не хранится на сервере. Нужно расшифровать главный ключ базы данных с помощью инструкции OPEN MASTER KEY. Как только главный ключ базы данных будет расшифрован, появится возможность разрешить автоматическую расшифровку в будущем с помощью инструкции ALTER MASTER KEY, чтобы оставить на сервере копию главного ключа базы данных, зашифрованного с помощью главного ключа службы. Эта возможность описана в разделе ALTER MASTER KEY (Transact-SQL).
При помощи инструкции ALTER MASTER KEY с параметром DROP ENCRYPTION BY SERVICE MASTER KEY можно запретить автоматическое управление главным ключом определенной базы данных. После этого необходимо явно открыть главный ключ базы данных с помощью пароля.
При откате транзакции, в которой главный ключ базы данных был явно открыт, этот ключ останется открытым.
Разрешения
Необходимо разрешение CONTROL для базы данных.
Примеры
В приведенном далее примере открывается главный ключ базы данных AdventureWorks2008R2, зашифрованный с помощью пароля.
USE AdventureWorks2008R2;
OPEN MASTER KEY DECRYPTION BY PASSWORD = '43987hkhj4325tsku7';
GO