Я получаю ошибку разрешения при попытке отправить сообщение из моей базы данных.
Включаю прокер-сервис:
-- Enable Broker on Initiator
ALTER DATABASE A-DB SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
ALTER DATABASE A-DB SET ENABLE_BROKER;
ALTER AUTHORIZATION ON DATABASE::A-DB TO [sa];
ALTER DATABASE A-DB SET TRUSTWORTHY ON;
ALTER DATABASE A-DB SET MULTI_USER;
GO
Затем я создаю очереди и все такое ...
Когда я пытаюсь отправить сообщение, я вижу следующую ошибку в sys.transmission_queue:
Возникла исключительная ситуация при постановке сообщения в целевую очередь. Ошибка: 916, состояние: 3. Принципал сервера «sa» не может получить доступ к базе данных «MYDBNAME» в текущем контексте безопасности.
(Где MYDBNAME - это имя используемой базы данных)
Я ДУМАЮ, что ошибка вызвана этой строкой:
ИЗМЕНИТЬ АВТОРИЗАЦИЮ В БАЗЕ ДАННЫХ :: A-DB TO [sa];
Это может быть плохо. Но могу ли я изменить разрешение, чтобы вернуть его в прежнее состояние? Я думал, что это будет dbo, но это неправильно. Следует ли указать, кто когда-либо создавал базу данных?
EXECUTE AS USER 'dbo'
завершится успешно? Я ожидаю, что это не удастся, а затем вам нужноALTER AUTHORIZATION ON DATABASE::[MYDBNAME] TO [sa];
. - person Remus Rusanu   schedule 04.11.2013