MongoDB: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
guida da adottare
Nessun oggetto della modifica
(guida da adottare)
 
(13 versioni intermedie di un altro utente non mostrate)
Riga 1: Riga 1:
{{stub}}
{{Guida da adottare}}
== Cos'è MongoDB ? ==
== Cos'è MongoDB ? ==
MongoDB è un database opensource che fa parte di una tipologia particolare: è un database NoSQL.<br/>
MongoDB è un database opensource che fa parte di una tipologia particolare: è un database NoSQL.<br/>
Riga 7: Riga 7:
Se lo si vuole installare sulla propria macchina Debian è sufficiente utilizzare un unico comando aptitude, infatti:
Se lo si vuole installare sulla propria macchina Debian è sufficiente utilizzare un unico comando aptitude, infatti:
<pre>
<pre>
# aptitude installa mongodb
# aptitude install mongodb
</pre>
</pre>
procederà all'installazione del server e del client. <br/>
procederà all'installazione del server e del client. <br/>
Nella tipica nomenclatura del mondo GNU/Linux:
Nella tipica nomenclatura del mondo GNU/Linux:
* il server prenderà il nome di '''mongod''';
* il server prenderà il nome di '''mongod''';
* il client sarà '''mongo'''.
* il client sarà '''mongo'''.<br/>
Comunque si deve sempre tenere presente, come spesso capita, che tramite i comuni repository si trova una versione stabile del db ma meno recente dell'ultima stabile. Essendo MongoDB un prodotto nuovo e quindi in veloce evoluzione si può cercare di ottenere l'ultima versione stabile tramite il repository predisposto per la versione Debian del db.<br/>
In questo caso la procedura sarà:
<pre>
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
</pre>
per richiedere la chiave pubblica per l'autenticazione.<br/>
Si creerà un file di indirizzo '''/etc/apt/sources.list.d/10gen.list''' per l'indirizzo del nuovo repository. Il file conterrà la seguente riga:
<pre>
deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen
</pre>
A questo punto si procederà all'aggiornamento dei pacchetti con:
<pre>
aptitude update
</pre>
e si troverà disponibile un pacchetto di nome '''mongodb-10gen''' corrispondente all'ultima versione stabile del prodotto.
{{Suggerimento|Qualora ci si trovasse di fronte a problemi in fase dell'avvio del server MongoDB, si controlli la versione installata.<br/> Alcune opzioni usate nel file di configurazione potrebbero appartenere ad una versione più recente di quella presente sulla propria macchina.<br/> In tal caso, si veda, come spiegato, nel repository 10gen qual è l'ultima versione stabile di MongoDB }}
 
== Start, Stop e Restart ==
== Start, Stop e Restart ==
L'avvio del servizio e le corrispondenti azioni di stop e riavvio sono disponibili tramite le rispettive seguenti operazioni:
L'avvio del servizio e le corrispondenti azioni di stop e riavvio sono disponibili tramite le rispettive seguenti operazioni:
Riga 36: Riga 53:
logappend = true
logappend = true
</pre>
</pre>
I pochi parametri impostati servono a:
I pochi parametri impostati sono:
* definire l'indirizzo su cui il server è in ascolto: '''bind_ip'''. In questo caso, solo l'indirizzo locale;
* bind_ip: definire l'indirizzo su cui il server è in ascolto;
* port: la porta TCP su cui il server sarà contattato;
* port: la porta TCP su cui il server sarà contattato;
* dbpath: la directory che conterrà i database;
* dbpath: la directory che conterrà i database;
* logpath: file di log.
* logpath: file di log.
== Sicurezza ==
La sicurezza di MongoDB può essere curata sotto tre aspetti.
=== Firewall ===
Essendo un servizio di rete, contattabile tramite l'infrastruttura TCP/IP, il primo modo per proteggere la nostra installazione di MongoDB è la configurazione di regole firewall tramite iptables che permettano il traffico sulle porte solo per gli indirizzi che si desidera.<br/>
Lo stesso parametro bind_ip della configurazione di cui si è parlato rappresenta un primo elemento di sicurizzazione in quanto permette di agganciare il server ad un indirizzo specifico.
=== Autenticazione: il Secure Mode ===
Di default, MongoDB non lavora in secure mode ossia non fa uso dell'autenticazione. Ciò comunque in un ambiente di produzione ciò non può bastare ed abilitare l'autenticazione per gli utenti è doveroso.<br/>
Farlo comunque non è oneroso. Sarà sufficiente aggiungere nel file di configurazione /etc/mongodb.conf la seguente riga:
<pre>
auth=true
</pre>
A questo punto si dovrà abilitare degli utenti. Ciò che si deve specificare per ogni accesso è:
* nome utente e password;
* a quale database è consentito l'accesso;
* se l'accesso è in sola lettura o in lettura/scrittura (default).
Quindi si dovrà fare un log come amministratore e collocarsi sul database che per il quale si vuole configurare l'accesso, ad esempio 'persone':
<pre>
use persone
</pre>
dopodichè si creerà l'utente con tanto di username e password, ad esempio username="manager" e password="12345":
<pre>
db.addUser("manager","12345")
</pre>
L'accesso è stato così creato ed è in modalità lettura/scrittura. Per averlo read-only si sarebbe dovuto dare il comando:
<pre>
db.addUser("manager","12345",true)
</pre>
Per effettuare l'accesso tramite le credenziali utente ci si dovrà connettere tramite client:
<pre>
# mongo 192.168.1.10/persone
</pre>
Il comando specificato richiederà la connessione al server MongoDB con indirizzo 192.168.1.10 ed in particolare al database persone.<br/>
A questo punto si potrà richiedere l'utilizzo del database "loggandosi" con il comando db.auth:
<pre>
> db.auth("manager","12345")
</pre>
In output si vedrà apparire un solo numero:
* 1 = incaso di login effettuato con successo;
* 0 = in caso di errore.
Se non si effettuasse il login, ad ogni tentativo di lettura dei dati del database si riceverà un messaggio di errore di tipo:
<pre>
Error: uncaught exception: error: { "$err" : "unauthorized for db [persone] lock type: -1 " }
</pre>
{{Autori | Autore = [[Utente:Turinext|Turinext]]}}
[[Categoria:Database server]]
3 581

contributi

Menu di navigazione