[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico] [volume]


Capitolo 614.   nanoLinux: DBMS e problemi collegati

nanoLinux è organizzato per la gestione di alcuni DBMS: PostgreSQL, MySQL ed eventualmente SQLite. Dipende dal livello di nanoLinux la disponibilità di questo o di quel DBMS; ciò che conta è che nanorc sia in grado di fare la cosa giusta quando serve.

614.1   PostgreSQL

PostgreSQL è installato normalmente, secondo le convenzioni della distribuzione GNU/Linux Debian. È previsto inizialmente l'amministratore del DBMS, postgres, che deve poter accedere localmente senza parola d'ordine, sulla base del riconoscimento del sistema operativo, per consentire a nanorc di poter intervenire nel DBMS (quando è avviato con i privilegi dell'utente root).

Oltre all'amministratore del DBMS, è previsto inizialmente l'utente pgnanouser, associato alla base di dati nanodb, che può accedere senza la richiesta di alcuna forma di riconoscimento. Per questa ragione, allo scopo di facilitare l'utilizzo «casuale» di tale base di dati, durante il funzionamento da CD o da DVD, nel file /etc/profile vengono definite le variabili di ambiente PGUSER e PGDATABASE, rispettivamente con i valori pgnanouser e nanodb.

614.1.1   Gli accessi consentiti

Il file /etc/postgresql/*/main/pg_hba.conf (ovvero ~postgres/*/main/pg_hba.conf) è configurato nel modo seguente:

# TYPE  DATABASE    USER        IP-ADDRESS       IP-MASK          METHOD
#
local   all         postgres                                      ident sameuser
#
local   nanodb      all                                           trust
host    nanodb      all         127.0.0.1        255.0.0.0        trust 
host    nanodb      all         192.168.0.0      255.255.0.0      trust
host    nanodb      all         172.16.0.0       255.240.0.0      trust
host    nanodb      all         10.0.0.0         255.0.0.0        trust
#
local   all         all                                           password
host    all         all         127.0.0.1        255.0.0.0        md5
host    all         all         192.168.0.0      255.255.0.0      md5
host    all         all         172.16.0.0       255.240.0.0      md5
host    all         all         10.0.0.0         255.0.0.0        md5
#
host    all         all         0.0.0.0          0.0.0.0          reject 

In pratica, l'utente postgres (ovvero l'amministratore), può accedere dall'elaboratore locale, identificato in base alla stessa utenza del sistema operativo. Poi, dal momento che non possiede una parola d'ordine, non ci sono altre possibilità per il suo accesso al DBMS.

La base di dati nanodb, può essere raggiunta da chiunque, da qualunque elaboratore, purché si trovi almeno ad avere un indirizzo IPv4 privato. Per questi accessi non viene richiesta alcuna forma di identificazione.

Per ogni altra situazione, purché si tratti di accessi locali o remoti, ma nell'ambito di una rete locale (in base al tipo di indirizzo), è concesso l'accesso a condizione di fornire una parola d'ordine per l'identificazione dell'utenza; infine i tentativi di accesso da altre posizioni vengono respinti.

614.2   MySQL

nanoLinux IV include anche MySQL, che inizialmente dispone: dell'utente amministratore standard (root), che può accedere solo localmente, dell'utente debian-sys-maint (conformemente all'organizzazione della distribuzione GNU/Linux Debian) e dell'utente mynanouser, associato alla base di dati nanodb (che comunque è diversa da quella di PostgreSQL) senza limiti di accesso e senza parola d'ordine.

Lo script nanorc dipende dalla presenza dell'utente speciale (con gli stessi poteri dell'amministratore standard) denominato debian-sys-maint, per poter compiere le sue funzioni nei confronti del DBMS.

L'utente root (del DBMS) ha inizialmente una parola d'ordine casuale, pertanto, con l'aiuto di nanorc, è possibile poi attribuirgliene una diversa. Tuttavia, se si rimane nell'ambito della gestione prevista con nanorc, non è necessario utilizzare tale utenza direttamente.

614.3   La gestione delle utenze

È possibile integrare le utenze del sistema operativo (utenze Unix) con quelle di PostgreSQL e MySQL, facendo una piccola semplificazione: quando viene creato un utente con il comando nanorc user add, si crea anche un utente per PostgreSQL e MySQL con lo stesso nome e la stessa parola d'ordine, associando questo utente a una base di dati, sempre con lo stesso nome dell'utente. Così, i comandi nanorc user del e nanorc user passwd, intervengono anche nell'ambito di PostgreSQL e di MySQL. Ciò consente a ogni utente reale di gestire una propria base di dati, senza troppe complicazioni, sia con un DBMS, sia con l'altro.

Il meccanismo di integrazione dei vari tipi di utenza, non può essere sempre perfetto; per esempio, se si installa uno dei due DBMS dopo che sono stati aggiunti degli utenti per il sistema operativo, questi non sono presenti nel DBMS. Pertanto, si aggiungono dei comandi ulteriori per intervenire solo nell'ambito di PostgreSQL o di MySQL, pur mantenendo la semplificazione che comporta la gestione di basi di dati con lo stesso nome degli utenti rispettivi.

Tabella 614.2. Utilizzo di nanorc per la gestione delle utenze dei DBMS principali>.

Comando Descrizione
nanorc postgresql add [nome [parola_d'ordine]]
Consente di aggiungere un utente e una base di dati con lo stesso nome, per PostgreSQL.
nanorc postgresql del [nome]
Consente di eliminare un utente e una base di dati con lo stesso nome, per PostgreSQL.
nanorc postgresql passwd [nome]
Consente di cambiare la parola d'ordine di un utente di PostgreSQL.
nanorc mysql add [nome [parola_d'ordine]]
Consente di aggiungere un utente e una base di dati con lo stesso nome, per MySQL.
nanorc mysql del [nome]
Consente di eliminare un utente e una base di dati con lo stesso nome, per MySQL.
nanorc mysql passwd [nome]
Consente di cambiare la parola d'ordine di un utente di MySQL.

Come si può intuire dalla tabella, se nella riga di comando vengono aggiunte anche le informazioni opzionali, si evita che nanorc le chieda in modo interattivo.

614.4   Archiviazione e ripristino delle basi di dati

Per facilitare l'archiviazione e il recupero dei dati contenuti nelle basi di dati, nanorc include delle funzioni appropriate. Ciò che si ottiene dall'operazione di archiviazione è un file di testo, contenente codice SQL, che può essere usato per il ripristino.

Tabella 614.3. Utilizzo di nanorc per l'archiviazione e il ripristino delle basi di dati.

Comando Descrizione
nanorc postgresql backup [nodo [db [utente [file_sql]]]]
nanorc postgresql restore [nodo [db [utente [file_sql]]]]
Consente di salvare o di recuperare i dati di una base di dati di PostgreSQL.
nanorc mysql backup [nodo [db [utente [file_sql]]]]
nanorc mysql restore [nodo [db [utente [file_sql]]]]
Consente di salvare o di recuperare i dati di una base di dati di MySQL.

614.5   Inizializzazione dei DBMS

Lo script nanorc include una funzione per ripristinare la struttura di dati iniziali, senza alcuna base di dati (tranne quelle amministrative necessarie):

nanorc postgresql init
nanorc mysql init

È importante rendersi conto che l'utilizzo di questi comandi elimina completamente i dati contenuti eventualmente nelle base di dati preesistenti, così come elimina tutti gli utenti dei DBMS, lasciando soltanto gli amministratori.

614.6   Utilizzo in sola lettura

Quando nanoLinux è avviato da CD, DVD o da altro disco in sola lettura, i servizi DBMS non vengono avviati e i dati iniziali non sono presenti. Per poter utilizzare PostgreSQL o MySQL, anche se solo per fare delle prove, dato che le basi di dati verrebbero perdute allo spegnimento dell'elaboratore, occorre usare un comando apposito di nanorc, che in pratica inizializza la struttura che deve ospitare le basi di dati:

nanorc postgresql start
nanorc mysql start

Eventualmente, se prima dello spegnimento dell'elaboratore i dati non servono più e si vuole recuperare un po' di memoria, si possono usare altri comandi che terminano il funzionamento del servizio e ne eliminano i dati:

nanorc postgresql stop
nanorc mysql stop

614.7   SQLite

nanoLinux prevede anche la presenza di SQLite, che in pratica è una libreria che permette ai programmi che la utilizzano di gestire dei file singoli come delle basi di dati, fornendo loro un accesso conforme allo standard SQL.

Oltre alla libreria è disponibile il programma sqlite3, che permette di operare, attraverso un terminale a caratteri, con questo tipo di basi di dati:

sqlite3 file_db

Dal momento che SQLite non ha una gestione delle utenze, in quanto gli accessi si confrontano soltanto con i privilegi assegnati dal sistema operativo; dato inoltre il fatto che le basi di dati vengono create al volo, se non esistono già, nanorc non include funzioni particolari per SQLite.

Eventualmente, nel menù di Fvwm, appaiono degli esempi per l'archiviazione e il recupero dei dati.

614.8   ODBC

nanoLinux IV dispone anche di unixODBC, che consente ai programmi di comunicare con i DBMS attraverso lo standard di ODBC. La configurazione iniziale prevede due DSN (Data source name), che fanno riferimento alle basi di dati di prova di PostgreSQL e di MySQL: si tratta rispettivamente di pg-nanodb e my-nanodb.

Alla creazione di un utente, viene aggiunto un file ~/.odbc.ini personalizzato, nel quale vengono dichiarati altri DSN, per accedere alle proprie basi di dati. Si tratta dei nomi seguenti:

local-pg-utente
local-my-utente
remote-pg-utente
remote-my-utente

Si intuisce che si tratti di DSN riferiti alle proprie basi di dati, generate automaticamente da nanoLinux, distinguendo tra quelle locali e quelle che potrebbero essere collocate presso un elaboratore che centralizza la gestione delle utenze. All'atto della creazione degli utenti, se esiste l'informazione sul router interno alla rete locale, il suo indirizzo viene usato per l'accesso alle basi di dati remote.

Appunti di informatica libera 2006.07.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome nanolinux_dbms_e_problemi_collegati.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico]

Valid ISO-HTML!

CSS validator!