Drošība un dublēšana MongoDB

Satura rādītājs
Izveidojot savu pakalpojumu ražošanas vidē vai, iespējams, attīstības vidē, kurā ir vairāki lietotāji, vispirms jāizveido drošības shēma, kas ļauj mums novērst Datu bāzes cilvēki piekļūst nepareizi.
Galvenā iezīme MongoDB ir tas, ka, instalējot instanci, tā darbojas, neradot nekāda veida autentifikācijas pasākumus, tas ir šādi, lai atvieglotu izstrādes sākumu, taču pienāk brīdis, kad mums ir jāaizsargā mūsu infrastruktūra.
Vēl viens svarīgs jautājums, kas saistīts ar mūsu datu drošības un dublēšanas jautājumu, ir tas, kad mums ir jāveido rezerves kopija noteiktā brīdī, bet mēs nevēlamies, lai notiktu datu kustība, jo tādējādi mēs garantējam savu datu integritāti. Datu bāzes un dokumentu kolekcijas. Šajā aspektā ir arī rīks MongoDB kas ļauj mums uz laiku to bloķēt, lai nodrošinātu, ka mūsu kopētais ir atbilstošs.
PrasībasPrasības, kas mums šajā gadījumā ir vajadzīgas, ir ļoti vienkāršas, un mums vienkārši ir jābūt šādam gadījumam MongoDB instalēta un darbojas mūsu sistēmā, mums būs nepieciešama arī piekļuve pakalpojumam, izmantojot konsoli. Šī apmācība tika izstrādāta Windows, tāpēc dažas komandas var mainīties citās operētājsistēmās, taču tas viss ir saistīts ar to, kas tiek darīts ārpus konsoles MongoDB, un veids, kā mēs izsakām maršrutus.
Lietotāja autentifikācijas parametru iestatīšana nav būtiska darbībai MongoDB ražošanā, jo mēs varam instalēt pakalpojumu tā, lai iekārtai, kurā tā darbojas, būtu savienojuma filtrs, tādēļ, ja mēs mēģināsim piekļūt minētajam aprīkojumam ārpus tīkla, mums nebūs piekļuves.
Šī vienkāršotā pieeja drošībai ir ļoti efektīva, bet tikai projektiem, kuros pakalpojums netiek kopīgots ar citām komandām, jo, ja mums ir dažādas izstrādes komandas, kas strādā pret vienu un to pašu serveri, mums ir nepieciešams kaut kas cits. Šī ir vieta, kur autentifikācija, ar to mēs rūpējamies par lietotāja un paroles pieprasīšanu katrai kolekcijai, ja mēs to vēlamies, tādējādi mums ir iespēja pienācīgi nodalīt dažādus gadījumus katram datoram.
Abi drošības pasākumi nav ekskluzīvi, un, ja mēs vēlamies tos izmantot vienlaicīgi, tas, ko mēs darām, ir radīt daudz drošāku pakalpojumu mūsu videi, neatkarīgi no tā, vai tā ir ražošana, pirmsražošana vai vairāku komandu izstrāde.
autentifikācija visvienkāršākajā formā tas tiek panākts ar komandu createUser Tas ir jāizpilda, kad esam atlasījuši Datu bāze admin kur vajadzētu atrasties mūsu lietotājiem.
Ir svarīgi atzīmēt, ka kopš versijas 2.6 no MongoDB ir tā, ka šo metodi sāka izmantot createUser, agrāk viss tika atrisināts ar metodi addUserTomēr izmaiņas tika veiktas, lai veiktu izmaiņas daudzpusīgāk.
Apskatīsim, kā mēs varam iestatīt administratora lietotāju un pēc tam lietotāju, kurš var lasīt tikai datu bāzi pārbaude.
Dokumenta struktūra, kas saņem metodi createUser ir nākamais:
 {"Lietotājs": "lietotājvārds", "pwd": "parole", "lomas": [{"loma": "", "db": ""},]}
Kā mēs atzīmējām, mums ir jānosaka izveidotā lietotāja vārds un parole, bet papildus tam mums ir jāizveido arī lomas, kas ir atļauju struktūra, kas ļaus mums noteikt lietotājam piešķirtās pilnvaras. .
Šajā piemērā mēs izveidosim administratora lietotāju, kuram ir piekļuve visiem Datu bāzes un kas var kontrolēt pakalpojumu, šim nolūkam mēs izmantosim lomas:
  • clusterAdmin
  • readAnyDatabase
  • Lasīt rakstīt

Izmantojot šos trīs parametrus, mēs jau varam pārvaldīt savu pirmo lietotāju. Apskatīsim, kā tas izskatās konsolē:

Ar to mēs jau esam veiksmīgi izveidojuši savu administratora lietotāju, tagad mums ir pareizi jāatceras lietotājvārds un parole, jo nākamais solis, ko mēs darīsim, ir iespējot drošību, tāpēc mums ir jāsāk pakalpojums ar parametru -aut.
Restartējot pakalpojumu, mēs varam ievietot mūsu jaunizveidoto administratora lietotāju un, lai to pārbaudītu, mēs izveidosim lietotāju, kurš var lasīt tikai Datu bāze. Apskatīsim, kā mēs restartējam pakalpojumu, veicot šādas darbības.
Mums vienkārši tas vispirms ir jāpārtrauc, piemēram, gadā Windows mēs nostājamies uz konsoles, kurā tā darbojas, un nospiežam taustiņus CTRL + C. Tad mēs atkal sākam pakalpojumu, bet beigās nododam parametru aut, kā mēs varam redzēt šajā konsolē:

Kad tas ir izdarīts, mēs atgriezīsimies vadības pultī MongoDB, bet šajā gadījumā, ja mēs izmantosim savu jaunizveidoto lietotāju:
 mongo.exe -lietotājvārds = sakne -parole = 123456 admin
Izmantojot šo iepriekšējo rindu, mēs varam droši piekļūt mūsu pakalpojumam, mēs to varam redzēt šādā attēlā:

Ir svarīgi atcerēties, ka šajā piemērā mums ir jāizmanto drošāka parole nekā "123456", tā tiek izmantota tikai demonstrācijas nolūkos, tomēr ražošanas videi tā nav piemērota.
Tā kā esam pārbaudījuši, kā piekļūt, izmantojot autentifikāciju, mēs izveidosim lietotāju, kurš var lasīt tikai Datu bāze pārbaude, šim nolūkam mēs atkārtosim lietotāja izveidi, bet precizēsim lomu:
 lasīt
Tādējādi šādā veidā mēs ierobežosim lietotāju, lai viņš nevarētu rakstīt kolekcijās. Apskatīsim atbildi mūsu konsolē:

Tagad, mēģinot rakstīt dokumentu, mēs saņemsim kļūdu:

Mēs redzējām, kā mēs jau esam pienācīgi nodrošinājuši savus lietotājus, ir skaidrs, ka šis lietotāju administrēšanas darbs ir nedaudz sarežģīts, taču, tiklīdz mēs to esam paveikuši, mēs varam būt ļoti pārliecināti, ka mums nebūs nesankcionētas piekļuves Datu bāzes ko mēs aizsargājam.
Viena no sarežģītākajām darbībām, kas jānodrošina, veicot dublējumu, ir tā, ka mums ir jāgarantē datu integritāte, tas noved mūs pie dilemmas, atrod laiku, kad strādā mazāk lietotāju un veic dublējumu, vai arī to dara neatkarīgi no datiem .
fsync un lockTā tam nevajadzētu būt, protams, vienmēr ieteicams izveidot dublējumu laikā, kad zinām, ka ir vismazākais lietotāju skaits, jo mēs izvairāmies no lietojumprogrammu problēmām, garantējot, ka dati vienmēr ir iespējami, ja izmantojam MongoDB mēs zinām, kā fsync Y slēdzene.
Izmantojot šos divus parametrus, mēs varam likt mūsu datu bāzei noraidīt rakstīšanu, un tajā brīdī mēs varam atbilstoši veikt dublējumus.
Lai izveidotu šo slēdzeni, mūsu datu bāzē jāizpilda šāda komanda:
 db.runCommand ({"fsync": "1", "lock": "1"});
Ar to mums būs savs Datu bāze efektīvi bloķēta pret rakstīšanu:

Kā mēs redzam, tas ir diezgan vienkārši un efektīvi, tagad, ja mēs vēlamies salauzt slēdzeni, mums vienkārši jāatkārto komanda:
 db.fsyncUnlock ();
Ar pēdējo mums atkal būs savs Datu bāze spēj saņemt rakstisku:

Lai gan iepriekš minētais nozīmē lielāku elastību un sniedz mums daudz lielāku aizsardzību pret datu korupciju un veicina integritāti, tā patiešām nav prakse, kas mums būtu jāievēro reālā ražošanas vidē.
Ideāls ir izveidot vidi ar replikāciju, kurā mēs varam piekļūt datu kopijai un tādējādi var manipulēt ar jebkuru no iespējām, kas mums ir nepieciešamās dublējumkopijas. Atrodoties kopijā Datu bāze ražošanu, mēs varam to bloķēt vai izslēgt un izveidot dublējumu tā, lai lietotājs nekad nesaskartos ar kļūdu lietojumprogrammā, jo nevar ierakstīt ierakstu.
Kas attiecas uz dublējumiem, lietas kļūst sarežģītākas, jo ieteicams izmantot servera kopijas, tomēr tā izdomāšanas veida dēļ MongoDB, šāda veida konstrukcijas saimnieks - vergs Tos ir ļoti viegli īstenot, tāpēc jēdziena izpratne ir visgrūtākā, taču tās pielietojums ir ārkārtīgi lietotājam draudzīgs. DBA.
Ar to mēs pabeidzam šo apmācību, kā redzam administrēšanu MongoDB Tā ir diezgan attīstīta, ja mums ir vidēja izmēra struktūra, iespējams, mēs jau esam domājuši par lietotāju drošības jautājumu, lai gan lietotāju izveide nav sarežģīta, ja ir labi apsēsties un definēt labu struktūru, lai izveidotu šāda veida atļaujas.Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu
wave wave wave wave wave