V tomto blogu jsme hovořili o některých databázových systémech, z nichž nejoblíbenější jsou MariaDB a MySQL, protože se jedná o systémy, které jsou obvykle obsaženy v Xampp nebo Lampp. Tentokrát o tom budeme mluvit jiný systém, který je MongoDB.
MongoDB je databázový systém NoSQL s otevřeným zdrojovým dokumentem, Tohle je moderní systém pro správu databáze dokumentů navržený pro vysoce výkonnou perzistenci dat, vysoká dostupnost a automatické škálování založené na technologii NoSQL.
Namísto ukládání dat do tabulek, jak se to dělá v relačních databázích, MongoDB ukládá datové struktury v dokumentu, což je datová struktura skládající se z dvojic polí a hodnot (dokumenty MongoDB jsou srovnatelné s objekty JSON).
Protože poskytuje vysoký výkon a vynikající vlastnosti škálovatelnosti, používá se k vytváření moderních aplikací, které vyžadují výkonné, kritické a vysoce dostupné databáze.
Instalace MongoDB na Ubuntu
Chcete-li nainstalovat tento databázový systém do našeho systému, Musíme pouze otevřít terminál a provést v něm následující příkaz:
sudo apt install mongodb
Instalace hotova, Služba MongoDB se spustí automaticky přes systemd a proces poběží na portu 27017. Jeho stav můžete zkontrolovat pomocí příkazu:
sudo systemctl status mongodb
Pokud ne, můžeme vynutit start pomocí tohoto příkazu:
sudo systemctl start mongodb
Povolení vzdáleného připojení k MongoDB
Databázový systém MongoDB standardně používá port 27017, který musíme otevřít Abychom mohli přijímat vzdálená připojení, povolíme je pouze pomocí následujícího příkazu.
sudo ufw allow 27017
Ve výchozím nastavení je k portu 27017 přístup pouze z místní adresy 127.0.0.1. Chcete-li povolit vzdálená připojení k MongoDB, je nutné do souboru přidat IP adresu serveru /etc/mongodb.conf
Stačí jej upravit pomocí:
sudo nano
A můžeme vidět něco podobného tomuto:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
Které upravujeme údaji z našeho serveru.
Povolením přístupu k MongoDB odkudkoli poskytuje neomezený přístup k datům v databázi. Proto je lepší poskytnout přístup k výchozí IP adrese pro konkrétní místo portu MongoDB.
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
Jakmile to uděláte, stačí restartovat službu, aby se nové změny načetly na začátku, to uděláme s:
sudo systemctl restart mongodb
Vytvořte uživatele v MongoDB s heslem
Ve výchozím nastavení má databáze poměrně jednoduchý přístup, takže k jejímu posílení můžeme vytvořit uživatele s heslem.
MongoDB používá mechanismus autentizace SCRAM ve výchozím stavu. Použití SCRAM v systému ověří dodaná pověření uživatele proti uživatelské jméno, heslo a ověřovací databázi.
Stačí spustit databázovou konzolu pomocí následujícího příkazu:
Mongo
Můžeme vytvořit seznam existujících databází pomocí:
show dbs
Můžeme vytvořit uživatele, který nám umožní spravovat uživatele a funkce například vytváření uživatelů, udělení nebo zrušení rolí uživatelů a vytváření nebo úpravy celních rolí.
Stačí napsat
use admin
A uživatele vytvoříme pomocí následujícího příkazu, kde nahradíme jméno uživatele „root“ a heslo „heslo“ přístupovými Crecenciales, které považujeme za vhodné.
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
Jakmile to provedete, musíme povolit metodu ověřování k tomu upravíme následující soubor:
sudo nano /lib/systemd/system/mongodb.service
A budeme hledat další řádek:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
A upravit tak, aby to bylo následující:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Nyní jednoduše restartujeme z databáze
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y Metodu ověřování testujeme pomocí:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
Pomozte mi s touto CHYBOU.
2021-03-24T21: 33: 16.233 + 0000 E QUERY [thread1] Chyba: listDatabases se nezdařil: {
«OK»: 0,
"Errmsg": "není autorizován správcem k provedení příkazu {listDatabases: 1.0, $ db: \" admin \ "}",
"Kód": 13,
"CodeName": "Neoprávněné"
}:
_getErrorWithCode@src/mongo/shell/utils.js: 25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js: 65: 1
shellHelper.show@src/mongo/shell/utils.js: 816: 19
shellHelper@src/mongo/shell/utils.js: 706: 15
@ (shellhelp2): 1: 1