Toon posts:

Strict mode MariaDB, kan die veilig uit?

Pagina: 1
Acties:

Vraag


  • MrMarcie
  • Registratie: Oktober 2006
  • Laatst online: 17:44

MrMarcie

CFMoto 650MT gekocht

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


  • Jaaap
  • 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.

Dat betekent
Het gebeurt
Dit verandert
Wat bepaalt


  • NimRod1337
  • Registratie: November 2002
  • Laatst online: 18:49
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 NimRod1337 op 28-01-2023 20:02]


  • MrMarcie
  • Registratie: Oktober 2006
  • Laatst online: 17:44

MrMarcie

CFMoto 650MT gekocht

Topicstarter
Jaaap 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


  • MrMarcie
  • Registratie: Oktober 2006
  • Laatst online: 17:44

MrMarcie

CFMoto 650MT gekocht

Topicstarter
NimRod1337 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


  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 20:36

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


  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 20:17

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 :)


  • NimRod1337
  • Registratie: November 2002
  • Laatst online: 18:49
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?

  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 20:17

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 :)


  • 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


  • MrMarcie
  • Registratie: Oktober 2006
  • Laatst online: 17:44

MrMarcie

CFMoto 650MT gekocht

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


  • MrMarcie
  • Registratie: Oktober 2006
  • Laatst online: 17:44

MrMarcie

CFMoto 650MT gekocht

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


  • _JGC_
  • Registratie: Juli 2000
  • Nu online
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


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee