Я новичок в 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'
Это решило проблему для меня.