[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico] [volume] [parte]
Per usare SQL-Ledger in un laboratorio didattico, dovendo seguire simultaneamente un certo numero di studenti, è necessario predisporre degli accorgimenti per evitare di perdere tempo. Questo capitolo ha lo scopo di annotare alcune cose che possono essere utili in tal senso.
La directory users/
(capitolo 544) contiene dei file con le informazioni degli utenti. In pratica, SQL-Ledger non utilizza una base di dati per queste informazioni, ma dei file di testo normali.
Osservando i file di questa directory si intende che il file members
contiene una serie di sezioni, una per ogni utente, contenenti le informazioni che riguardano ognuno di questi. Il file potrebbe apparire così:
|
Si intuisce che per creare un altro utente, è sufficiente copiare la sezione di un utente preesistente, modificando ciò che serve. In questo caso, si potrebbe aggiungere l'utente tizio:
|
Nell'esempio, appaiono in evidenza le direttive dbconnect, dbname e templates, che potrebbero richiedere una modifica. È evidente che per associare il nuovo utente a un insieme di dati differente, occorre modificare le direttiva dbconnect e dbname; inoltre, se si desidera consentire la modifica dei modelli usati per la produzione di documenti, occorre predisporre un'altra directory alternativa a templates/pippo/
.
Oltre al file members
, è necessario prestare attenzione anche ai file con estensione .conf
, che contengono le informazioni di ogni singolo utente; per esempio, l'utente tizio di SQL-Ledger deve disporre del file tizio.conf
in questa directory. Il contenuto è analogo alla sezione di ogni utente nel file members
; segue l'esempio dell'utente pippo:
|
Di conseguenza, per creare l'utente tizio si copia il file pippo.conf
nel file tizio.conf
e si modificano le direttive importanti, per esempio quelle già viste a proposito del file members
:
|
Per semplificare le cose, conviene predisporre un utente «standard», denominato in modo diverso dagli altri, partendo da un'utenza configurata solo in modo superficiale. Si potrebbe chiamare questa utenza precisamente UTENZA_STANDARD:
si comincia creando una directory per i modelli, precisamente la directory templates/UTENZA_STANDARD/
, copiando al suo interno i file dell'altra utenza di riferimento, mantenendo gli stessi permessi (i file e la directory stessa devono appartenere all'utente del sistema operativo usato per far funzionare il servente HTTP);
si predispone un file users/UTENZA_STANDARD.conf
appropriato, dove sia il nominativo dell'utente, sia il nome della base di dati sono UTENZA_STANDARD, con gli stessi permessi degli altri file .conf
;
si predispone un file aggiuntivo, denominato users/members.UTENZA_STANDARD
, contenente soltanto una sezione come quelle del file users/members
, in modo da poter aggiungere facilmente un utente nel file users/members
, partendo dal modello del file users/members.UTENZA_STANDARD
.
Per creare rapidamente una serie di utenze, diventa sufficiente predisporre uno script simile a quello seguente, il quale parte dal presupposto che ogni insieme di dati viene associato esattamente a un'utente con lo stesso nome:
|
Come si vede, lo script manca di qualunque tipo di protezione dagli errori, ma dovrebbe rendere l'idea di ciò che si vuole fare. Naturalmente, lo script deve essere eseguito con i privilegi dell'utente root, o almeno con quelli dell'utente fittizio usato dal servente HTTP.
La creazione degli insiemi di dati va fatta prima delle utenze, ma qui si preferisce annotare dopo, perché si tratta di un'operazione un po' più delicata.
Inizialmente si parte da un insieme di dati di prova, che si ritiene adatto come punto di partenza per le esercitazioni. Questo insieme di dati fa capo a una base di dati di PostgreSQL con lo stesso nome. Si fa una copia di sicurezza di questa base di dati con l'ausilio del programma pg_dump:
#
su postgres pg_dump prova > prova.sql
[Invio]
Il comando mostrato inizia con su, per sottolineare la necessità di passare ai privilegi dell'utente standard di PostgreSQL. Come si intende, si genera il file prova.sql
.
#
su postgres createdb nuovo
[Invio]
Si crea così una nuova base di dati, collocandovi poi all'interno i dati salvati nel file prova.sql
:
#
psql nuovo sql-ledger < prova.sql
[Invio]
Come si vede, si utilizza il programma psql per popolare la base di dati denominata nuovo, utilizzando l'identità sql-ledger, che dovrebbe essere quella standard usata per SQL-Ledger. Se la base di dati (ovvero il nuovo insieme di dati) è già associato a un utente, si può verificare di avere ottenuto la riproduzione dei dati.
Lo script già presentato a proposito degli utenti, potrebbe essere completato nel modo seguente, se si parte dal presupposto che il file contenente i dati standard sia sql/UTENZA_STANDARD.sql
:
|
Naturalmente, perché tutto funzioni in modo semplice, è necessario che gli accessi relativi a PostgreSQL non richiedano l'inserimento di parole d'ordine, limitando semplicemente la possibilità di accesso all'elaboratore presso cui queste operazioni sono così semplici.
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 sql_ledger_per_la_didattica.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico]