ƒобро пожаловать в форум, Guest††>>†† ¬ойти†|†–егистрац舆| ѕоиск†|†ѕравила†| ¬ избранное | ѕодписатьс€
¬се форумы / Microsoft SQL Server Ќовый топик †† ќтветить
 Service Broker TRUSTWORTHY OFF  [new]
Nemoxur
Member

ќткуда:
—ообщений: 176
ƒобрый день.
ѕодскажите, какие минимальные права необходимо дать, что бы функционировал между базовый Service Broker. ѕри условии, что свойство должно быть
SET TRUSTWORTHY OFF;

¬роде можно создать
CREATE USER [User]
    WITHOUT LOGIN;

ѕодписать их сертификатом, но вот что дальше делать, не совсем €сно.
Ќапишите по шагам, пожалуйста
8 июн 17, 15:22††††[20550437]     ќтветить | ÷итировать —ообщить модератору
 Re: Service Broker TRUSTWORTHY OFF  [new]
Rankatan
Member

ќткуда:
—ообщений: 250
Ѕд1
CREATE CERTIFICATE MyCert WITH PASSWORD = 'test'
go
CREATE USER MyUser FOR CERTIFICATE MyCert
go
даем нужные права MyUser
GO
--подписываем процедуру
ADD SIGNATURE TO mysp BY CERTIFICATE MyCert
WITH PASSWORD = 'test'

Ѕƒ2
делаем бэкап MyCert из Ѕƒ1 и разворачиваем на второй Ѕƒ + создаем аналогично пользовател€ и даем права


¬ итоге в ’ѕ mysp может быть обращени€ к Ѕƒ2.

 ажись так
8 июн 17, 15:35††††[20550481]     ќтветить | ÷итировать —ообщить модератору
 Re: Service Broker TRUSTWORTHY OFF  [new]
Nemoxur
Member

ќткуда:
—ообщений: 176
я так и сделал.
ƒаже сделал
CREATE REMOTE SERVICE BINDING Binding
    TO SERVICE '//Service'
    WITH USER = User, ANONYMOUS=OFF ;



Ќо поле transmission_status из
SELECT
*
FROM sys.transmission_queue

пустое и сообщение так и не отправл€етс€.
8 июн 17, 15:44††††[20550522]     ќтветить | ÷итировать —ообщить модератору
 Re: Service Broker TRUSTWORTHY OFF  [new]
Rankatan
Member

ќткуда:
—ообщений: 250
я с Service Broker не работал, поэтому не знаю что там. Ёто Ѕƒ на том же сервере? ћожет имеет смысл еще и CREATE LOGIN MYLogin FROM CERTIFICATE MyCert сделать?
8 июн 17, 15:48††††[20550539]     ќтветить | ÷итировать —ообщить модератору
 Re: Service Broker TRUSTWORTHY OFF  [new]
Nemoxur
Member

ќткуда:
—ообщений: 176
ƒа инстанс один.
8 июн 17, 15:51††††[20550552]     ќтветить | ÷итировать —ообщить модератору
 Re: Service Broker TRUSTWORTHY OFF  [new]
invm
Member

ќткуда: ћосква
—ообщений: 9115
Nemoxur
ѕри условии, что свойство должно быть
SET TRUSTWORTHY OFF;
Dialog Security надо настраивать.
https://technet.microsoft.com/en-us/library/ms166117(v=sql.105).aspx
8 июн 17, 16:33††††[20550758]     ќтветить | ÷итировать —ообщить модератору
 Re: Service Broker TRUSTWORTHY OFF  [new]
Nemoxur
Member

ќткуда:
—ообщений: 176
у мен€ настроен
CREATE REMOTE SERVICE BINDING
но сообщение не уход€т.
8 июн 17, 17:17††††[20550951]     ќтветить | ÷итировать —ообщить модератору
 Re: Service Broker TRUSTWORTHY OFF  [new]
Nemoxur
Member

ќткуда:
—ообщений: 176
—овсем за был верси€ SQL
Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64) Oct 19 2012 13:38:57 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
8 июн 17, 17:19††††[20550959]     ќтветить | ÷итировать —ообщить модератору
 Re: Service Broker TRUSTWORTHY OFF  [new]
felix_ff
Member

ќткуда: Moscow
—ообщений: 1172
Nemoxur,

remote service binding нужен когда настраиваетс€ безопасность диалога между экземпл€рами.

ј в вашем случае вам надо посмотреть существует ли на базах master key (если нет создать их).

—оздать на каждой бд по сертификату
use db1
CREATE CERTIFICATE [cert1] AUTHORIZATION [initiator_service_owner] WITH SUBJECT = 'initiator_service_name'
BACKUP CERTIFICATE [cert1] TO FILE = 'C:\cert1.cer'


use db2
CREATE CERTIFICATE [cert2] AUTHORIZATION [target_service_owner] WITH SUBJECT = 'target_service_name'
BACKUP CERTIFICATE [cert2] TO FILE = 'C:\cert2.cer'


создать пользователей дл€ сертификатор и раздать им права
use db1
CREATE USER [proxyuser] WITHOUT LOGIN
CREATE CERTIFICATE [cert2] AUTHORIZATION [proxyuser] FROM FILE = 'C:\temp\cert2.cer'
GRANT SEND ON SERVICE::[initiator_service] TO [proxyuser]


use db2
CREATE USER [proxyuser] WITHOUT LOGIN
CREATE CERTIFICATE [cert1] AUTHORIZATION [proxyuser] FROM FILE = 'C:\temp\cert1.cer'
GRANT SEND ON SERVICE::[target_service] TO [proxyuser]
8 июн 17, 17:46††††[20551055]     ќтветить | ÷итировать —ообщить модератору
 Re: Service Broker TRUSTWORTHY OFF  [new]
Nemoxur
Member

ќткуда:
—ообщений: 176
felix_ff,

ј если мне надо из 3х-Ѕƒ передать в Ѕƒ4, то мне надо создать 4 сертификата и из целевой восстановить в 3-Ѕƒ и создать 3 сервиса подписные сертификатом из Ѕƒ инициаторов?
я правильно понимаю?
9 июн 17, 09:13††††[20551967]     ќтветить | ÷итировать —ообщить модератору
 Re: Service Broker TRUSTWORTHY OFF  [new]
Rankatan
Member

ќткуда:
—ообщений: 250
Nemoxur
felix_ff,

ј если мне надо из 3х-Ѕƒ передать в Ѕƒ4, то мне надо создать 4 сертификата и из целевой восстановить в 3-Ѕƒ и создать 3 сервиса подписные сертификатом из Ѕƒ инициаторов?
я правильно понимаю?

ќдного сертификата достаточно, создаем 1 сертификат, дальше делаем бэкап и разворачиваем его на все нужные Ѕƒ.
9 июн 17, 10:35††††[20552187]     ќтветить | ÷итировать —ообщить модератору
 Re: Service Broker TRUSTWORTHY OFF  [new]
Nemoxur
Member

ќткуда:
—ообщений: 176
Rankatan,

ј какие права потом дать в Service Broker, что бы всЄ заработало?
мне нужно, что бы потом базы инициаторы, под ролью public, могли отправить сообщение в целевую Ѕƒ.
9 июн 17, 11:18††††[20552370]     ќтветить | ÷итировать —ообщить модератору
 Re: Service Broker TRUSTWORTHY OFF  [new]
Nemoxur
Member

ќткуда:
—ообщений: 176
–еализаци€ Service Broker c TRUSTWORTHY OFF


ѕример из ссылки:
+
-- ЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈ --
-- ХЈ Target Service Setup ХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХ --
-- ЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈ --
USE sbRespond;
GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'asdf1234';
GO

CREATE USER ResponderR WITHOUT LOGIN;
GO

CREATE CERTIFICATE ResponseCertPriv1
  AUTHORIZATION ResponderR
  WITH SUBJECT = 'Service Broker Dialog Security Test: Responder';
GO

BACKUP CERTIFICATE ResponseCertPriv1
  TO FILE = 'C:\ResponseCertPub1';
GO

CREATE MESSAGE TYPE ActivatedStudyMessage
  VALIDATION = WELL_FORMED_XML;
GO

CREATE CONTRACT ActivatedStudyContract
  (ActivatedStudyMessage SENT BY INITIATOR);
GO

CREATE QUEUE [dbo].[ActivatedStudyTargetQueue];
GO

CREATE SERVICE ActivatedStudyTargetService
  ON QUEUE [dbo].[ActivatedStudyTargetQueue]
  (ActivatedStudyContract);
GO

GRANT CONTROL ON SERVICE::ActivatedStudyTargetService TO ResponderR;
GO

-- ЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈ --
-- ХЈ Initiator Service Setup ЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХ --
-- ЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈ --
USE sbEvent;
GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'zxcv5678';
GO

CREATE USER ActivatorE WITHOUT LOGIN;
GO

CREATE CERTIFICATE ActivateCertPriv1
  AUTHORIZATION ActivatorE
  WITH SUBJECT = 'Service Broker Dialog Security Test: Activator';
GO

BACKUP CERTIFICATE ActivateCertPriv1
  TO FILE = 'C:\ActivateCertPub1';
GO

CREATE USER ResponderE WITHOUT LOGIN;
GO

CREATE CERTIFICATE ResponseCertPub1
  AUTHORIZATION ResponderE
  FROM FILE = 'C:\ResponseCertPub1';
GO

CREATE MESSAGE TYPE ActivatedStudyMessage
  VALIDATION = WELL_FORMED_XML;
GO

CREATE CONTRACT ActivatedStudyContract
  (ActivatedStudyMessage SENT BY INITIATOR);
GO

CREATE QUEUE [dbo].[ActivatedStudyInitiatorQueue];
GO

CREATE SERVICE ActivatedStudyInitiatorService
  ON QUEUE [dbo].[ActivatedStudyInitiatorQueue];
GO

ALTER AUTHORIZATION ON SERVICE::ActivatedStudyInitiatorService TO ActivatorE;
GO

CREATE REMOTE SERVICE BINDING ActivatedStudyBinding
  TO SERVICE 'ActivatedStudyTargetService'
  WITH USER = ResponderE;
GO

-- ЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈ --
-- ХЈ Target Service Wrapup ЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХ --
-- ЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈ --
USE sbRespond;
GO

CREATE USER ActivatorR WITHOUT LOGIN;
GO

CREATE CERTIFICATE ActivateCertPub1
  AUTHORIZATION ActivatorR
  FROM FILE = 'C:\ActivateCertPub1';
GO

GRANT SEND ON SERVICE::ActivatedStudyTargetService TO ActivatorR;
GO

-- ЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈ --
-- ХЈ Send a message ХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХ --
-- ЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈХЈ --
USE sbEvent;
GO

BEGIN TRANSACTION;
GO

DECLARE @message XML;
SET @message = N'
<message>
  <PROT_ID>123456</PROT_ID>
  <StudyID>AAAA1234</StudyID>
</message>
';

DECLARE @conversationHandle UNIQUEIDENTIFIER;

BEGIN DIALOG CONVERSATION @conversationHandle
  FROM SERVICE ActivatedStudyInitiatorService
  TO SERVICE 'ActivatedStudyTargetService'
  ON CONTRACT ActivatedStudyContract
  WITH ENCRYPTION = ON;

SEND ON CONVERSATION @conversationHandle
  MESSAGE TYPE ActivatedStudyMessage
  (@message);

END CONVERSATION @conversationHandle;
GO

COMMIT TRANSACTION;
GO

USE sbRespond;
GO

SELECT * FROM [dbo].[ActivatedStudyTargetQueue];
GO

SELECT * FROM sbEvent.sys.transmission_queue;
GO


¬сем спасибо за помощь
ћодератор:  опипаста из ссылки специально дл€ тех, кто не в состо€нии на ссылку ткнуть?


—ообщение было отредактировано: 15 июн 17, 13:36
15 июн 17, 13:23††††[20566716]     ќтветить | ÷итировать —ообщить модератору
¬се форумы / Microsoft SQL Server ќтветить