Po skopiowaniu bazy SSISDB z jednego serwera na inny pojawił się komunikat o braku Database Master Key (DMK). I słusznie. Na serwerze A DMK jest zaszyfrowany za pomocą Service Master Key (SMK). Ewentualne poufne dane pakietów SSIS w bazie SSISDB są z kolei zaszyfrowane przez DMK. Jeśli baza została przeniesiona na serwer B, to znajdujący się tam SMK nie może być używany do rozszyfrowania DMK, a tym samym traci się dostęp do zaszyfrowanych danych w bazie.
Aby naprawić sytuację, trzeba skopiować DMK z serwera A na serwer B, tak aby zaszyfrował się na serwerze B za pomocą znajdującego się tam SMK. Na serwerze A należy więc wykonać backup key, a na serwerze B restore key. A oto szczegóły:
Najpierw przejdź do omawianej bazy:
USE SSISDB
GO
Zobacz, jakie klucze są aktualnie zdefiniowane (powinien pojawić się Database Master Key)
SELECT * FROM sys.symmetric_keys
Wykonaj kopię klucza:
BACKUP MASTER KEY TO FILE = 'N:\SQLServer\ssisdb_mk.bak'
ENCRYPTION BY PASSWORD = 'Pa$$w0rd'
A teraz na serwerze docelowym – przejdź do omawianej bazy:
USE SSISDB
GO
Odtwórz klucz. Ponieważ klucz już tam jest (ale nieczytelny) należy użyć opcji FORCE.
RESTORE MASTER KEY
FROM FILE = 'I:\SQLServer\ssisdb_mk.bak'
DECRYPTION BY PASSWORD = 'Pa$$w0rd'
ENCRYPTION BY PASSWORD = 'Pa$$w0rd'
FORCE;
GO
I wreszcie sprawdź, czy klucz jest widoczny:
SELECT * FROM sys.symmetric_keys