Среда, которую я использую, - это виртуальная машина, размещенная в Azure.
Недавно я создал новый экземпляр SQL Server на этой виртуальной машине с именем TESTINSTANCE (в дополнение к существующей по умолчанию). Я использовал отдельную учетную запись службы.
Впоследствии мне необходимо восстановить резервную копию базы данных в новом экземпляре. В источнике был создан главный ключ и сертификат.
Поэтому, прежде чем восстанавливать, я думаю, что необходимо восстановить этот ключ в моем целевом экземпляре (TESTINSTANCE).
Однако, когда я проверяю ниже:
-- Create a database master key on the destination instance of SQL Server.
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'value_a';
GO
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'value_a';
go
RESTORE MASTER KEY
FROM FILE = 'C:\folder_\masterdb_masterkey'
DECRYPTION BY PASSWORD = 'value_b'
ENCRYPTION BY PASSWORD = 'value_a';
GO
Я получаю следующее сообщение об ошибке:
Файл мастер-ключа не существует или имеет недопустимыйformat.
Я полагаю, что это может быть вызвано разрешениями учетной записи службы, которая была создана во время моей установки TESTINSTANCE.
Однако, когда я проверяю раздел «Права и привилегии Windows» на странице ниже, я понимаю, что учетная запись службы TESTINSTANCE должна получить те же разрешения, что и учетная запись по умолчанию.
https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-windows-service-accounts-and-permissions?view=sql-server-2017
Так что я не уверен, почему он не может получить доступ к этому месту на диске C. Для подтверждения файл существует в «C: \ folder_ \ masterdb_masterkey»