Strict mode MariaDB, kan die veilig uit?

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • MrMarcie
  • Registratie: Oktober 2006
  • Laatst online: 17-09 11:24

MrMarcie

CFMoto 650MT

Topicstarter
Ik heb voor een klant al jaren een VPS opgezet bij Vultr. Dat was CentOS maar met wat nieuwe sites heb ik nu gekozen voor Ubuntu. Dat draait alweer een hele tijd goed en zonder issues.

Maar die klant wil nu dat is Strict Mode UITzet.
Deze is nu:

STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Wil je deze modi uitschakelen?
Ik heb me echt rot gegoogled want ik ben niet zo thuis in Dbases en wil dat die server secure blijft en dat ik geen issues krijg met ander sites op die server want staan nog 2 andere (joomla 4) websites op.
Die klant, of eigenlijk zijn developer, werkt schijnbaar met oud programma en die heeft wat issues met die strict mode.

Ik kan nergens vinden dat het 'onveilig' is maar het heeft natuurlijk een functie. En volgens mij is het al behoorlijk lang zo dat die strict mode standaard op strict staat. Maar zij willen het anders, daarom de vraag of dat zonder problemen kan. Hoe ik het aanpas dat weet ik wel.
Ik begrijp trouwens ook dat ik dat niet per dbase uit kan zetten maar dat het voor de hele server (alle databases) geldt.

For sale | "Goodbyes are only for those who love with their eyes. Because for those who love with heart and soul there is no such thing as separation" Rumi

Alle reacties


Acties:
  • +1 Henk 'm!

  • Juup
  • Registratie: Februari 2000
  • Niet online
Je kunt voor deze ene klant een extra MariaDB naast de bestaande draaien (op een andere poort) met speciale settings voor alleen die klant.

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


Acties:
  • 0 Henk 'm!

  • pennywiser
  • Registratie: November 2002
  • Laatst online: 09:26
Vraag het hier eens: https://www.reddit.com/r/mariadb/

Verder hier nog wat info: https://stackoverflow.com...-mode-in-mysql-or-mariadb

Ik zou het niet zomaar uitzetten. Waar loopt de klant tegenaan dan?

[ Voor 63% gewijzigd door pennywiser op 28-01-2023 20:02 ]


Acties:
  • 0 Henk 'm!

  • MrMarcie
  • Registratie: Oktober 2006
  • Laatst online: 17-09 11:24

MrMarcie

CFMoto 650MT

Topicstarter
Juup schreef op zaterdag 28 januari 2023 @ 19:57:
Je kunt voor deze ene klant een extra MariaDB naast de bestaande draaien (op een andere poort) met speciale settings voor alleen die klant.
Dank je, dat wist ik dus niet. Ga ik even uitvogelen hoe dat moet.

For sale | "Goodbyes are only for those who love with their eyes. Because for those who love with heart and soul there is no such thing as separation" Rumi


Acties:
  • 0 Henk 'm!

  • MrMarcie
  • Registratie: Oktober 2006
  • Laatst online: 17-09 11:24

MrMarcie

CFMoto 650MT

Topicstarter
pennywiser schreef op zaterdag 28 januari 2023 @ 19:59:
Vraag het hier eens: https://www.reddit.com/r/mariadb/

Verder hier nog wat info: https://stackoverflow.com...-mode-in-mysql-or-mariadb

Ik zou het niet zomaar uitzetten. Waar loopt de klant tegenaan dan?
Dank je, die stack had ik al gevonden. Die Reddit nog niet aan gedacht.

For sale | "Goodbyes are only for those who love with their eyes. Because for those who love with heart and soul there is no such thing as separation" Rumi


Acties:
  • +1 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 17-09 21:10

Hero of Time

Moderator LNX

There is only one Legend

Hoewel je het op Linux draait, is het niet direct een Linux vraag en past dit topic beter in Server Software. Tikje die kant op.


Ik dacht dat het makkelijker is om Strict mode uit te zetten, dan naderhand aan, omdat software die gebruikt maakt van de database anders problemen kunnen geven als het opeens aan staat en het dat niet verwacht.

Persoonlijk zou ik aan die ene klant vragen om z'n ontwikkelaar te porren en z'n zaken meer naar de huidige tijd te brengen. Zeker als je een multi-database omgeving hebt waar anderen ook afhankelijk van zijn. Dan wil je niet iets aan de server config aanpassen waardoor mogelijk de andere klanten stuk gaan.
Als alternatief is wat eerder is genoemd nog een optie, compleet aparte instance draaien.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 08:24

The Eagle

I wear my sunglasses at night

Wat die strict mode volgens mij doet is een deel van de tabelconstraints uitzetten. Dan praat je potentieel ook over zaken als referentiele integriteit van je DB. Daarnaast: als de constraints over key values uitgezet worden, kun je niet meer op je indexen vertrouwen (kan zooi in zitten) en sowieso kan het vertraging van de db opleveren.

Als het al jaren zo draait zou ik echt eens vragen wat het probleem is. Ik denk dat dat simpelweg oude software of een incompetente developer is eerlijk gezegd.

Geef bij de klant aan dat je niet meer de garantie op de volledige integriteit van de db kunt geven, en dat als strict mode uit gaat hij alleen nog een full restore van je kan verwachten. Meestal vragen ze dan voor een andere oplossing ;)

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


Acties:
  • 0 Henk 'm!

  • pennywiser
  • Registratie: November 2002
  • Laatst online: 09:26
The Eagle schreef op zaterdag 28 januari 2023 @ 21:33:
Wat die strict mode volgens mij doet is een deel van de tabelconstraints uitzetten. Dan praat je potentieel ook over zaken als referentiele integriteit van je DB. Daarnaast: als de constraints over key values uitgezet worden, kun je niet meer op je indexen vertrouwen (kan zooi in zitten) en sowieso kan het vertraging van de db opleveren.

Als het al jaren zo draait zou ik echt eens vragen wat het probleem is. Ik denk dat dat simpelweg oude software of een incompetente developer is eerlijk gezegd.

Geef bij de klant aan dat je niet meer de garantie op de volledige integriteit van de db kunt geven, en dat als strict mode uit gaat hij alleen nog een full restore van je kan verwachten. Meestal vragen ze dan voor een andere oplossing ;)
Voor mijn begrip. full restore van wat, wat als er alleen nog maar backups zijn van tijdens de strict mode off periode en daar al intergriteits issues mee zijn?

Acties:
  • 0 Henk 'm!

  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 08:24

The Eagle

I wear my sunglasses at night

Ik bedoelde hem meer vanuit support gedachte. Dat ie dan alleen nog maar een full restore aanbiedt en that's it. Dus all or nothing, geen losse updates of aanpassingen ofzo :)

Dus als er alleen nog maar een backup van een non strict mode is, dan restore je ook het integriteitsprobleem. Daarom alles of niks, en niks anders. De rest is een bewuste keuze van de klant.

De meeste klanten zullen dat niet willen. Prima, tegel elders maar een db. Dit soort fratsen kost je als beheerpartij meer dan het behouden van een klant, zeker als ie met achenebbisj software draait of zelf dingen verkloot.

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


Acties:
  • +1 Henk 'm!

  • fopjurist
  • Registratie: Mei 2021
  • Niet online

fopjurist

mr.drs. fopjurist

The Eagle schreef op zaterdag 28 januari 2023 @ 21:33:
Wat die strict mode volgens mij doet is een deel van de tabelconstraints uitzetten.
Nee hoor:
Strict mode does not affect whether foreign key constraints are checked.
Wat strict_mode dan wel doet kun je in de handleiding nalezen. Het heeft te maken met hoe de database omgaat met bepaalde situaties. Met de optie ERROR_FOR_DIVISION_BY_ZERO geeft de database bijvoorbeeld een foutmelding bij deling door 0. Een applicatie kan zodanig zijn gebouwd dat hij wel of geen foutmelding verwacht, en het veranderen van deze instelling kan zo'n applicatie in de war brengen.
MrMarcie schreef op zaterdag 28 januari 2023 @ 19:49:
Die klant, of eigenlijk zijn developer, werkt schijnbaar met oud programma en die heeft wat issues met die strict mode.
Je kunt strictmode per sessie uitzetten met de query:
code:
1
SET sql_mode = '';

De klant heeft jou dus niet nodig.
The Eagle schreef op zaterdag 28 januari 2023 @ 21:45:
Ik bedoelde hem meer vanuit support gedachte. Dat ie dan alleen nog maar een full restore aanbiedt en that's it. Dus all or nothing, geen losse updates of aanpassingen ofzo :)
Support betekent voor mij ondersteuning, meedenken met de klant. Als je geen idee hebt wat strict mode inhoudt en me dan ook nog eens onnodig angst aanjaagt over backups ben ik snel weg als klant.

Beschermheer van het consumentenrecht


Acties:
  • 0 Henk 'm!

  • MrMarcie
  • Registratie: Oktober 2006
  • Laatst online: 17-09 11:24

MrMarcie

CFMoto 650MT

Topicstarter
The Eagle schreef op zaterdag 28 januari 2023 @ 21:33:
../..

Als het al jaren zo draait zou ik echt eens vragen wat het probleem is. Ik denk dat dat simpelweg oude software of een incompetente developer is eerlijk gezegd.../..
Het is overgenomen oude software waar volgens mij aan gesleuteld is. Die developer kan ik niet inschatten wat zijn kwaliteiten zijn.

For sale | "Goodbyes are only for those who love with their eyes. Because for those who love with heart and soul there is no such thing as separation" Rumi


Acties:
  • 0 Henk 'm!

  • MrMarcie
  • Registratie: Oktober 2006
  • Laatst online: 17-09 11:24

MrMarcie

CFMoto 650MT

Topicstarter
fopjurist schreef op zaterdag 28 januari 2023 @ 21:49:
[...]

[...]

Je kunt strictmode per sessie uitzetten met de query:
code:
1
SET sql_mode = '';

De klant heeft jou dus niet nodig.

[...]
Ik ben slecht in dbases hoor, maar ik begrijp hieruit dat die developer in zijn scripts/etc die sql_mode kan zetten zoals hij wil?
Dan ga ik hem dat maar eens voorleggen.

For sale | "Goodbyes are only for those who love with their eyes. Because for those who love with heart and soul there is no such thing as separation" Rumi


Acties:
  • +1 Henk 'm!

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 12:33
Ik heb ook een aantal sites die niet werken met strict mode. Waar je tegenaan loopt zijn queries als "SELECT * FROM tabel GROUP BY product_id en het invoegen van 0 in datetime velden.

Beide zijn niet meer toegestaan vanaf MySQL 5.7 en dat heeft gewoon een logische reden. Die query is nml gewoon fout en ipv 0 kan je ook null invullen in een datetime veld.

Strict mode uitzetten heeft geen effect op andere projecten, je staat vnml gedrag toe wat in een latere versie van MySQL niet meer zal werken.
Pagina: 1