CREATE MASTER KEY (Transact-SQL)
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure базе данных SQL Azure Synapse Analytics Analytics Platform System (PDW) в Microsoft Fabric
Создает главный ключ базы данных в базе данных.
Внимание
- Следует создать резервную копию главного ключа с помощью инструкции BACKUP MASTER KEY и хранить ее в безопасном месте вне веб-сайта.
- В SQL Server следует также создать резервную копию главного ключа с помощью инструкции BACKUP MASTER KEY и хранить ее в безопасном месте вне веб-сайта.
Соглашения о синтаксисе Transact-SQL
Синтаксис
CREATE MASTER KEY [ ENCRYPTION BY PASSWORD ='password' ]
[ ; ]
Аргументы
PASSWORD ='password'
Пароль, который используется при шифровании главного ключа в базе данных. пароль должен соответствовать требованиям политики паролей Windows компьютера, на котором выполняется экземпляр SQL Server. пароль необязателен в База данных SQL и Azure Synapse Analytics.
Замечания
Главный ключ базы данных — это симметричный ключ, используемый для защиты закрытых ключей сертификатов и асимметричных ключей, присутствующих в базе данных и секретах в учетных данных в области базы данных. При создании этот главный ключ зашифровывается с помощью алгоритма AES_256 и предоставленного пользователем пароля. В SQL Server 2008 (10.0.x) и SQL Server 2008 R2 (10.50.x) используется алгоритм Triple DES. Чтобы включить автоматическую расшифровку главного ключа, его копия шифруется с помощью главного ключа службы и хранится как в базе данных, так и в master
. Как правило, копия, которая хранится в master
, обновляется без взаимодействия с пользователем при каждом изменении главного ключа. Это действие, заданное по умолчанию, можно изменить с помощью параметра DROP ENCRYPTION BY SERVICE MASTER KEY инструкции ALTER MASTER KEY. Главный ключ, который не зашифрован главным ключом службы, должен быть открыт с помощью инструкции OPEN MASTER KEY и пароля.
Столбец is_master_key_encrypted_by_server
представления каталога sys.databases
в master
указывает, зашифрован ли главный ключ базы данных с помощью главного ключа службы.
Сведения о главном ключе базы данных доступны в представлении каталога sys.symmetric_keys
.
Для SQL Server и Parallel Data Warehouse главный ключ обычно защищен с помощью главного ключа службы и по меньшей мере одного пароля. При физическом перемещении на другой сервер (доставка журналов, восстановление резервной копии и т. д.) база данных будет содержать копию главного ключа, зашифрованную с помощью главного ключа службы сервера-источника (если это шифрование не было явным образом удалено с помощью ALTER MASTER KEY DDL
), и его копию, зашифрованную с помощью каждого пароля, указанного во время операции CREATE MASTER KEY
или последующих операций ALTER MASTER KEY DDL
. Чтобы восстановить главный ключ и все данные, зашифрованные с его помощью, в качестве корневого в иерархии ключей, после перемещения базы данных, пользователю потребуется использовать инструкцию OPEN MASTER KEY
с одним из паролей, использовавшихся для защиты главного ключа, восстановить резервную копию главного ключа или восстановить резервную копию исходного главного ключа службы на новом сервере.
Для База данных SQL и Azure Synapse Analytics защита паролей не считается механизмом безопасности, чтобы предотвратить сценарий потери данных в ситуациях, когда база данных может быть перемещена с одного сервера на другой, так как защита главных ключей службы на главном ключе управляется платформой Microsoft Azure. Таким образом, пароль главного ключа является необязательным в Базе данных SQL и Azure Synapse Analytics.
Для База данных SQL главный ключ базы данных можно создать автоматически для защиты секретов в учетных данных с областью базы данных, используемых для аудита и других функций, требующих проверки подлинности базы данных во внешнем ресурсе, например учетной записи служба хранилища Azure. Главный ключ создается со строгим случайным образом выбранным паролем. Пользователи не могут создать главный ключ в логической master
базе данных. Пароль главного ключа неизвестен корпорации Майкрософт и недоступен после создания. По этой причине рекомендуется создать главный ключ базы данных перед созданием учетных данных в области базы данных.
Главный ключ службы и главный ключ базы данных защищаются алгоритмом шифрования AES-256.
Разрешения
Требует разрешения CONTROL для базы данных.
Примеры
Используйте следующий пример, чтобы создать главный ключ базы данных в базе данных. Ключ зашифрован с помощью пароля.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong password>';
GO
Убедитесь в наличии нового ключа, ##MS_DatabaseMasterKey##
:
SELECT * FROM sys.symmetric_keys;
GO