OPT049-Połączenie do serwera SQL

advertisement
Biuletyn techniczny
Comarch OPT!MA 17.0
Połączenie do Microsoft SQL Server z poziomu
Comarch OPT!MA
Data powstania: 3.03.2008 r.
Data aktualizacji: 8.07.2008 r.
Data aktualizacji: 19.11.2009 r.
Copyright  2007-2009 COMARCH SA
Spis treści
1
WPROWADZENIE ............................................................................................................................. 3
2
KOMUNIKACJA MIĘDZY COMARCH OPT!MA A SERWEREM MICROSOFT SQL SERVER.................... 3
2.1.
KONFIGURACJA BIBLIOTEK I PROTOKOŁÓW SIECIOWYCH..................................................... 3
2.2.
NAWIĄZYWANIE POŁĄCZENIA Z SERWEREM ........................................................................... 5
2.3.
LOGOWANIE DO SERWERA SQL ................................................................................................ 7
2.3.1.
KONFIGURACJA ZABEZPIECZEŃ NA SERWERZE SQL DLA COMARCH OPT!MA .................... 8
2.3.2.
POŁĄCZENIE DO BAZY KONFIGURACYJNEJ......................................................................... 9
2.3.3.
POŁĄCZENIE DO BAZY FIRMOWEJ .................................................................................... 10
2.4.
UWIERZYTELNIENIE W PROGRAMIE COMARCH OPT!MA ....................................................... 13
3
POŁĄCZENIE Z COMARCH OPT!MA POPRZEZ USŁUGI TERMINALOWE ......................................... 13
4
POŁĄCZENIE Z SERWEREM SQL PRZEZ VPN .................................................................................. 14
Str.
2
1
Wprowadzenie
Celem biuletynu jest przedstawienie komunikacji między aplikacją Comarch OPT!MA a serwerem
Microsoft SQL Server, aby pomóc w rozwiązywaniu problemów z nawiązywaniem połączeń
z serwerem. Więcej informacji o najczęściej pojawiających się problemach z połączeniami moŜna
znaleźć na stronie http://faq.klient.comarch.pl
2
Komunikacja między Comarch OPT!MA a serwerem
Microsoft SQL Server
Komunikację aplikacji Comarch OPT!MA z serwerem SQL moŜemy podzielić na cztery etapy. Pierwszy z
nich to wywołanie Ŝądania połączenia z serwerem z poziomu programu. śądanie to jest przekazywane
do bibliotek sieciowych systemu operacyjnego, za pomocą których nawiązywane jest połączenie z
serwerem – etap drugi. Po udanym połączeniu następuje trzeci etap, którym jest logowanie do serwera
SQL. Na zakończenie w czwartym etapie konieczne jest uwierzytelnienie uŜytkownika w programie
Comarch OPT!MA.
Konfiguracja
bibliotek
i protokołów
sieciowych
Nawiązanie
połączenia
z serwerem
1
Logowanie do
serwera SQL
2
3
Uwierzytelnienie
uŜytkownika
w Comarch
OPT!MA
4
Rysunek 1
2.1.
Konfiguracja bibliotek i protokołów sieciowych
Aplikacja Comarch OPT!MA chcąc połączyć się z serwerem wywołuje odpowiednią funkcję umoŜliwiającą
przesłanie zapytania SQL do serwera. Aby było to moŜliwe w systemie klienta muszą być zainstalowane
i poprawnie działające biblioteki, które posiadają takie funkcje. Comarch OPT!MA do połączeń z
serwerem SQL wykorzystuje biblioteki ADO, OLE DB oraz ODBC. Zawarte są one w komponencie o
nazwie MDAC który jest integralną częścią systemów operacyjnych Windows 2000/XP/2003 (komponent
nazywa się WDAC w systemie Windows Vista). W sytuacji, gdy komponenty te z ulegną uszkodzeniu
moŜe zajść potrzeba ich ponownego zainstalowania. Na płytce Comarch OPT!MA w katalogu
<cdrom>\setup\mdac\ znajduje się komponenty MDAC w wersji 2.8 RTM. Reinstalacja nie dotyczy
systemu Windows Vista.
Procedura reinstalacji komponentów MDAC
1. Rozpakowanie pliku mdac_typ.exe
Str.
3
mdac_typ.exe /C /T:c:\temp\mdacinst
gdzie c:\temp\mdacinst jest ścieŜką, w której rozpakowany zostanie plik mdac_typ.exe
2. W katalogu, do którego rozpakowano mdac_typ.exe naleŜy odnaleźć plik mdacxpak.inf i pod prawym
przyciskiem myszy wybrać opcję zainstaluj
Uwaga: Przed uruchomieniem reinstalacji komponentów naleŜy wyłączyć wszystkie aplikacje, które
mogą korzystać z bibliotek pozwalających na połączenie do bazy danych. W szczególności naleŜy
wyłączyć program Comarch OPT!MA, wszystkie moduły dodatkowe takie jak Comarch OPT!MA Detal,
Comarch OPT!MA Biuro Rachunkowe, Comarch OPT!MA Migrator, Comarch OPT!MA Przypominacz,
Comarch Synchro, czy Comarch OPT!MA Ofertowanie. Wyłączone teŜ muszą być serwery SQL na tym
komputerze.
3. Wykonać restart komputera
Konfiguracja protokołów sieciowych
W celu prawidłowej komunikacji z serwerem SQL, musi on prowadzić nasłuch na określonych
protokołach. Ustawienia protokołów dla Microsoft SQL Server 2000 moŜna wykonać w narzędziu
svrnetcn, które domyślnie znajduje się w katalogu c:\Program Files\Microsoft SQL Server\80\Tools\Binn\.
W przypadku Microsoft SQL Server 2005 ustawiania protokołów moŜna wykonać za pomocą narzędzia
SQL Server Configuration Manager.
Uwaga! Przy instalacji Microsoft SQL Server 2005 Express domyślnie wyłączony jest nasłuch na protokole
TCP.
Protokoły, na których nasłuchuje serwer moŜna równieŜ sprawdzić w pliku errorlog, który znajduje się w
podkatalogu LOG instancji serwera (dla MS SQL 2000 domyślnie w: C:\Program Files\Microsoft SQL
Server\MSSQL$nazwa_instancji\LOG\, dla MS SQL 2005 domyślnie w: C:\Program Files\Microsoft SQL
Server\MSSQL.x\MSSQL\LOG\).
Więcej informacji na temat prawidłowej konfiguracji protokołów moŜna znaleźć w biuletynie: „OPT019Konfiguracja połączenie z serwerem MSSQL 2000” –
https://www.cdn.com.pl/cdnpartnerzy/biuletyny/pliki_optima/OPT019-KonfiguracjaMSSQL.pdf)
oraz „OPT031-CDN OPT!MA a SQL 2005” –
https://www.cdn.com.pl/cdnpartnerzy/biuletyny/pliki_optima/OPT031CDN%20OPT!MA%20a%20SQL%202005.pdf
Str.
4
2.2.
Nawiązywanie połączenia z serwerem
NAWIĄZANIE POŁĄCZENIA MIĘDZY KLIENTEM A SERWEREM MS SQL 2000
wyjątek w zaporze:
Udostępnianie plików i drukarek
port UDP 137
Proces System
1
rozwiązanie nazwy
serwera na adres ip
port UDP 1434
2
listener
3
port TCP
4
KLIENT
wyjątek w zaporze dla
procesu serwera
sqlserv.exe –
proces serwera
Zapora sieciowa
SERWER
Rysunek 2
Str.
5
NAWIĄZANIE POŁĄCZENIA MIĘDZY KLIENTEM A SERWEREM MS SQL 2005
wyjątek w zaporze:
Udostępnianie plików i drukarek
port UDP 137
Proces System
1
rozwiązanie nazwy
serwera na adres ip
port UDP 1434
sqlbrowser.exe
2
3
wyjątek w zaporze dla
procesu sqlbrowser
port TCP
domyślnie
ustalany
dynamicznie
4
KLIENT
sqlserv.exe –
proces serwera
wyjątek w zaporze dla
procesu serwera
Zapora sieciowa
SERWER
Rysunek 3
Etapy nawiązania połączenia z serwerem SQL:
1. Rozwiązanie nazwy serwera na adres IP, w tym celu najczęściej* klient wysyła zapytanie typu
broadcast do swojej podsieci IP na porcie 137 UDP. JeŜeli znajduje się w tej podsieci komputer o
takiej nazwie to odpowiada on na zapytanie podając swój adres IP. JeŜeli komputer klienta nie moŜe
rozwiązać nazwy serwera poniewaŜ ten ma np. zablokowany port 137 UDP, to komunikacja z
serwerem kończy się na tym etapie.
*Więcej informacji na temat rozwiązywania nazw przez system Windows moŜna znaleźć tutaj:
http://technet2.microsoft.com/windowsserver/en/library/468276dc-7ff0-4c42-8937305bc26487331033.mspx?mfr=true
2. Nawiązanie połączenia z listenerem serwera SQL na porcie UDP 1434 (Microsoft SQL Server 2000)
w celu uzyskania informacji o dostępnych instancjach i portach na jakich nasłuchują. W przypadku
Microsoft SQL Server 2005 listener został wydzielony do odrębnej usługi o nazwie sqlbrowser,
jednakŜe pełni te same funkcje co listener w Microsoft SQL Server 2000 i nasłuch prowadzony jest
na tym samym porcie.
3. Serwer zwraca listę dostępnych instancji oraz portów na jakich nasłuchują
4. Aplikacja łączy się z Ŝądaną instancją na zwróconym przez serwer porcie tcp.
Str.
6
Ustawienia zapory sieciowej
W celu nawiązania połączenia z serwerem musi być zapewniony mechanizm rozwiązywania nazw (więcej
informacji:
http://technet2.microsoft.com/windowsserver/en/library/468276dc-7ff0-4c42-8937305bc26487331033.mspx?mfr=true). Rozwiązywanie nazw bez dodatkowej konfiguracji na stacjach
klienckich wymaga włączenie w zaporze sieciowej na serwerze wyjątku „Udostępnianie plików i
drukarek”. Prócz tego, aby umoŜliwić przyjmowanie połączeń do serwera SQL muszą być dodane wyjątki
dla aplikacji sqlservr.exe, a w przypadku SQL Server 2005 dodatkowo takŜe naleŜy dodać wyjątek dla
usługi sqlbrowser.
Wyjątki dla sqlservr.exe oraz sqlbrowser.exe (jako aplikacji) dodawane są do zapory sieciowej windows
podczas instalacji Comarch OPT!MA, gdy zaznaczymy opcję „Udostępnij bazę danych dla innych
stanowisk”. MoŜna je równieŜ dodać poprzez instalację serwisu klucza HASP (HASPInstall.exe), który
znajduje się stronie http://www.cdn.com.pl/klienci/default.aspx?site=2211 lub
http://www.cdn.pl/partnerzy/default.aspx?site=433).
NaleŜy równieŜ pamiętać o sprawdzeniu, czy na serwerze nie pracują zapory sieciowe innych
producentów. Zasada dodawania wyjątków jest podobna, potrzebne są wyjątki dla programów
sqlservr.exe oraz sqlbrowser.exe (w przypadku SQL Server 2005). Prócz tego naleŜy pamiętać o wyjątku
umoŜliwiającym rozwiązywanie nazw (w tym celu naleŜy udostępnić port UDP/137).
Rysunek 4
2.3.
Logowanie do serwera SQL
Serwer SQL pozwala na logowanie w dwóch trybach. Pierwszy z nich to tzw. „Windows authentication”
(w Comarch OPT!MA nosi on nazwę „autentykacja przez domenę NT”). Polega on na tym, Ŝe
uŜytkownicy logują się do serwera SQL, z poświadczeniami związanymi z kontem, na którym pracują w
Str.
7
systemie Windows. JednakŜe są uwierzytelniani nie na serwerze SQL, ale przez mechanizmy systemu
Windows. Drugi tryb logowania to tryb mieszany, który prócz moŜliwości logowania poprzez „Windows
authentication”, pozwala równieŜ na uwierzytelnienie na serwerze SQL za pomocą loginów SQL. Loginy
te wraz z hasłami są tworzone i przechowywane na serwerze SQL. Do loginów SQL zaliczamy np. konto
administracyjne „sa”. Ustawienie trybu „Windows authentication” na serwerze SQL nie pozwala na
logowanie za pomocą loginów SQL.
Uwaga: Program Comarch OPT!MA do prawidłowej pracy ustawienia trybu mieszanego (ang. mixed
mode) jako medoty uwierzytelnienia na serwerze SQL.
Loginom (czyli loginom SQL lub kontom z systemu Windows) w serwerze SQL mogą być nadawane role,
które powodują przyznanie im uprawnień na poziomie całego serwera. Więcej informacji na temat ról
serwera moŜna przeczytać tutaj: http://msdn2.microsoft.com/en-us/library/ms188659.aspx.
Ustawienia uprawnień w samej bazie danych nie odbywa się na poziomie loginów, a uŜytkowników.
UŜytkownicy są jeszcze jednym poziomem zabezpieczeń. To uŜytkownicy mają nadawane prawa
odczytu, zapisu lub wykonywania procedur, czy funkcji. W konfiguracji serwera istnieje powiązanie
między loginem, a uŜytkownikiem w bazie.
Podczas instalacji serwera tworzony jest między innymi login systemowy „sa”, który ma przypisaną rolę
sysadmin, sprawia to, Ŝe login ten ma pełne uprawnienia na serwerze SQL. Oprócz „sa” rolę sysadmin
posiadają równieŜ członkowie grupy Administratorzy (BUILTIN\Administratorzy), na komputerze gdzie
instalowany jest serwer SQL.
2.3.1.
Konfiguracja zabezpieczeń na serwerze SQL dla
Comarch OPT!MA
Aplikacja Comarch OPT!MA podczas konfiguracji serwera SQL tworzy specjalne loginy SQL: cdnoperator,
cdngosc oraz cdnhasp. Login cdnoperator jest podstawowym wewnętrznym loginem uŜywanym przez
Comarch OPT!MA do komunikacji z bazą danych. Posiada on odpowiadającego sobie uŜytkownika
cdnoperator, który ma nadaną rolę CDN oraz Public we wszystkich bazach Comarch OPT!MA firmowych
oraz konfiguracyjnych. Rola db_owner nadawana jest automatycznie po włączeniu roli CDN. Login
cdnhasp jest wykorzystywany do weryfikacji posiadanych licencji. Więcej informacji na temat loginów
moŜna znaleźć w biuletynie OPT020-MSSQL2000 i Comarch OPT!MA.pdf
Str.
8
Rysunek 5
2.3.2.
Połączenie do bazy konfiguracyjnej
Bazę konfiguracyjną moŜemy podłączyć korzystając z trybu „Autoryzacja na serwerze SQL” lub
„Autoryzacja przez domenę NT”, które moŜemy wybrać w kreatorze „Przygotowanie do uruchomienia
systemu”.
Str.
9
Rysunek 6
Po udanym połączeniu jego parametry zapisywane są w rejestrze systemowym w gałęzi:
HKEY_CURRENT_USER\Software\CDN\CDN OPT!MA\CDN OPT!MA\Login\KonfigConnectStr
np. NET:CDN_Konfiguracja,SERWER\CDN_OPTIMA,NT=0
gdzie: CDN_Konfiguracja – nazwa bazy konfiguracyjnej, SERWER\CDN_OPTIMA – serwer bazy danych,
NT=0 – Autoryzacja na serwerze SQL (NT=1 – Autoryzacja przez domenę NT).
2.3.3.
Połączenie do bazy firmowej
Połączenie z bazą firmową moŜe być równieŜ realizowane poprzez „Autoryzację na serwerze SQL” lub
„Autoryzację przez domenę NT”. Wyboru między tymi dwoma trybami moŜna dokonać w konfiguracji
programu
Menu System Konfiguracja
Zakładka Program UŜytkowe Bazy danych Modyfikuj informacje o bazie danych
Parametr: Login zintegrowany NT
Rysunek 7
Zaznaczenie parametru „Login zintegrowany NT” spowoduje ustawienie trybu łączenia z bazą firmową
na „Autoryzację przez domenę NT”. Natomiast pozostawienie niezaznaczonego parametru ustawia tryb
„Autoryzacja na serwerze SQL”.
Konfiguracja dostępu do bazy firmowej z wykorzystaniem „Autoryzacji przez domenę NT”.
1. Utworzenie loginu Windows
Login moŜna utworzyć korzystając z narzędzia Microsoft SQL Server 2005 Management Studio.
Po połączeniu do instancji serwera naleŜy rozwinąć zakładkę Security i kliknąć prawym klawiszem
myszy na zakładkę Logins i wybrać opcję New Login
Str.
10
Rysunek 8
W formularzu tworzonego uŜytkownika na pierwszej zakładce „General” naleŜy podać pełną nazwę
uŜytkownika lub grupy. Jako pierwszy człon nazwy podajemy nazwę komputera lub domeny, w której
uŜytkownik jest zalogowany. Następnie po znaku „\” podajemy nazwę uŜytkownika. Dodatkowo
zaznaczamy opcję „Windows Authentication”.
Uwaga: W celu dodania uŜytkownika związanego z komputerem innym niŜ ten, na którym
zainstalowany jest serwer SQL konieczne jest na serwerze załoŜenie uŜytkownika na poziomie systemu
operacyjnego o takiej samej nazwie i takim samym haśle jak ten, który loguje się na końcówce.
Str.
11
Rysunek 9
Na zakładce „Server Roles” pozostawiamy przypisanie do roli „public”, opcjonalnie moŜna przypisać
login równieŜ do innej roli.
Str.
12
Rysunek 10
Na zakończenie zaznaczamy bazy Comarch OPT!MA, do których ma mieć dostęp dany login.
Następnie dla tych baz nadajemy odpowiadającemu uŜytkownikowi w bazie rolę CDN oraz public.
Rysunek 11
2. Przestawienie logowanie do bazy firmowej na tryb „Autoryzacja przez domenę NT”
Przestawienie logowania ustawiamy poprzez zaznaczenie parametru „Login zintegrowany NT” (patrz
początek p. 3.3)
2.4.
Uwierzytelnienie w programie Comarch OPT!MA
Ten punkt nie wymaga większych wyjaśnień. Comarch OPT!MA do uwierzytelnienia uŜytkowników
wykorzystuje loginy i przypisane im hasła, które są przechowywane w bazie danych. Mogę one być
tworzone, usuwane i modyfikowane z poziomu aplikacji. Od wersji 14 Comarch OPT!MA wprowadzono
wymuszanie sprawdzania złoŜoności hasła wprowadzanego dla operatora. Silne hasło powinno być nie
krótsze niŜ 8 znaków, zawierać litery od A do Z oraz od a do z, cyfry 0-9 oraz znaki specjalne
'!@#$%^&*()_+-=[]{},;:.?/.
3
Połączenie z Comarch OPT!MA poprzez usługi terminalowe
Konfiguracja programu Comarch OPT!MA poprzez usługi terminalowe jest zalecanym sposobem pracy na
wspólnej bazie przez uŜytkowników z róŜnych lokalizacji firmy. Ten tryb pracy wymaga systemu
Str.
13
Windows Server ze skonfigurowanymi usługa terminalowymi. Prócz tego na serwerze musi być
zainstalowana aplikacja Comarch OPT!MA. Klienci łączą się do serwera za pomocą klienta zdalnego
pulpitu. Aplikacja uruchomiana jest na serwerze terminali, a do klienta przesyłany jest obraz pulpitu. Ma
to zaletę w stosunkowo niskim zapotrzebowaniu na przepustowość. Do normalnej pracy dla jednego
połączenia wystarczy przepustowość rzędu 60 kbit/s.
JeŜeli chodzi o łącze w lokalizacji, gdzie znajduje się serwer to naleŜy pamiętać, Ŝe istotnym parametrem
jest przepustowość „od komputera” (tzw. upstream). W ofercie operatorów znajdują się między innymi
łącza o asymetrycznej przepustowości, to znaczy takiej, której wartość jest róŜna do i od komputera.
Operatorzy na pierwszym miejscu podają większą wartość czyli „do komputera”. NaleŜy sprawdzić w
ofercie jaka jest przepustowość „od komputera”. Jej wartość powinna być co najmniej równa
maksymalnej ilości uŜytkowników łączących się poprzez zdalny pulpit pomnoŜoną razy 60 kbt/s
(oczywiście przy załoŜeniu, Ŝe łącze wykorzystywane jest wyłącznie do pracy z usługami terminalowymi).
Więcej informacji na temat usług terminalowych i ich konfigracji moŜna znaleźć między w poniŜszych
odnośnikach:
http://www.microsoft.com/poland/windowsserver2003/artykuly/uslugi_terminalowe.mspx
http://technet2.microsoft.com/WindowsServer/pl/Library/d3d28279-ae43-41ab-bc43b0e5bd1d0fe01045.mspx?mfr=true
4
Połączenie z serwerem SQL przez VPN
Jak wspomniano w punkcie 5 „Połączenie z Comarch OPT!MA poprzez usługi terminalowe” zalecanym
sposobem pracy zdalnej na wspólnej bazie są usługi terminalowe. JednakŜe jeŜeli zachodzi konieczność
wykorzystania bezpośredniego połączenia do serwera przez łącza WAN (np. Internet) to zdecydowanie
zalecane jest wykorzystanie dodatkowych zabezpieczeń połączenia w postaci mechanizmu VPN (Virtual
Private Network). JednakŜe naleŜy się liczyć z tym, Ŝe przy takiej konfiguracji będzie zauwaŜalne
spowolnienie pracy programu. Wynika to stąd, Ŝe przy bezpośrednim połączeniu do serwera między
aplikacją, a serwerem wymieniane są znaczące ilości danych.
Przy połączeniu przez kanał wirtualny naleŜy pamiętać o utworzeniu aliasu do serwera SQL, gdzie jest
baza Comarch OPT!MA. Jest to konieczne poniewaŜ aplikacja wyszukuje serwera po nazwie za pomocą
protokołu Netbios, który nie jest rutowalny, co oznacza, Ŝe nie jest przekazywany pomiędzy róŜnymi
podsieciami
IP.
Alias
do
serwera
moŜemy
utworzyć
za
pomocą
polecenia
c:\windows\system32\cliconfg.exe. W definicji aliasu podajemy jego nazwę, która musi być taka sama
jak nazwa serwera SQL (w konwencji nazwa_komputera\nazwa_instancji) – Rysunek 12. W polu nazwa
serwera w miejsce nazwa_komputera wpisujemy adres IP serwera. Opcjonalnie, aby pominąć krok
związany z połączeniem do listenera serwera SQL (patrz p. 2.2), moŜna podać równieŜ port, na którym
nasłuchuje instancja.
Str.
14
Rysunek 12
Str.
15
Download