Мы получаем ошибку T-SQL (SQL Server 2008 R2) в BACKUP CERTIFICATE: ERROR_NUMBER 15151, СЕРЬЕЗНОСТЬ 16, СОСТОЯНИЕ 1, ПРОЦЕДУРА -, СТРОКА 8, СООБЩЕНИЕ: не удается найти сертификат 'certificate1', так как он не существует или вы не иметь разрешения.
Мы можем увидеть сертификат в master.sys.certificates.
Наш псевдокод:
скопируйте неприкрепленный template_db в db1
прикрепить db1
создать сертификат1 (в хранимой процедуре в мастер БД)
сгенерировать @пароль
СОЗДАТЬ КЛЮЧ ШИФРОВАНИЯ БАЗЫ ДАННЫХ… ШИФРОВАНИЕ СЕРВЕРНЫМ СЕРТИФИКАТОМ '+@certificate_name +… (в хранимой процедуре в db1)
включите прозрачное шифрование базы данных для db1 с использованием сертификата1. (N'ALTER DATABASE '+@db_name+N' ВКЛЮЧИТЬ ШИФРОВАНИЕ')
N'BACKUP CERTIFICATE '+@имя_сертификата+N' В ФАЙЛ = '''+@путь_к_файлу_сертификата+N''' С ЧАСТНЫМ КЛЮЧОМ (ФАЙЛ = '''+@путь_к_файлу_приватного_ключа+N''', ШИФРОВАНИЕ ПАРОЛЕМ = ''' +@пароль+N''''
Чтобы попытаться обойти эту ошибку, мы протестировали три способа с кодом BACKUP CERTIFICATE каждый раз в разных базах данных, включая db1 и master. Все получают одну и ту же ошибку.
Любые идеи? Спасибо.