Quando diamo vita ad un nuovo database, Oracle crea automaticamente due utenti amministrativi denominati SYS e SYSTEM. Nel corso della guida abbiamo creato due database con il Database Configuration Assistant ed al termine del processo guidato abbiamo scelto le password per i due utenti amministrativi (che non fossero di facile intuizione). In seguito abbiamo utilizzato raramente l'utente SYSTEM, se non per creare gli utenti dei database e per concedere loro i privilegi necessari per lo svolgimento di alcune attività. In effetti non è usuale accedere ad un DB Oracle da amministratore, specie se i dati sul server sono molto importanti.
Essere amministratori di database
Ogni database richiede almeno una persona preposta ad amministrarlo, chiamata Database Administrator (DBA). Il numero di DBA dipende quasi esclusivamente dalle dimensioni e dalla complessità del database: più questo è grande e/o complesso maggiori saranno le mansioni amministrative da svolgere, e maggiore sarà il numero di persone delegate allo svolgimento di questi delicati compiti.
È di fondamentale importanza che ciascun DBA conosca esattamente le attività svolte dagli altri DBA, pertanto è necessaria una stretta condivisione di informazioni. Alcuni compiti di un DBA sono:
- installare il software Oracle, ma procedere anche all'aggiornamento del sistema;
- allocare spazi di memorizzazione aggiuntivi tenendo conto delle sopraggiunte necessità degli utenti;
- creare gli oggetti logici necessari (tabelle, viste, indici, ecc.) non appena gli "application developers" hanno terminato una nuova applicazione;
- creare gli utenti e concedere loro i dovuti privilegi;
- garantire la sicurezza del database;
- garantire il rispetto delle norme sulle licenze Oracle;
- controllare e monitorare l'accesso degli utenti al database;
- monitorare e ottimizzare le performance del database;
- pianificare la strategia più idonea di backup e recovery per il database.
Gli amministratori che si collegano al loro database possono essere autenticati, cioè riconosciuti, in due modalità:
- mediante il sistema operativo;
- mediante password file.
Noi analizzeremo unicamente il primo metodo.
Connessione mediante autenticazione del sistema operativo
Per effettuare questo tipo di autenticazione è necessario esser membri del gruppo ORA_DBA
del sistema operativo. Questo gruppo viene creato automaticamente durante l'installazione di Oracle Server.
Nota:L'utente del sistema operativo che ha proceduto all'installazione di Oracle Server è stato automaticamente inserito nel gruppo ORA_DBA
.
Ipotizziamo di dover creare un nuovo utente locale (sul sistema operativo), a cui garantire l'accesso (in locale) al pc ove è installato Oracle Server. Desideriamo, inoltre, che questo diventi un nuovo DBA e che possa collegarsi al nostro database Oracle mediante autenticazione del sistema operativo. Procederemo in questo modo:
Creiamo un nuovo utente sul pc che ospita Oracle Server, naturalmente dobbiamo essere amministratori di sistema per farlo. Clicchiamo col tasto destro su "Risorse del computer", quindi scegliamo "Gestione". Spostiamoci su "Utenti e gruppi locali", quindi "Users". Dal menu "Azione" scegliamo la voce "Nuovo utente".
Inserimento nuovo utente
Inseriamo i dati, chiamiamo l'utente "RossiM" e gli assegnamo una password facendo molta attenzione alla riservatezza di questo dato che permette il controllo totale del database. Premiamo infine il pulsante "Crea".
Creazione dell'utente
Requisito obbligatorio per l'autenticazione da sistema operativo è impostare il parametro REMOTE_LOGIN_PASSWORDFILE=NONE
, presente nel file di inizializzazione al percorso C:oracle9adminARCHIVIOpfileinit.ora
.
Nota: È possibile modificare questo file di testo solo a database chiuso.
Disconnettiamo l'amministratore del sistema operativo effettuiamo il login con il nuovo utente "RossiM". Premiamo il pulsante "Start", quindi "Esegui" e digitiamo il comando cmd
. Appare una finestra in modalità DOS. Digitiamo i comandi:
C:>set oracle_sid=arch C:>sqlplus /nolog
e poi
SQL> connect / as sysdba
Oracle solleva l'errore ORA-01031: insufficient privileges
perché l'utente "RossiM" non fa parte del gruppo ORA_DBA
. La connessione è stata effettuata al database "ARCHIVIO", ma può essere fatta anche al database Seed impostando opportunamente la variabile di ambiente oracle_sid
.
Associamo allora l'utente "RossiM" al gruppo ORA_DBA
. Effettuiamo ancora il login da amministratori di sistema per il sistema operativo e spostiamoci su "Gruppi". Nel riquadro di destra individuiamo il gruppo ORA_DBA
.
Individuare il gruppo DB_ORA
Clicchiamo col tasto destro del mouse e scegliamo la voce "Aggiungi al gruppo". Nella nuova finestra premiamo il pulsante "Aggiungi" ed individuiamo l'utente "RossiM".
Aggiungere l'utente al gruppo
Nota: per i sistemi operativi Windows XP è necessario digitare il nome utente "RossiM" nello spazio in basso della nuova finestra, premere il pulsante "Controlla nomi", quindi premere il pulsante "OK".
Passiamo di nuovo da utente amministratore di sistema a "RossiM" e ripetiamo i comandi di prima nella finestra DOS
Stavolta il comando CONNECT / AS SYSDBA
ha esito positivo. L'utente "RossiM", DBA, ha effettuato la connessione al database mediante autenticazione del sistema operativo.
Concludiamo che se l'utente è un membro del gruppo ORA_DBA
e specifa la clausola AS SYSDBA
quando si connette al database allora gli viene automaticamente concesso il privilegio di sistema SYSDBA
. Se invece l'utente non è un membro del gruppo ORA_DBA
del sistema operativo allora il comando CONNECT / AS SYSDBA
fallisce.