Компонент Service Broker, конечная точка - действительно ли мне нужен сертификат для отправки сообщения между двумя серверами?

Мне действительно нужно создавать сертификат для отправки сообщения в очереди между серверами sql? Могу ли я использовать аутентификацию dbo для конечной точки на обоих серверах?

create endpoint target
state = started
as TCP
(
LISTENER_PORT = 4022
)
FOR SERVICE_BROKER (AUTHENTICATION = CERTIFICATE ????, ENCRYPTION = ENABLED);

ЕСЛИ мне нужно использовать сертификат, могу ли я использовать сертификат базы данных пользователей вместо сертификата на главном сервере? Как бы я это сделал?

На данный момент я не беспокоюсь о безопасности. Оба сервера находятся в закрытой сети без доступа в Интернет.


Извините, у меня нет профилировщика. Я использую sql express 2005.

  CREATE ROUTE RoutetoTarget
    WITH
    BROKER_INSTANCE = 'xxxxxx-xxx-xx-x-x-x-x',
   SERVICE_NAME = 'LOCALReceivingService',

‹--- это работает только в экземплярах на том же сервере. Однако, как только я добавляю IP-адрес целевого сервера с номером порта (конечная точка, которую я создал на целевом сервере), сообщения отправляются в пустоту. Они никогда не попадают на другой сервер.

ADDRESS = 'TCP://targetipadress:PORT'

person tdjfdjdj    schedule 21.04.2011    source источник


Ответы (2)


Я понял. Вам необходимо иметь как минимум АВТОРИЗАЦИЮ DBO как для локальной, так и для удаленной службы, убедиться, что все шифрование в конечной точке и отправленное сообщение отключено / отключено, и, наконец, НЕ ИМЕЕТ главного ключа. Многие интернет-сайты говорят, что брокер не будет работать без зашифрованного главного ключа, но в данном случае это не так.

person tdjfdjdj    schedule 25.04.2011

Сертификат не требуется:

CREATE ENDPOINT ssb_target
STATE = STARTED
AS TCP 
(
    LISTENER_PORT = 4022
)
FOR SERVICE_BROKER
(
    AUTHENTICATION = WINDOWS,
    ENCRYPTION = DISABLED
)
GO

Дополнительная информация: ссылка

person Nathan Skerl    schedule 22.04.2011
comment
изменить маршрут myroute с адресом = tcp: // ipaddress: port, service targetservice - person tdjfdjdj; 22.04.2011
comment
‹- этот маршрут находится в моей основной базе данных, указывая на службу удаленных целевых серверов - person tdjfdjdj; 22.04.2011
comment
Лучший способ устранения неполадок - запустить Profiler и зафиксировать события брокера (как на сервере отправителя, так и на сервере назначения). - person Nathan Skerl; 22.04.2011
comment
У Натана нет профайлера. используя sql server express 2005. Любой другой способ проверить? работает через экземпляры на одном сервере, но не через TCP с двумя серверами. - person tdjfdjdj; 22.04.2011
comment
Находятся ли серверы в одном домене? Если да, то запущены ли службы SQL под пользователями домена AD? И предоставили ли вы права на подключение / отправку каждому пользователю на конечных точках? Возможно, у вас поблизости есть другой компьютер с установленными всеми инструментами SQL. Вы всегда можете использовать профилировщик оттуда. - person Nathan Skerl; 22.04.2011
comment
Он будет на отдельном сервере с другим доменом. Но на данный момент я просто пытаюсь отправить сообщение между двумя базами данных на одном сервере через TCP. Он отлично работает через GUID, поэтому я правильно знаю его настройку. Значит, мне не нужен сертификат, но может потребоваться разрешение? Должен ли я авторизоваться с помощью dbo на обоих концах (маршрут и конечная точка?) - person tdjfdjdj; 22.04.2011