Sauga ir atsarginė kopija „MongoDB“

Turinys
Kurdami paslaugą gamybinėje aplinkoje arba galbūt kūrimo aplinkoje, kurioje yra keli vartotojai, pirmiausia turime sukurti saugumo schemą, kuri leidžia užkirsti kelią mūsų Duomenų bazės žmonės neteisingai pasiekia.
Pagrindinis bruožas MongoDB yra tai, kad diegiant egzempliorių jis veikia nesukūrus jokio tipo autentifikavimo priemonės, tai palengvina kūrimo pradžią, tačiau ateina momentas, kai turime apsaugoti savo infrastruktūrą.
Kitas svarbus aspektas, susijęs su mūsų duomenų saugumo ir atsarginių kopijų kūrimo klausimu, yra tada, kai reikia padaryti tam tikro momento atsarginę kopiją, tačiau nenorime, kad būtų vykdomas duomenų judėjimas, nes tokiu būdu garantuojame savo duomenų vientisumą. Duomenų bazės ir dokumentų rinkiniai. Šiuo aspektu taip pat yra įrankis MongoDB tai leidžia laikinai jį užblokuoti, kad užtikrintume, jog tai, ką kopijuojame, yra tinkama.
ReikalavimaiReikalavimai, kurių mums reikia šia proga, yra labai paprasti, mes tiesiog turime turėti pavyzdį MongoDB įdiegta ir veikia mūsų sistemoje, mums taip pat reikės prieigos prie paslaugos per konsolę. Ši pamoka buvo sukurta m „Windows“, todėl kai kurios komandos gali keistis kitose operacinėse sistemose, tačiau visa tai susiję su tuo, kas daroma ne konsolėje MongoDB, ir tai, kaip išreiškiame maršrutus.
Vartotojo autentifikavimo parametrų nustatymas nėra labai svarbus MongoDB gamyboje, nes mes galime įdiegti paslaugą taip, kad įranga, kurioje ji veikia, turėtų ryšio filtrą, taigi, jei bandysime pasiekti minėtą įrangą už tinklo ribų, neturėsime prieigos.
Šis supaprastintas požiūris į saugumą yra labai efektyvus, tačiau tik tiems projektams, kuriuose paslauga nėra dalijamasi su kitomis komandomis, nes jei turime skirtingas kūrimo komandas, dirbančias prieš tą patį serverį, mums reikia kažko kito. Štai kur autentifikavimas, su juo mes pasirūpiname, kad, jei pageidaujame, paprašytume vartotojo ir slaptažodžio kiekvienai kolekcijai, todėl turime galimybę tinkamai atskirti skirtingus kiekvieno kompiuterio egzempliorius.
Abi saugumo priemonės nėra išskirtinės, ir jei norime jas naudoti vienu metu, tai, ką mes darome, sukuria daug saugesnę paslaugą mūsų aplinkai, nesvarbu, ar tai būtų gamyba, išankstinė gamyba, ar kelių komandų kūrimas.
The autentifikavimas savo pagrindine forma jis pasiekiamas su komanda createUser Tai turi būti įvykdyta, kai mes pasirinkome Duomenų bazė admin kur turėtų būti mūsų vartotojai.
Svarbu pažymėti, kad nuo versijos 2.6 apie MongoDB yra tai, kad metodas buvo pradėtas naudoti createUser, anksčiau viskas buvo išspręsta metodu addUserTačiau pakeitimas buvo atliktas siekiant didesnio universalumo atliekant pakeitimus.
Pažiūrėkime, kaip galime nustatyti administratoriaus vartotoją, o tada vartotoją, kuris gali skaityti tik duomenų bazę testas.
Metodą gaunančio dokumento struktūra createUser yra kitas:
 {"Vartotojas": "vartotojo vardas", "pwd": "slaptažodis", "vaidmenys": [{"vaidmuo": "", "db": ""},]}
Kaip jau minėjome, privalome nustatyti savo sukurto vartotojo vardą ir slaptažodį, bet be to, turime sukurti ir vaidmenis, tai yra leidimų struktūra, leidžianti mums apibrėžti vartotojui suteiktas galias .
Šiame pavyzdyje mes sukursime administratoriaus vartotoją, kuris turi prieigą prie visų Duomenų bazės ir tai gali valdyti paslaugą, tam mes naudosime vaidmenis:
  • clusterAdmin
  • readAnyDatabase
  • skaityk rašyk

Turėdami šiuos tris parametrus, jau galime valdyti savo pirmąjį vartotoją. Pažiūrėkime, kaip tai atrodo konsolėje:

Tai jau sėkmingai sukūrėme savo administratoriaus vartotoją, dabar turime tinkamai prisiminti vartotojo vardą ir slaptažodį, nes kitas žingsnis, kurį mes padarysime, yra įjungti saugumą, tam mes turime pradėti paslaugą naudodami parametrą -aut.
Iš naujo paleisdami paslaugą galime įdėti naujai sukurtą administratoriaus vartotoją ir jį išbandyti sukursime vartotoją, kuris gali skaityti tik Duomenų bazė. Pažiūrėkime, kaip iš naujo paleisti paslaugą atlikdami šiuos veiksmus.
Mes tiesiog pirmiausia turime tai sustabdyti, pavyzdžiui „Windows“ atsistojame ant konsolės, kurioje ji veikia, ir paspaudžiame klavišus CTRL + C. Tada mes vėl pradedame savo paslaugą įprastai, bet galiausiai perduodame parametrą aut, kaip matome šioje konsolėje:

Kai tai bus padaryta, grįšime į valdymo pultą MongoDB, tačiau šiuo atveju, jei ketiname naudoti naujai sukurtą naudotoją:
 mongo.exe -vartotojo vardas = šaknis -slaptažodis = 123456 admin
Naudodami šią ankstesnę eilutę galime saugiai pasiekti savo paslaugą, tai matome šiame paveikslėlyje:

Svarbu prisiminti, kad šiame pavyzdyje turime naudoti saugesnį slaptažodį nei „123456“, jis naudojamas tik demonstravimo tikslais, tačiau gamybos aplinkai jis netinka.
Kadangi patikrinome, kaip pasiekti naudojant autentifikavimą, ketiname sukurti vartotoją, kuris gali skaityti tik Duomenų bazė testas, šiuo tikslu pakartosime vartotojo kūrimą, tačiau nurodysime vaidmenį:
 skaityti
Taigi tokiu būdu apribosime vartotoją, kad jis negalės rašyti kolekcijose. Pažiūrėkime atsakymą į konsolę:

Dabar bandydami parašyti dokumentą gausime klaidą:

Tuomet matėme, kaip jau pakankamai apsaugojome savo vartotojus, akivaizdu, kad šis vartotojų administravimo darbas yra šiek tiek sudėtingas, tačiau jį atlikę galime būti labai tikri, kad neturėsime neteisėtos prieigos prie Duomenų bazės kad mes saugome.
Viena iš sudėtingiausių veiklų, kurią reikia užtikrinti, kai darome atsarginę kopiją, yra tai, kad privalome garantuoti duomenų vientisumą, tai veda mus į dilemą, suranda laiką, kai dirba mažiau vartotojų ir daro atsarginę kopiją, arba tai daro nepriklausomai nuo duomenų .
fsync ir lockTaip neturėtų būti, žinoma, visada rekomenduojama padaryti atsarginę kopiją tuo metu, kai žinome, kad yra mažiausias vartotojų skaičius, nes vengiame programų problemų, todėl garantuojame, kad duomenys visada įmanomi, jei naudosime MongoDB mes žinome kaip fsync Y spyna.
Naudodami šiuos du parametrus, galime priversti savo duomenų bazę atmesti įrašus ir tuo pačiu metu tinkamai atlikti atsargines kopijas.
Norėdami sukurti šią užraktą, savo duomenų bazėje turime paleisti šią komandą:
 db.runCommand ({"fsync": "1", "lock": "1"});
Su tuo mes turėsime savo Duomenų bazė veiksmingai apsaugotas nuo rašymo:

Kaip matome, tai gana paprasta ir veiksminga, dabar, jei norime sulaužyti užraktą, turime tiesiog pakartoti komandą:
 db.fsyncUnlock ();
Su pastaruoju mes vėl turėsime savo Duomenų bazė gali priimti raštu:

Nors tai, kas išdėstyta aukščiau, suteikia didesnį lankstumą ir suteikia mums daug didesnę apsaugą nuo duomenų sugadinimo ir skatina vientisumą, tai tikrai nėra praktika, kurios turėtume laikytis realioje gamybos aplinkoje.
Idealu yra sukurti aplinką su replikacija, kurioje galėtume pasiekti duomenų kopiją ir tokiu būdu galėtume manipuliuoti naudodami bet kurią iš parinkčių, kurias turime būtinas atsargines kopijas. Būdamas kopijoje Duomenų bazė gamybą, galime ją užblokuoti arba išjungti ir padaryti atsarginę kopiją taip, kad vartotojas niekada nesusidurtų su klaida programoje, nes negali įrašyti įrašo.
Kalbant apie atsargines kopijas, viskas tampa sudėtingesnė, nes patartina naudoti serverio kopijas, tačiau dėl to, kaip ji buvo sukurta MongoDB, šio tipo konstrukcijos šeimininkas - vergas Juos labai lengva įgyvendinti, todėl suprasti šią sąvoką yra sunkiausia, tačiau jos pritaikymas yra itin patogus vartotojui. DBA.
Tuo mes baigiame šią pamoką, kaip matome administravimą MongoDB Tai gana pažengusi, jei turime vidutinio dydžio struktūrą, galbūt jau pagalvojome apie vartotojų saugumo klausimą, nors vartotojų kūrimas nėra sudėtingas, jei gerai atsisėsti ir apibrėžti gerą struktūrą, kad sukurtumėte tokio tipo leidimus.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką
wave wave wave wave wave