SQL Service Broker: Dialog security is unavailable for this conversation because there is no security certificate…

20-Sie-2018

Pełny komunikat błędu:

Dialog security is unavailable for this conversation because there is no security certificate bound to the database principal (Id: 5). Either create a certificate for the principal, or specify ENCRYPTION = OFF when beginning the conversation.

Kiedy Service Broker nawiązuje połączenie to wykonuje to za pomocą kilku obiektów bazy danych takich jak sama usługa Service Broker, kolejka, konwersacja itp. Te obiekty mają swojego właściciela – jak wszystko w bazie danych więc jest to całkiem normalne. Jednak w Service Broker pod spodem działają certyfikaty – te służą do uwierzytelnienia. Niestety, jeśli coś majstrowałeś przy certyfikatach to takie powiązanie mogło się stracić. A jest ono dosyć proste

  • obiekt należy do użytkownika
  • użytkownik ma być zbindowany do certyfikatu

Sprawa będzie prosta.

Użytkownik powinien był być utworzony jakoś tak:

CREATE USER  …   WITHOUT LOGIN;

a certyfikat jakoś tak:

CREATE CERTIFICATE …   AUTHORIZATION [tutaj nazwa użytkownika] FROM  FILE=’…’

U mnie zadziałało od strzału!

Pomocny link:

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/8591016f-a1ca-43be-ab33-fddbcdec06b0/error-message-dialog-security?forum=sqlservicebroker

 

Dodaj komentarz:

Autor: Rafał Kraik