Назад | Перейти на главную страницу

sql error «Сервисному брокеру требуется доступ к главному ключу в базе данных» xxx «Главный ключ должен существовать.

Я новичок в SQL и администрировании баз данных, но все еще учусь. Мы получаем одну ошибку SQL в течение длительного времени, что, насколько нам известно, не влияет на наше приложение. Поэтому мы ставим это на второй план. Теперь это начинает меня беспокоить, и я хочу знать, что происходит.

Service Broker needs to access the master key in the datasbase "xxx" Error Code:26. The Master Key hast to exist and the service Master Key encryption is required.

Я проверил наш полный журнал sql и обнаружил, что ошибка возникла из ничего, я имею в виду, что в то время не было установленных обновлений, и более новая версия нашего приложения не была выпущена. Так что для меня это появилось «из ничего», по крайней мере, сейчас я ничего не вижу. Все началось несколько недель назад, и, возможно, я не могу все вспомнить.

Как такое может быть, что сервис-брокеру нужен доступ к главному ключу, а у нас даже нет ключей в нашей базе данных. мы никогда его не создавали.

Может кто-нибудь объяснить мне, как пользоваться ключом? Я имею в виду, что создание - это нормально:

USE xxx;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'xxx';
GO

Любая помощь немедленно приветствуется.

У меня была такая же ошибка в базах данных, которые используют брокера, который был перемещен на другой сервер, поэтому я пишу свой ответ на случай, если он может кому-то помочь.

Когда вы перемещаете базу данных, которая использует брокера с ключом шифрования, кажется, что вам нужно воссоздать главный ключ, чтобы брокер мог его использовать.

Сначала откройте мастер-ключ, затем воссоздайте его.

OPEN MASTER KEY DECRYPTION BY PASSWORD ='SomeStrongPassword'
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD ='SomeStrongPassword'

Это решило проблему для меня.