Не могу найти сертификат

Мы получаем ошибку 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. Все получают одну и ту же ошибку.

Любые идеи? Спасибо.


person user409756    schedule 14.01.2011    source источник
comment
Я не могу проголосовать за ваш ответ, потому что у меня недостаточно представителей. Спасибо за публикацию! Это была моя проблема, мне нужно было выделить основную базу данных, чтобы сделать резервную копию сертификата, который там хранился.   -  person Gabriel Brooks    schedule 24.12.2013


Ответы (1)


Мы попробовали еще раз, запустив BACKUP CERTIFICATE в главной БД, и на этот раз это сработало.

person user409756    schedule 20.01.2011