mongoDB datu-baseen kudeaketa #remake

Lehen urratsak

Sarrera originala 2017ko urtarrilaren 18koa da, segurtasun akats larri baten ondorioz, kudeatzen nuen zerbitzariko datu-baseetako batean jasandako ziber-eraso batek datu guztiak bahitu zizkidanekoa.Tira, gertaerak zer edo zer ikasteko balio izan zidala uste dut! 

MongoDB datu-baseak konfiguratzerakoan kontutan izan beharreko oinarrizko urrats batzuk agertu nituen.

mongodb

Datu-baseak bi mota desberdinetan sailkatu daitezke SQL eta NoSQL, hau da, erlazionalak eta ez erlazionalak.

Datu-base erlazionalak tauletan antolatzen dira. Datuek, aurkitzen diren taularekiko zutabe eta errenkadetan oinarrituriko erlazio zehatz bat gordetzen dute. Aldi berean taula desberdinen arteko inter-konexio edo erlazioak zehaztu daitezke. Beraz, datuen kudeaketan egiten den edozein eragiketa erlazio zehatz horietan oinarrituko da.

Datu-base ez erlazionalek ez dute egitura edo eskema zehatzik jarraitzen, honek, eremu berriak erraztasunez sortzea edo daudenak eraldatzea ahalbidetzen du. NoSQL datu-baseetan lau mota desberdin bereizten dira, gako/balio parea, zutabeetara bideratzen dena, grafoetan oinarritzen dena eta dokumentuetara bideratzen dena. Datu-base ez erlazionalen artean ezagunena MongoDB da eta berarekin batera Redis, ObjectDB, BigTable, DynamoDB, CouchDB, Cassandra edo HBase besteak beste.

instalakuntza eta konfiguraketa

MongoDB plataforma ugaritan instalatu daiteke, nik Ubuntu 16.04 24.04 LTS sistema eragilea darabilen zerbitzari batetan burutu dut. Hasteko gnupg eta curl instalaturik ditugula ziurtatu:


sudo apt-get install gnupg curl

Jarraian MongoDB biltegi ofizialaren GPG gako publikoa inportatu:


curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \

sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \

--dearmor

MongoDB biltegia iturri zerrendara gehitzeko list fitxategia sortu horrela:


echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

edo nahiago baldin bada sources fitxategia eskuz sortu:


sudo vim /etc/apt/sources.list.d/mongodb-server-8.0.sources

eta ondorengo formatuan gorde:


URIs: https://repo.mongodb.org/apt/ubuntu

Suites: noble/mongodb-org/8.0

Signed-By: /usr/share/keyrings/mongodb-server-8.0.gpg

Components: multiverse

Architectures: amd64

Biltegien datu-basea eguneratu:


sudo apt-get update

eta instalatu:


sudo apt-get install -y mongodb-org

Instalakuntza amaitu ondoren Mongo terminalean ireki eta erabiltzaile bat sortu root role-arekin admin datu-basean:


$ mongo

> use admin

> db.createUser(

  {

    user: "administratzailea",

    pwd: "pasahitza",

    roles: [ { role: "root", db: "admin" } ]

  })

Gero /etc/mongod.conf fitxategian autentifikazioa gaitu:


#mongodb <2.6 bertsioetan

auth = true

#mongodb >2.6 bertsioetan

security:

  authorization: enabled

Datu-basera sarbidea izango duten helbideak zehaztea oso garrantzitsua da, alde batetik localhost-a eta bestetik, behar izanez gero kanpotik konektatzeko erabiliko dugun makinaren helbidea konfiguratuko ditugu. Modu honetan helbide desberdinetatik jasotzen diren konexio eskaerak ukatu egingo dira:


# network interfaces

net:

  port: 27017

  bindIp: [127.0.0.1, 172.19.0.1]

Mongo berrabiarazi:


sudo systemctl restart mongod.service

Aurrerantzean administratzailea izango da MongoDB datu-basean edozein eragiketa egiteko ahalmena izango duena.

Datu-base zehatz baten kudeaketarako erabiltzaile jakin bat baimendu nahi baldin bada, administratzaile bezala logeatu eta erabiltzailea sortu beharko da. Adibidez, demagun sarrerak izeneko datu-basean kudeaketa baimena izango duen erabiltzaile bat sortu nahi dela:


$ mongo admin -u administratzailea -p pasahitza

> use sarrerak  //datu-basea existitzen ez baldin bada ere, mongo-k automatikoki sortuko du

> db.createUser(

  {

    user: "erabiltzaileBerria",

    pwd: "pasahitza",

    roles: [ { role: "read", db: "sarrerak" }{ role: "readWrite", db: "sarrerak" } ]

})

babeskopiak

Datu-basean informazioa pilatzen doan heinean beharrezkoa da backup edo babeskopiak egitea, edozein datu galera izanez gero, hauek berehala berreskuratzea ahalbidetzen baitu. Horretarako mongodump eta mongorestore erabili daitezke, horrela babeskopiak egiteko:


sudo mongodump -d «datubase-izena» -u administratzailea  -p pasahitza --authenticationDatabase admin -o «babeskopia-kokapena»

era honetan berriz berreskuratzeko:


mongorestore --drop -d «datubase-izena» «babeskopia-kokapena»

Hauek MongoDB segurtasunez erabiltzen hasteko oinarrizko urratsak izan dira. Besterik dakidanean itzuliko naiz!