Creazione di utenti

Oracle Server è un database relazionale multi-utenza, cioè consente la connessione simultanea di più utenti ad un medesimo DB.

È buona norma e compito del DBA creare e amministrare gli utenti di ciascun database, decidere quali azioni possono compiere sulle tabelle concedendo loro gli appositi privilegi, questo perché non tutti abbiano la possibilità modificare le tabelle presenti in qualsiasi schema o di poter effettuare qualsiasi modifica sul database.

CREATE USER

Questo comando consente di creare un utente all’interno di un database. Solitamente è l’utente SYSTEM a svolgere questo importante compito ma, in realtà, anche altri utenti possono creare account utente, purché in possesso dei giusti privilegi.

Nel corso delle precedenti lezioni abbiamo visto come effettuare una connessione ad un database Oracle. Abbiamo effettuato il login al database fornendo sempre una username e una password. Era poi compito di Oracle verificare l’esattezza della coppia di dati forniti dall’utente ed, eventualmente, consentire l’accesso al database.

Oracle permette la gestione di tre differenti metodi di autenticazione utenti:

  • autenticazione da database,
  • autenticazione esterna
  • autenticazione globale.

Analizzeremo solamente l’autenticazione del primo tipo.

Autenticazione da database

Fondamentalmente consiste nella ricerca, da parte di Oracle, dell’utente e password forniti durante la fase di login all’interno di un’apposita tabella del dizionario dei dati e ne verifica la corrispondenza dei dati.

Sintassi semplificata di CREATE USER

CREATE USER <nome utente> IDENTIFIED BY <password>;

In realtà lo statement CREATE USER ha al seguito numerosi attributi opzionali che possiamo anche impostare per meglio definire le caratteristiche dell’utente da creare. Gli stessi attributi possono anche essere definiti o modificati successivamente mediante lo statement ALTER USER.

Modifica della password per l’utente connesso

Abbiamo già visto come modificare la password del proprio utente, connesso mediante SQL* Plus, utilizzando il comando PASSWORD, possiamo ottenere lo stesso risultato anche con:

Sintassi di ALTER USER

ALTER USER <nome utente> IDENTIFIED BY <nuova password>;

Connettiamoci al database “ARCHIVIO” come utente myself e proviamo a modificare la password.

SQL> ALTER USER myself IDENTIFIED BY hr5h28;

Tablespace di Default

Ciascun utente, se in possesso dell’apposito permesso, può creare oggetti all’interno del proprio database, più precisamente all’interno di un tablespace. Questo viene indicato come tablespace di default. Durante la creazione dell’utente, o in fase di modifica (ALTER USER), possiamo anche specificare il default tablespace usando la clausola DEFAULT TABLESPACE.

Se la clausola viene omessa, Oracle imposta il tablespace SYSTEM come tablespace di default. Questo deve assolutamente essere evitato perché il tablespace SYSTEM è di proprietà dell’utente amministrativo “SYS” e in questo è memorizzato il dizionario dei dati di Oracle. Nessun altro oggetto diverso dal dizionario dei dati dovrebbe essere memorizzato nel tablespace SYSTEM.

Proviamo a creare un nuovo utente e ad assegnargli un tablespace di default differente da SYSTEM. Colleghiamoci al database “ARCHIVIO” mediante SQL* Plus come utente amministrativo SYSTEM.

Creazione di un nuovo utente e assegnazione del tablespace di default (users)

SQL> CREATE USER rossi IDENTIFIED BY luigi DEFAULT TABLESPACE users;

Creazione utente omettendo l’assengazione del tablespace. Oracle assegna il SYSTEM

SQL> CREATE USER nikko IDENTIFIED BY japan;

Modifichiamo quindi le impostazioni dell’utente “nikko” assegnandogli il corretto tablespace di default (users).

SQL> ALTER USER nikko DEFAULT TABLESPACE users;

Temporary Tablespace

Quello temporaneo è invece il tablespace in cui Oracle posiziona i segmenti temporanei prodotti durante le grandi operazioni di ordinamento (ORDER BY).

Quando viene prodotto un ordinamento dei dati solitamente Oracle cerca di effettuarlo in un’apposita area di memoria dell’istanza al fine di rendere l’operazione molto più veloce. Se quest’area di memoria è troppo piccola per contenere l’operazione di ordinamento in corso allora Oracle suddivide l’ordinamento in piccole sezioni e le alloca nel tablespace temporaneo.

Anche gli statement SELECT DISTINCT sottopongono i dati delle tabelle interessate ad un ordinamento, se non è possibile in memoria, sicuramente nel tablespace temporaneo.

Oracle crea sempre un tablespace temporaneo, denominato “temp”, durante la creazione di un database. Come accade per il tablespace di default anche per quello temporaneo, se non specificato durante la creazione di un utente, viene assegnato automaticamente il tablespace SYSTEM.

Creazione di un nuovo utente e assegnazione del tablespace di default (users) e temporaneo (temp)

SQL> CREATE USER sampras IDENTIFIED BY pete
  2  DEFAULT TABLESPACE users
  3  TEMPORARY TABLESPACE temp;

Nel prossimo esempio creeremo inizialmente un utente a cui assegneremo il tablespace di default e, successivamente, quello temporaneo.

Assegnazione posticipata del tablespace temporaneo

SQL> CREATE USER fossi IDENTIFIED BY frgt43
  2  DEFAULT TABLESPACE users;

SQL> ALTER USER fossi TEMPORARY TABLESPACE temp;
Both comments and pings are currently closed.

Comments are closed.