powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Service Broker для репликации
25 сообщений из 179, страница 3 из 8
Service Broker для репликации
    #39946839
Максим Александровитч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут неясны какие условия с PVK

@pvk nvarchar(256) = null
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39946878
Максим Александровитч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Александровитч
Вот тут неясны какие условия с PVK

@pvk nvarchar(256) = null


Да,я понял..вы просто шаблон сделали..ща пытаюсь автоматизировать перенос ключей между 2 убунтами которые не в домене.
Вопрос.
Сертификат на сколько делается?у вас просто не указан срок,значит ли это бессрочно?
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39946956
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Александровитч
Максим Александровитч
Вот тут неясны какие условия с PVK

@pvk nvarchar(256) = null


Да,я понял..вы просто шаблон сделали..ща пытаюсь автоматизировать перенос ключей между 2 убунтами которые не в домене.
Вопрос.
Сертификат на сколько делается?у вас просто не указан срок,значит ли это бессрочно?


год по умолчанию если expirity_date не указывается
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947064
Максим Александровитч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При выполнении
create endpoint [sb] state = started as tcp (listener_port = 4022)
for service_broker (authentication = certificate [auth_cert_serv2]);




Сертификат "auth_cert_serv2" не действителен для проверки подлинности конечной точки. У сертификата должен быть закрытый ключ, зашифрованный при помощи главного ключа базы данных, и текущая дата в формате UTC должна лежать в пределах срока действия сертификата.
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947067
Максим Александровитч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причем на таргете выполнилось норм..Точка создана
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947071
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Александровитч,

я в синтаксисе ошибся:

backup certificate [auth_cert] to file = 'C:\temp\auth_cert_serv1.cer' with private key (file = 'c:\temp\auth_cert_serv 2 .pvk', encryption by password = 'Pa$$w0rd');

там получилось два закрытых ключа с одним и тем же именем.

вы постарайтесь не просто копировать, а разбираться что каждый шаг делает.
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947083
Максим Александровитч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
Максим Александровитч,

я в синтаксисе ошибся:

backup certificate [auth_cert] to file = 'C:\temp\auth_cert_serv1.cer' with private key (file = 'c:\temp\auth_cert_serv 2 .pvk', encryption by password = 'Pa$$w0rd');

там получилось два закрытых ключа с одним и тем же именем.

вы постарайтесь не просто копировать, а разбираться что каждый шаг делает.


Скажу уж честно вы не только тут ошиблись)именно поэтому ключи я норм создал.
А вот тут да,маху дал,проглядел..
я уж столько раз точки создавал,что даже и не думал,что может быть такая ошибка
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947085
Максим Александровитч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
Максим Александровитч,

я в синтаксисе ошибся:

backup certificate [auth_cert] to file = 'C:\temp\auth_cert_serv1.cer' with private key (file = 'c:\temp\auth_cert_serv 2 .pvk', encryption by password = 'Pa$$w0rd');

там получилось два закрытых ключа с одним и тем же именем.

вы постарайтесь не просто копировать, а разбираться что каждый шаг делает.


Так..стоп..это-то конечно я исправил.
У меня source ключи с префиксом 1
target с префиксом 2
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947089
Максим Александровитч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При создании на сурсе

create endpoint [sb] state = started as tcp (listener_port = 4022)
for service_broker (authentication = certificate [auth_cert_serv2]);

Ошибка

Сертификат "auth_cert_serv2" не действителен для проверки подлинности конечной точки. У сертификата должен быть закрытый ключ, зашифрованный при помощи главного ключа базы данных, и текущая дата в формате UTC должна лежать в пределах срока действия сертификата.
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947090
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Александровитч
felix_ff
Максим Александровитч,

я в синтаксисе ошибся:

backup certificate [auth_cert] to file = 'C:\temp\auth_cert_serv1.cer' with private key (file = 'c:\temp\auth_cert_serv 2 .pvk', encryption by password = 'Pa$$w0rd');

там получилось два закрытых ключа с одним и тем же именем.

вы постарайтесь не просто копировать, а разбираться что каждый шаг делает.


Скажу уж честно вы не только тут ошиблись)именно поэтому ключи я норм создал.
А вот тут да,маху дал,проглядел..
я уж столько раз точки создавал,что даже и не думал,что может быть такая ошибка



мое дело задать направление :) писал по памяти, мог спокойно где то синтаксически еще промазать
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947094
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Александровитч
При создании на сурсе

create endpoint [sb] state = started as tcp (listener_port = 4022)
for service_broker (authentication = certificate [auth_cert_serv2]);

Ошибка

Сертификат "auth_cert_serv2" не действителен для проверки подлинности конечной точки. У сертификата должен быть закрытый ключ, зашифрованный при помощи главного ключа базы данных, и текущая дата в формате UTC должна лежать в пределах срока действия сертификата.


еще раз сделайте следующее:
на источнике очистите ранее созданный бэкап сертификата:

Код: sql
1.
2.
3.
4.
5.
6.
7.
--windows
del /Q C:\temp\auth_cert_serv1.cer
del /Q C:\temp\auth_cert_serv1.pvk

--linux
rm {путь к файлу .cer}
rm {путь к файлу .pvk}



снова сделайте бэкап сертификата:
Код: sql
1.
backup certificate auth_cert to file = 'C:\temp\auth_cert_serv1.cer' with private key (file = 'C:\temp\auth_cert_serv1.pvk', encryption by password = 'Pa$$w0rd');



на таргете удалите файлик бэкапа который переносили с соурса
и снова скопируйте правильный бэкап с соура

и уже потом восстанавливайте на таргете:
Код: sql
1.
2.
if exists (select 1 from sys.certificates where name = 'auth_cert_serv1') drop certificate [auth_cert_serv1];
create certificate [auth_cert_serv1] from file = 'C:\temp\auth_cert_serv1.cer' with private key (file = 'C:\temp\auth_cert_serv1.pvk', decryption by password = 'Pa$$w0rd');



у вас в итоге на обоих серверах представление sys.certificatec должно показывать что существует сертификат противоположного сервера и поле pvt_key_encryption_type_desc должно показывать ENCRYPTED_BY_MASTER_KEY

Код: sql
1.
2.
--source
select [pvt_key_encryption_type_desc] from sys.certificates where name = 'auth_cert_serv2';



Код: sql
1.
2.
--target
select [pvt_key_encryption_type_desc] from sys.certificates where name = 'auth_cert_serv1';



если последние два селекта вернут ENCRYPTED_BY_MASTER_KEY то все ок, можно создавать конечные точки
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947105
Максим Александровитч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,

Попробую
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947258
Максим Александровитч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка на таргете

Сообщение 15468, уровень 16, состояние 6, строка 1
Во время формирования сертификат произошла ошибка.


select *
from sys.messages
where message_id=15468
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947259
Максим Александровитч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на сурсе норм
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947276
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Александровитч,

значит чет не то делаете.
ну проверьте что ли на всякий случай так:
Код: sql
1.
2.
--на источнике
select cert_serial_number, cast(thumbprint as varbinary(max)) from sys.certificates where name = 'auth_cert_serv1';



потом в файловой системе откройте файлик auth_cert_serv1.cer перейдите на вкладку "состав" и сверьте серийный номер и отпечаток, они должны совпадать с тем что вернул селект.

а и да еще проверьте на обоих серверах:
Код: sql
1.
select * from sys.symmetric_keys where name = '##_MS_DatabaseMasterKey##';


должна вернуться строчка
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947278
Максим Александровитч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
Максим Александровитч,

значит чет не то делаете.
ну проверьте что ли на всякий случай так:
Код: sql
1.
2.
--на источнике
select cert_serial_number, cast(thumbprint as varbinary(max)) from sys.certificates where name = 'auth_cert_serv1';



Пусто

потом в файловой системе откройте файлик auth_cert_serv1.cer перейдите на вкладку "состав" и сверьте серийный номер и отпечаток, они должны совпадать с тем что вернул селект.

а и да еще проверьте на обоих серверах:
Код: sql
1.
2.
select * from sys.symmetric_keys where name = '##_MS_DatabaseMasterKey##';
Пусто


должна вернуться строчка
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947279
Максим Александровитч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
Максим Александровитч,

значит чет не то делаете.
ну проверьте что ли на всякий случай так:
Код: sql
1.
2.
--на источнике
select cert_serial_number, cast(thumbprint as varbinary(max)) from sys.certificates where name = 'auth_cert_serv1';



потом в файловой системе откройте файлик auth_cert_serv1.cer перейдите на вкладку "состав" и сверьте серийный номер и отпечаток, они должны совпадать с тем что вернул селект.

а и да еще проверьте на обоих серверах:
Код: sql
1.
select * from sys.symmetric_keys where name = '##_MS_DatabaseMasterKey##';


должна вернуться строчка



И да ,мастер-ключ у меня создан еще с 1-х косячных примеров..может из-за этого?
И еще на сурсе все номр сертификат восстановил-то
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947280
Максим Александровитч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот что вернуло
select [pvt_key_encryption_type_desc] from sys.certificates where name = 'auth_cert';

select [pvt_key_encryption_type_desc] from sys.certificates where name = 'auth_cert_serv2';
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947281
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Александровитч,

попутал :)
Код: sql
1.
2.
--source
select cert_serial_number, cast(thumbprint as varbinary(max)) from sys.certificates where name = 'auth_cert'; 



add: кароче покажите выхлоп, на обоих серверах так проще будет:
Код: sql
1.
select [name], [cert_serial_number], [principal_id], [pvt_key_encryption_type_desc], [is_active_for_begin_dialog], [issuer_name], [expiry_date], [start_date], [pvt_key_last_backup_date] from sys.certificates
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947287
Максим Александровитч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,

Сурс
name cert_serial_number principal_id pvt_key_encryption_type_desc is_active_for_begin_dialog issuer_name expiry_date start_date pvt_key_last_backup_date
##MS_SQLResourceSigningCertificate## 19 b7 01 ba bb 60 83 b0 41 ee 50 eb de e7 89 66 1 NO_PRIVATE_KEY 0 MS_SQLResourceSigningCertificate 2021-02-04 01:28:05.000 2020-02-04 01:28:05.000 NULL
##MS_SQLReplicationSigningCertificate## 23 1f 86 c1 5d 31 a0 96 4a 07 19 11 72 5f 23 91 1 NO_PRIVATE_KEY 0 MS_SQLReplicationSigningCertificate 2021-02-04 01:28:05.000 2020-02-04 01:28:05.000 NULL
##MS_SQLAuthenticatorCertificate## 3a fa ec 59 63 84 4a 97 40 8b 40 4a 75 41 a8 87 1 NO_PRIVATE_KEY 0 MS_SQLAuthenticatorCertificate 2021-02-04 01:28:05.000 2020-02-04 01:28:05.000 NULL
##MS_AgentSigningCertificate## 25 b1 cb ec 46 63 45 ae 44 0f e4 8f f8 ca d8 f1 1 NO_PRIVATE_KEY 1 MS_AgentSigningCertificate 2021-02-04 01:29:49.000 2020-02-04 01:29:49.000 NULL
##MS_PolicySigningCertificate## 24 52 9b 83 6b 33 ef b6 46 1a 74 62 68 1e 67 7f 1 NO_PRIVATE_KEY 0 MS_PolicySigningCertificate 2021-02-04 01:28:06.000 2020-02-04 01:28:06.000 NULL
##MS_SmoExtendedSigningCertificate## 71 79 0b 08 4d 18 e8 a6 4f 70 7d 15 6e 18 eb 1d 1 NO_PRIVATE_KEY 0 MS_SmoExtendedSigningCertificate 2021-02-04 01:28:06.000 2020-02-04 01:28:06.000 NULL
##MS_SchemaSigningCertificate2A31719787788EB0932B65B6BEA52BE3A48EBA9B## 17 33 4c 58 9b 42 51 bb 4c 25 a0 a6 63 71 21 27 1 NO_PRIVATE_KEY 1 MS_SchemaSigningCertificate2A31719787788EB0932B65B6BEA52BE3A48EBA9B 2021-02-04 01:31:06.000 2020-02-04 01:31:06.000 NULL
auth_cert 7a a8 03 8a f4 b5 d9 53 1 ENCRYPTED_BY_MASTER_KEY 1 auth cert 2021-04-14 18:26:10.000 2020-04-14 18:26:10.000 2020-04-14 18:26:20.800
auth_cert_serv2 51 46 bf cf 86 c7 b2 34 1 ENCRYPTED_BY_PASSWORD 1 auth cert 2021-04-14 18:27:36.000 2020-04-14 18:27:36.000 NULL
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947288
Максим Александровитч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картинка не выкладывается..

таргет

name cert_serial_number principal_id pvt_key_encryption_type_desc is_active_for_begin_dialog issuer_name expiry_date start_date pvt_key_last_backup_date
##MS_SQLResourceSigningCertificate## 4b dd 80 b7 04 24 67 9f 4d b1 44 15 bf a6 2f 11 1 NO_PRIVATE_KEY 0 MS_SQLResourceSigningCertificate 2021-03-15 00:35:13.000 2020-03-15 00:35:13.000 NULL
##MS_SQLReplicationSigningCertificate## 3b b0 e2 c5 7c 3f c1 bd 4d a6 16 f7 a2 25 51 0b 1 NO_PRIVATE_KEY 0 MS_SQLReplicationSigningCertificate 2021-03-15 00:35:13.000 2020-03-15 00:35:13.000 NULL
##MS_SQLAuthenticatorCertificate## 77 fc 96 1c 37 02 69 bb 41 c7 21 55 fc d3 46 81 1 NO_PRIVATE_KEY 0 MS_SQLAuthenticatorCertificate 2021-03-15 00:35:14.000 2020-03-15 00:35:14.000 NULL
##MS_AgentSigningCertificate## 5c 48 5f f0 c4 e0 54 5c 1 NO_PRIVATE_KEY 1 MS_AgentSigningCertificate 2021-04-02 18:05:44.000 2020-04-02 18:05:44.000 NULL
##MS_PolicySigningCertificate## 52 ed 1e 79 eb 59 57 9a 4f 4f 2f c1 52 3f 60 9e 1 NO_PRIVATE_KEY 0 MS_PolicySigningCertificate 2021-03-15 00:35:14.000 2020-03-15 00:35:14.000 NULL
##MS_SmoExtendedSigningCertificate## 42 b3 07 97 d5 fb 92 87 4a de 53 0a 26 2c 07 87 1 NO_PRIVATE_KEY 0 MS_SmoExtendedSigningCertificate 2021-03-15 00:35:14.000 2020-03-15 00:35:14.000 NULL
##MS_SchemaSigningCertificate77016BAA0A80B39FFF1D00FAE7D8C750D1CA5EA1## 53 93 11 9c e8 2f c5 b5 4f 9e 4e 28 bc 62 04 81 1 NO_PRIVATE_KEY 1 MS_SchemaSigningCertificate77016BAA0A80B39FFF1D00FAE7D8C750D1CA5EA1 2021-03-04 10:14:29.000 2020-03-04 10:14:29.000 NULL
Endpoint2Cert 91 bc 34 22 38 69 da 91 1 ENCRYPTED_BY_MASTER_KEY 1 For Service Broker endpoint 2021-04-12 15:22:06.000 2020-04-12 15:22:06.000 NULL
auth_cert 51 46 bf cf 86 c7 b2 34 1 ENCRYPTED_BY_MASTER_KEY 1 auth cert 2021-04-14 18:27:36.000 2020-04-14 18:27:36.000 2020-04-14 18:27:37.870
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947290
Максим Александровитч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Source
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947292
Максим Александровитч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Target
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947294
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Александровитч,

неправильно. видите у вас на соурсе таргетный сертификат защищен паролем а не мастер ключем.

это значит что вы из бекапа его поднимали с директивой encryption by password

делаете так:
Код: sql
1.
2.
3.
4.
--source
drop certificate [auth_cert_serv2];

create certificate [auth_cert_serv2] from file = 'C:\temp\auth_cert_serv2.cer' with private key (file = 'C:\temp\auth_cert_serv2.pvk', decryption by password = 'Pa$$w0rd');



Код: sql
1.
2.
--target
create certificate [auth_cert_serv1] from file = 'C:\temp\auth_cert_serv1.cer' with private key (file ='C:\temp\auth_cert_serv1.pvk', decryption by password = 'Pa$$w0rd');
...
Рейтинг: 0 / 0
Service Broker для репликации
    #39947295
Максим Александровитч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,

Черт..
у вас написано на сурсе
create certificate [auth_cert_serv2] from file = 'brokercert\auth_cert_serv2.cer'
with private key (file='brokercert\auth_cert_serv2.pvk',
encryption by password = 'Pa$$w0rd', decryption by password = 'Pa$$w0rd');


target
exec create_cert_from_backup 'x\auth_cert_serv1.cer',
'x\auth_cert_serv1.pvk', @decrypt = 'Pa$$w0rd', @is_exec=1;
...
Рейтинг: 0 / 0
25 сообщений из 179, страница 3 из 8
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Service Broker для репликации
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]