Autor Wątek: Baza MS SQL na linuxie  (Przeczytany 77418 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline lurk

  • Nowy użytkownik
  • *
  • Wiadomości: 7
  • Reputacja +1/-0
  • Wersja programu: Rewizor GT
Odp: Baza MS SQL na linuxie
« Odpowiedź #75 dnia: Listopad 02, 2022, 20:54:01 »
Co do bezpieczeństwa, to po sambie jest udostępniany tylko katalog temp, a w jej konfiguracji  w smb.conf możesz zawęzić krąg stacji roboczych i użytkowników mających dostęp po sieci, czy to przez IP, czy smbusers - nie widzę tu wielkiego zagrożenia, a "przezroczystość" dla aplikacji windowsowych jednak jest pełna. U mnie dodatkowo wirtualna maszyna z Windows z którego robię operację typu backup, upgrade, attach i wirtualny kontener z MSSQL sa na jednym fizycznym hoście, więc mogę sobie zrobić izolację sieci na tym poziomie, żeby żaden inny PC-t w sieci nie mógł włamać się na tę sambę.

Pamiętać jednak trzeba o tym, że wersja pod Linux jest wypatroszona z pewnych funkcji w porównaniu do Windows.
Nie uda się np. zrobić w Płatniku  archiwizacji danych płatnika do bazy archiwalnej lub zewnętrznej stojącej na MSSQL dla Linux. To opisałem we wcześniejszym poście.



kompletną instrukcję mogę podesłać.
Dzięki lurk, jesteś Wielki! Dla takich postów ludzie wchodzą na fora a nie dla porad w stylu "Znajdź sobie dobrego specjalistę". Sam mam podobną konfigurację (Ubuntu w kontenerach na Proxmox), tylko nie używałem samby (ze względów bezpieczeństwa, wydaje mi się, że bez niej będzie bezpieczniej) i problemy są z tego powodu są trzy: że archiwizacja z poziomu InsERTa nie działa, ale mi to nie przeszkadza, bo archiwizuję z poziomu MS SQL skryptami a jak wydaję bazę byłym klientom, to ją wcześniej przerzucam na serwer na Windzie, gdzie i tak muszę zmienić hasło szefa przed wydaniem oraz chcę, by wydane archiwa miały windziane ścieżki do plików bazy, chcę, jak były klient nie umie tego podpiąć, by nie tłumaczył tego bazą z Linuksa itp. Reszta rzeczy (Biuro GT, aktualizacja itp. działają), tylko na serwerze linuksowym w temp zostają śmieci (których przy Sambie by nie było), które usuwam skryptem. Trzeci problem to linuksowe ścieżki z "/" co MS SQL nie przeszkadza, InsERTowi prawie też nie (działa na nich, ale nie zrobi kopii czy nie przywróci z niej podmiotu. Edycja ścieżek plików baz na Linuksie na windziane rozwiązuje problem, bo jak wspominałem ms sql łyka każde (nawet "/\"(!) a InsERT wtedy nie ma problemu).

Mam pytanie: spotkałem się w Internecie z opinią, że VM zamiast kontenera na Proxmox ma lepszą wydajność I/O, bo podobno VM mają lepiej tam zrobioną optymalizację współbieżnych operacji I/O niż kontenery - masz jakieś zdanie na ten temat? Bo mam tam oczywiście też inne kontenery niż z bazami InsERTa.

Offline Artwi

  • Aktywny użytkownik
  • ***
  • Wiadomości: 187
  • Reputacja +3/-0
  • Wersja programu: Insert GT aktualny
Odp: Baza MS SQL na linuxie
« Odpowiedź #76 dnia: Listopad 07, 2022, 10:48:30 »
Postawiłem sobie za cel postawienie alternatywy dla serwera dla small buisness server z serwerem plików, kontrolerem domeny, MSSQL serwerem, serwerem VPN i serwerem backupu/synchronizacji stacji roboczych (SyncThing). udało mi się te wszystkie komponenty postawić w kontenerach. A wszystko za free, na mocnej maszynie.
(...)
Nie udało mi się np. w Płatniku zarchiwizować danych płatnika do bazy archiwalnej lub zewnętrznej stojącej na MSSQL Linux, co pokazuje tylko że niektóre funkcje w aplikacjach mogą nie zadziałać, co może zdyskwalifikować całe przedsięwzięcie.
U mnie był podobny cel, ale mniej ambitnie, bo z NAS od znanej firmy (drożej, ale łatwiej i ze wsparciem) + mocna maszyna na Proxmox VE.

Co do Płatnika, to coś masz źle skonfigurowane. Gwarantuję osobiście, że archiwizacja do bazy archiwum czy innej roboczej na MS SQL na linuksowym kontenerze działa bezbłędnie. Tylko ten syfolec pod względem bezpieczeństwa, odkąd ZUS sam go "rozwija", do działania wymaga nie tylko praw dostępu do zapisu do swojego katalogu dla zwykłych użytkowników (inaczej nie działa aktualizacja!), nie tylko wymaga uprawnień administratora na MS SQL (do wersji 8 wystarczał dbo!), ale też wymaga włączenia na serwerze Ad Hoc Distributed Queries, bo bez tego nie ma mowy, by archiwizacja działała. Przy czym ja mam uwierzytelnienie po koncie na MS SQL a nie po Windzie (i nie wiem czy po koncie na Windzie działa), a ponieważ jak pewnie wiesz, odczytanie haseł z Płatnika jest chyba szybsze niż wyjęcie i przekartkowanie notesu (ale "spełnia wymogi ustawowe" wg naszych ministerstw...), to postawienie Płatnika w osobnej dedykowanej mu wirtualce było jedną z głównych przyczyn dlaczego się w to bawiłem...

Portowanie MS SQL na Linuksa Microsoft nazwał "Najbardziej udanym portowaniem w historii" i większość jego serwerów na Azure jest na Linuksie... Zwróć uwagę, że MS SQL chodzi na kontenerze linuksowym a nie chodzi (w przeciwieństwie do innych baz danych) na nano serwerach windzianych...  ;)
Mając na uwadze, że ewentualna krytyka może być, tak musimy zrobić, żeby tej krytyki nie było, tylko aplauz i zaakceptowanie.

Offline lurk

  • Nowy użytkownik
  • *
  • Wiadomości: 7
  • Reputacja +1/-0
  • Wersja programu: Rewizor GT
Odp: Baza MS SQL na linuxie
« Odpowiedź #77 dnia: Listopad 07, 2022, 15:38:19 »
A to z Płatnikiem mnie pozytywnie zaskoczyłeś, bo u mnie każda próba eksportu z bazy na WIN do bazy archiwalnej na Linux kończyła się finalnie komunikatem(ad-hoce powłączałem od razu, bo problem z eksportem bez tego był już na windzie):

Msg 7399, Level 16, State 1, Line 17 The OLE DB provider "MSDASQL" for linked server "(null)" reported an error. The provider did not give any information about the error. Msg 7303, Level 16, State 1, Line 17 Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".

I rzeczywiście w serwerze linuxmssql jak w Studio podglądam, to brak tych providerów. Jest sposób ?

Co do Windy, to ja już patrze na to coś jak na smutną konieczność. Serwery dawno robię na Linuxach, ew. dla pulpitów zdalnych jakąś Windę w wirtualce uruchomię. W MS nie ma nawet  porządnego systemu typu ZFS, czy BTRFS. Po perypetiach z WIN11 i indeksowaniem, oraz wyższą szkoła jazdy co do licencjonowania pakietu MS Office w ogóle nie rozumiem fenomenu tego systemu. Wielka szkoda, że nie może przebić się do świata komercji jakiś fajny linux Desktopowy - za dużo edycji i wersji. Może tak się stanie, jak zmuszą ludzi do płacenia abonamentów za windę? Bo idzie to ku temu.







Postawiłem sobie za cel postawienie alternatywy dla serwera dla small buisness server z serwerem plików, kontrolerem domeny, MSSQL serwerem, serwerem VPN i serwerem backupu/synchronizacji stacji roboczych (SyncThing). udało mi się te wszystkie komponenty postawić w kontenerach. A wszystko za free, na mocnej maszynie.
(...)
Nie udało mi się np. w Płatniku zarchiwizować danych płatnika do bazy archiwalnej lub zewnętrznej stojącej na MSSQL Linux, co pokazuje tylko że niektóre funkcje w aplikacjach mogą nie zadziałać, co może zdyskwalifikować całe przedsięwzięcie.
U mnie był podobny cel, ale mniej ambitnie, bo z NAS od znanej firmy (drożej, ale łatwiej i ze wsparciem) + mocna maszyna na Proxmox VE.

Co do Płatnika, to coś masz źle skonfigurowane. Gwarantuję osobiście, że archiwizacja do bazy archiwum czy innej roboczej na MS SQL na linuksowym kontenerze działa bezbłędnie. Tylko ten syfolec pod względem bezpieczeństwa, odkąd ZUS sam go "rozwija", do działania wymaga nie tylko praw dostępu do zapisu do swojego katalogu dla zwykłych użytkowników (inaczej nie działa aktualizacja!), nie tylko wymaga uprawnień administratora na MS SQL (do wersji 8 wystarczał dbo!), ale też wymaga włączenia na serwerze Ad Hoc Distributed Queries, bo bez tego nie ma mowy, by archiwizacja działała. Przy czym ja mam uwierzytelnienie po koncie na MS SQL a nie po Windzie (i nie wiem czy po koncie na Windzie działa), a ponieważ jak pewnie wiesz, odczytanie haseł z Płatnika jest chyba szybsze niż wyjęcie i przekartkowanie notesu (ale "spełnia wymogi ustawowe" wg naszych ministerstw...), to postawienie Płatnika w osobnej dedykowanej mu wirtualce było jedną z głównych przyczyn dlaczego się w to bawiłem...

Portowanie MS SQL na Linuksa Microsoft nazwał "Najbardziej udanym portowaniem w historii" i większość jego serwerów na Azure jest na Linuksie... Zwróć uwagę, że MS SQL chodzi na kontenerze linuksowym a nie chodzi (w przeciwieństwie do innych baz danych) na nano serwerach windzianych...  ;)

Offline Artwi

  • Aktywny użytkownik
  • ***
  • Wiadomości: 187
  • Reputacja +3/-0
  • Wersja programu: Insert GT aktualny
Odp: Baza MS SQL na linuxie
« Odpowiedź #78 dnia: Listopad 07, 2022, 17:20:11 »
A to z Płatnikiem mnie pozytywnie zaskoczyłeś, bo u mnie każda próba eksportu z bazy na WIN do bazy archiwalnej na Linux kończyła się finalnie komunikatem(ad-hoce powłączałem od razu, bo problem z eksportem bez tego był już na windzie):

Msg 7399, Level 16, State 1, Line 17 The OLE DB provider "MSDASQL" for linked server "(null)" reported an error. The provider did not give any information about the error. Msg 7303, Level 16, State 1, Line 17 Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".

I rzeczywiście w serwerze linuxmssql jak w Studio podglądam, to brak tych providerów. Jest sposób ?

A to masz niestety inny przypadek, bo ja nie robię eksportu z bazy na Win do bazy na Linux, tylko z bazy na Linux do bazy na Linux.
Ale na 100% gwarantuję, że można się podpinać Excelem na Windzie do baz InsERTa GT na Linuksie.
Ale w każdym przypadku używam uwierzytelniania na serwerze MS SQL.
Jak używasz domenowego, to może w tym tkwi problem?

https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-editions-and-components-2017?view=sql-server-ver16

    Unsupported feature or service: Active Directory Authentication for Linked Servers

I zobacz we właściwościach bazy, czy nie masz ścieżek do jej plików linuksowych, zamiast windzianych (kierunek ukośników) i jak masz, to zmień na windziane. Może to bruździ, bo InsERTowi to częściowo bruździ.

Obadam to co napisałeś w wolnej chwili w pracy.
Mając na uwadze, że ewentualna krytyka może być, tak musimy zrobić, żeby tej krytyki nie było, tylko aplauz i zaakceptowanie.

Offline 123pla

  • Nowy użytkownik
  • *
  • Wiadomości: 2
  • Reputacja +0/-0
  • Wersja programu: GT 1.79
Odp: Baza MS SQL na linuxie
« Odpowiedź #79 dnia: Wrzesień 12, 2024, 21:46:27 »
mklink /d C:\ProgramData\InsERT\Temp \\uSql\tmp - oto jest całe magiczne polecenie

Archiwizacja, upgrade baz do nowej wersji i attach jest uruchamiana z aplikacji, więc trzeba zrobić tak, żeby aplikacja po WIN  miała folder Temp podlinkowany do  katalogu na Linux z serwerem SQL udostępnionego sambą

Pozwolę sobie odkurzyć wątek bo mam mały problem z tą kopią z poziomu Archiwizatora - ustawienie katalogu roboczego mi działa, tworzy się plik .bak w podkatalogu o nazwie zawierającej jakiś UUID ale potem wyskakuje okienko 'zapisz jako' (bez znaczenia co wpiszę w polu folder archiwum w parametrach) i cokolwiek bym nie wybrał z drzewka (struktura katalogów z klienta Windows) momentalnie wraca do tego okienka wyboru .... Będę wdzięczny za wszelkie sugestie

Offline lurk

  • Nowy użytkownik
  • *
  • Wiadomości: 7
  • Reputacja +1/-0
  • Wersja programu: Rewizor GT
Odp: Baza MS SQL na linuxie
« Odpowiedź #80 dnia: Wrzesień 13, 2024, 07:42:36 »
mklink /d C:\ProgramData\InsERT\Temp \\uSql\tmp - oto jest całe magiczne polecenie

Archiwizacja, upgrade baz do nowej wersji i attach jest uruchamiana z aplikacji, więc trzeba zrobić tak, żeby aplikacja po WIN  miała folder Temp podlinkowany do  katalogu na Linux z serwerem SQL udostępnionego sambą

Pozwolę sobie odkurzyć wątek bo mam mały problem z tą kopią z poziomu Archiwizatora - ustawienie katalogu roboczego mi działa, tworzy się plik .bak w podkatalogu o nazwie zawierającej jakiś UUID ale potem wyskakuje okienko 'zapisz jako' (bez znaczenia co wpiszę w polu folder archiwum w parametrach) i cokolwiek bym nie wybrał z drzewka (struktura katalogów z klienta Windows) momentalnie wraca do tego okienka wyboru .... Będę wdzięczny za wszelkie sugestie

Instrukcja:
<<
sudo apt-get install software-properties-common
sudo apt-get install php-curl
>>Instalacja linux4ubuntu
1. Zakładamy katalog na linux:
mkdir /mssql/backup/tmp
chmod 777 /mssql/backup/tmp

2. usuwamy katalogi (powstaną one dopiero pouruchomieniu archiwizatora InsertGT i BiuroGT i próbie dearchiwizacji - nieudanej):
/var/opt/mssql/.system/profiles/Client/Temp
/var/opt/mssql/.system/profiles/Temp
/var/opt/mssql/.system/programdata/InsERT/Temp

opcjonalnie do poprawnego działania BiUROGT i Konwersji nalezy w podobny sposób skonfigurowac katalog:
/var/opt/mssql/.system/programdata/InsERT/Backup jeśli wybieramy przy konwersji tworzenie kopii zapasowych baz danych do pluków .bak

3. W ich miejsce tworzymy po kolei linki do katalogu udostepnionego przez sambę poleceniem:
# sudo ln -s /mssql/backup/tmp Temp
4. Instalujemy sambę:
sudo apt install samba
5. podmieniamy /etc/samba/smb.conf na:

[global]

# Identification
netbios name = usql
workgroup = WORKGROUP
server string = Samba Server Version %v
map to guest = Bad User
#guest account = mssql
[tmp]
    comment = SQL Tmp Folder
    path = /mssql/backup/tmp
    read only = no
    browsable = yes
    guest only = yes
    public = yes
    writeable = yes
    force user = mssql
    force group = mssql
    create mask = 0660
    directory mask = 0770
W windows podmieniamy katalog tymczasowy C:\ProgramData\InsERT\Temp na link do

Uruchamiamy linię komend cmd.exe z upr. administratora
mklink /d C:\ProgramData\InsERT\Temp \\uSql\tmp
 >>

Jako katalog tymczasowy do programów na PC (Archiwizator, BiuroGT i inne), podajemy: "C:\ProgramData\InsERT\Temp" z palca. Pilnujemy, żeby nie zamienił tego na ścieżke linux. Katalog do zrobienia kopii podajemy juz zwykły ma PC.



Forum Użytkownikow Subiekt GT

Odp: Baza MS SQL na linuxie
« Odpowiedź #80 dnia: Wrzesień 13, 2024, 07:42:36 »