SQL: Service Broker Connection handshake failed. The certificate used by the peer is invalid

2018-08-20

Pełna treść komunikatu z błędem to:

Connection handshake failed. The certificate used by the peer is invalid due to the following reason: Certificate not found. State 89

Istotne przy konfiguracji usług związanych z Service Brokerem opartym o certyfikaty jest to, że często nie liczy się nazwa certyfikatu, ale jego thumbprint (odcisk palca). Kiedy dwa serwery nawiązują połączenie jeden z nich mówi:

  • chcę się połączyć z Tobą korzystając z certyfikatu XYZ
  • a drugi serwer odpowiada – fajnie mam certyfikat XYZ i mam do niego klucz prywatny,  zacznijmy od autoryzacji….

W moim przypadku na tych dwóch rozmawiających serwerach były zainstalowane certyfikaty o tej samej nazwie, ale niestety były to kompletnie inne certyfikaty! Ich odciski palców się nie zgadzały!

Aby sprawdzić czy certyfikaty są takie same wykonałem na obu instancjach:

select * from sys.certificates

a potem porównałem pole thumbprint. Ponieważ się nie zgadzały wyeksportowałem certyfikat z jednego serwera (BACKUP CERTIFICATE – tylko klucz publiczny) i odtworzyłem go na drugim (CREATE CERTIFICATE…. FROM FILE=’..’). Ponieważ do certyfikatu był przywiązany jeszcze login, to i ten login  musiałem usunąć i odtworzyć.

Certyfikat występował w moim przypadku w bazie master (poziom instancji) i w bazie skonfigurowanej pod service broker. Wymieniłem go w obu miejscach

Pomocny link:

https://social.msdn.microsoft.com/Forums/Lync/en-US/7b4d9350-cf72-4d25-83d5-db39f1bb1c01/connection-handshake-failed-the-certificate-used-by-the-peer-is-invalid-due-to-the-following?forum=sqldatabasemirroring

By Rafał Kraik in SQL

SQL: dostęp do instancji i wszystkich baz danych

2018-07-18

Pewna aplikacja wymaga na serwerze podstawowego dostępu do serwera i do KAŻDEJ bazy danych, która znajduje się na serwerze.

Jakimś pomysłem mogłoby być stworzenie loginu z podstawowymi uprawnieniami na bazie (może nawet bez żadnych dodatkowych uprawnień – po prostu rola public) oraz użytkownika zmapowanego do tego loginu. Ten użytkownik też może być przypisany do podstawowej roli w bazie. Co jednak za tym idzie nowe bazy tworzone lub odtwarzane na tym serwerze musiałby mieć dodawanego tego użytkownika, a więc może jakiś job?

Jest jednak prostsze rozwiązanie. Loginowi wystarczy nadać uprawnienie CONNECT ANY DATABASE. Jeden GRANT na poziomie instancji i sprawa załatwiona!

By Rafał Kraik in SQL

SQL – darmowe laboratoria

2018-07-11

Uczysz się SQL, chcesz zobaczyć jego nowe lub zaawansowane funkcje, a może to wcale nie SQL jest w zakresie twoich zainteresowań, ale jakaś inna technologia od Microsoft?

Teraz możesz skorzystać z darmowych laboratoriów https://handsonlabs-r.azurewebsites.net/

Strona pozwoli wyszukać interesujące Cie laboratorium, a po zalogowaniu zobaczysz w przeglądarce maszynę wirtualną wraz z instrukcjami po prawej. Do dzieła!

By Rafał Kraik in SQL

Python/Pandas: Testowe dane. Linki do dataset

2018-07-08

Tym razem tylko porcja linków, pod którymi można znaleźć przdatne dane do testów i nauki Pythona i Pandas:

 

 

By Rafał Kraik in Python

Helpdesk: Windows 10 – brak połączenia z Internetem tylko na jednej sieci WiFi

2018-06-25

Laptop Lenovo IdeaPad 710s:

Dostęp do Internetu uzyskuje zazwyczaj bez problemu, ale na jednej sieci Wifi:

  • łączy się
  • dostaje adres IP
  • nie ma kontaktu ani z siecią lokalną ani z Internetem

Pomagał restart routera, ale po paru godzinach, problem pojawiał sie znowu. Co pomogło?

  • Panel sterowania >> System
  • Manager urządzeń
  • Poszukać kart sieciowych, u mnie to

  • W ustawieniach karty „zaawansowane” oba ustawienia dotyczące 802.11 n zmieniłem na 20MHz Only

Restart karty zrobił się sam i działa, że mucha nie siada!

By Rafał Kraik in Helpdesk

PowerShell: ErrorActionPreference, a kontynuacja pracy komend

2018-06-09

W poniższych przykładach wysyłamy zapytanie WMI do do komputera CantorXX (który nie istnieje) i localhost (który oczywiście istnieje i odpowiada poprawnie)

CONTINUE

To domyślna wartość ErrorActionPreference. Jak widać na obrazku poniżej polecenie po napotkaniu błędu zgłasza ten błąd, ale potem KONTYNUUJE i kontaktuje się z drugim komputerem

SILENTLYCONTINUE

Przy połączeniu do pierwszego komputera oczywiście dochodzi do błedu, ale nie jest on wyświetlany. Błąd jest „zamaiaty pod dywan” a potem program kontynuuje i wysyła zapytanie do drugiego komputera

STOP

W przypadku tego ustawienia skrypt zareaguje „alergicznie”. Pierwszy błąd i akcja się zatrzymuje. Nie udało się połączyć z pierwszym komputerem, to z kolejnymi nawet nie próbuję:

INQUIRE

To taki trochę dziwny tryb. W przypadku błędu komenda zatrzymuje się i pyta, tylko w sumie o co…? Pytanie jest o kontynuację. Jeśli nei chcesz kontynuować daj „Halt command”, a jeśli chcesz wejść w tryb debug – daj Suspend.

 

By Rafał Kraik in Power Shell

Windows: Zarządzanie enegią: plan ultimate

2018-06-09

Był sobie Windows, który chociaż miał hardware na najwyższym poziomie, to jednak od czasu do czasu „zamulał”… a właściwie bez przerwy.

Przyczyn może być wiele, ale jedna z nich to plan zarządzania energią. Niestety musisz podjąć decyzję: chcesz być zielony i oszczędzać energię, czy po prostu chcesz mieć pełną moc komputera? Od pewnej aktualizacji Windows 10 pojawił sie plan zarządzania „Ultimate”. Chociaż nazwę ma ładną, to nie jest ekologiczny. Podkręca wszystkie parametry na maxa i szybciej niż inne  plany zasilania rozładuje baterię w laptopie…

U mnie ten plan zasilania sie nie pojawił i należało najpierw w linii poleceń uruchomionej „jako administrator” wykonać:

powercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61

Po tym poleceniu w aplecie „Power options” lub po polsku „Opcje zasilania” w sekcji „show additional plans” pojawił sie plan ultimate. Oczywiście plan zasilania to tylko plan zasilania i można go dokonfigurować tak, aby wydajność była akceptowalna, a energia jednak była choć trochę oszczędzana, zaś same plany zasilania można zmieniać zależnie od tego co w danej chwili jest wykonywane na komputerze i jak bardzo zależy ci na mocy procesora.

By Rafał Kraik in Helpdesk