Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Ключ, который требуется для данной операции, поврежден.  [new]
IronKancler
Member

Откуда:
Сообщений: 19
Подскажите пожалуйста в чем проблема

USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '******';
GO

Use Master
GO
CREATE CERTIFICATE DBCert
WITH SUBJECT = 'DB Backup Encryption Certificate';
GO
BACKUP CERTIFICATE DBCert TO FILE = 'd:\temp\DBCert'
GO

BACKUP MASTER KEY TO FILE = 'd:\temp\MasterKey'
ENCRYPTION BY PASSWORD = '***********'

На другом компе:

RESTORE MASTER KEY FROM FILE = 'D:\temp\MasterKey'
DECRYPTION BY PASSWORD = '*************'
ENCRYPTION BY PASSWORD = '*************
GO
CREATE CERTIFICATE DBCert
FROM FILE = 'D:\temp\DBCert''

GO
--Восстанавливаю базу
USE master
GO
RESTORE DATABASE [DB_20190320_1311] FROM DISK = N'D:\temp\DB_copy_only_20190320_1307.bak' WITH FILE = 1, NOUNLOAD, STATS = 5
---------------------------------------------------

и получаю ошибку

Сообщение 15507, уровень 16, состояние 30, строка 2
Ключ, который требуется для данной операции, поврежден.
Сообщение 3013, уровень 16, состояние 1, строка 2
RESTORE DATABASE прервано с ошибкой.
20 мар 19, 13:25    [21838434]     Ответить | Цитировать Сообщить модератору
 Re: Ключ, который требуется для данной операции, поврежден.  [new]
IronKancler
Member

Откуда:
Сообщений: 19
Бэкап делал так

BACKUP DATABASE [DB] TO DISK = N'D:\temp\DB_copy_only_20190320_1307' WITH ENCRYPTION (ALGORITHM = AES_256, SERVER CERTIFICATE = DBCert), COPY_ONLY, NOFORMAT, NOINIT, NAME = N''DB-Full Database Backup'', SKIP, NOREWIND, NOUNLOAD, STATS = 10
20 мар 19, 13:27    [21838440]     Ответить | Цитировать Сообщить модератору
 Re: Ключ, который требуется для данной операции, поврежден.  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1364
IronKancler,

OPEN MASTER KEY DECRYPTION BY PASSWORD =  '******'
20 мар 19, 14:16    [21838509]     Ответить | Цитировать Сообщить модератору
 Re: Ключ, который требуется для данной операции, поврежден.  [new]
IronKancler
Member

Откуда:
Сообщений: 19
OPEN MASTER KEY DECRYPTION BY PASSWORD = '****'
Выполнилось

База по прежнему не восстанавливается
20 мар 19, 14:19    [21838512]     Ответить | Цитировать Сообщить модератору
 Re: Ключ, который требуется для данной операции, поврежден.  [new]
IronKancler
Member

Откуда:
Сообщений: 19
Я вижу такие примеры восстановления сертификата

CREATE CERTIFICATE DBCert
FROM FILE = 'D:\tmp\DBCert'
WITH PRIVATE KEY
(
FILE = 'D:\temp\DB.key' ,
DECRYPTION BY PASSWORD = '*******'
)


Но я не создавал ключей (DB.key) - может как то с этим связана ошибка?
20 мар 19, 14:22    [21838513]     Ответить | Цитировать Сообщить модератору
 Re: Ключ, который требуется для данной операции, поврежден.  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1364
IronKancler,

а вы еще бэкап сертификата сделали только с открытым ключем.

у вас для восстановления:
а) должен сущесвовать мастер ключ базы мастер
б) должен быть импортирован сертификат который использовался для шифрования бэкапа

если схематично то что то типа того:
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '******';
GO 
create certificate cert with subject ='backup cert';
go
backup certificate cert to file ='C:\cert.cer' with private key (file = 'c:\cert.pvk', encryption by password = '123456');
go
backup database some_db_for_backup ...  with encryption (algorithm = aes_256, server certificate = cert);


на втором сервере:
use master;

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '111';--если ключа БД еще нет
go

create certificate cert from file = 'c:\cert.cer' with private key (file = 'c:\cert.pvk', decryption by password = '123456');
go

OPEN MASTER KEY DECRYPTION BY PASSWORD =  '111';
go

restore database ...
20 мар 19, 14:31    [21838530]     Ответить | Цитировать Сообщить модератору
 Re: Ключ, который требуется для данной операции, поврежден.  [new]
IronKancler
Member

Откуда:
Сообщений: 19
felix. Спасибо большое.

Все верно я сделал бэкап только с открытым ключем

+При восстановлении нужно писать OPEN MASTER KEY DECRYPTION BY PASSWORD

Спасибо!
20 мар 19, 14:45    [21838552]     Ответить | Цитировать Сообщить модератору
 Re: Ключ, который требуется для данной операции, поврежден.  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1364
IronKancler
felix. Спасибо большое.

Все верно я сделал бэкап только с открытым ключем

+При восстановлении нужно писать OPEN MASTER KEY DECRYPTION BY PASSWORD

Спасибо!


вы можете не писать данную инструкцию если у вас мастер ключ БД шифруется мастер ключем службы.

посмотреть это можно в sys.databases
select is_master_key_encrypted_by_server , name from sys.databases
20 мар 19, 14:49    [21838562]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить