Il database di prova, denominato Seed, creato nella lezione precedente, costituirà il punto di riferimento all'interno di questa guida. Procediamo stabilendo una connessione a questo DB.
Esistono due modalità di connessione: locale o tramite un servizio di rete.
Connessione locale
Può essere utilizzata esclusivamente operando sul computer dove è installato il server Oracle. L'unica impostazione di cui tener conto è quella della variabile d'ambiente oracle_sid
, che punta ad un'istanza presente sul nostro server Oracle.
In Windows andiamo su Start>Esegui e digitiamo "cmd" per aprire una console a riga di comando.
Durante l'installazione abbiamo impostato la variabile SID con la stringa "sidtest". Impostiamo la variabile d'ambiente oracle_sid
affinché punti all'istanza che abbiamo creato. È superfluo dire che se abbiamo scelto un altro valore come SID (non "sidtest"), durante la creazione del database allora è a quella stringa che dobbiamo fare riferimento.
Impostazione di oracle_sid
C:>set oracle_sid=sidtest
Con questa istruzione imponiamo ad Oracle di puntare all'istanza del database Seed identificata dal valore "sidtest". Può forse risultare un po' ostico comprendere questi concetti ma con la pratica tutto risulterà più chiaro.
SQL* Plus
Il modo più semplice per operare sui DB è la console SQL* Plus: un programma che ci permette di interagire direttamente con il DBMS Oracle.
Quando un utente possiede degli oggetti (tabelle, indici, ecc.), ovvero ne è il proprietario, questi ha potere assoluto su di essi. Nessun altro utente del DB può vederli o gestirli (tranne gli utenti amministrativi), a meno che non sia proprio il proprietario degli oggetti a concedere ad altri utenti il permesso di vederli o operare su di essi.
Durante la creazione del database Seed abbiamo detto che il proprietario delle tabelle d'esempio sarà l'account HR, pertanto vogliamo usare proprio HR per la connessione.
Abbiamo altresì visto come HR risulta essere un account bloccato, pertanto se ci connettessimo "come HR" Oracle ci restituirebbe un messaggio di errore. Facciamo una prova. Digitiamo:
C:>sqlplus
Si apre una nuova finestra DOS.
Abbiamo la necessità di collegarci al database come utente SYSTEM (amministratore del sistema) per sbloccare l'account HR, la password per SYSTEM l'abbiamo definita al termine del processo di creazione del database Seed.
Una volta connessi inseriamo una istruzione di ALTER USER
, speficichiamo l'utente, la password e l'azione che vogliamo ottenere, in questo caso un UNLOCK
dell'account.
Sbloccare l'utente HR
ALTER USER HR IDENTIFIED BY HRPASSWORD ACCOUNT UNLOCK;
Proviamo ancora una volta a collegarci come utente HR e a verificare l'identità dell'utente connesso al database Seed con l'istruzione show user
(non ha importanza se nome utente e password sono in minuscolo o maiuscolo).
Connessione con servizio di rete
Questa è la modalità di connessione che permetta ad un client di interagire con un server Oracle e per comprenderla a fondo introduciamo due nuovi concetti, il listener e il servizio di rete.
Il listener è un processo in esecuzione sul server Oracle che costantemente aspetta (o "ascolta") le richieste di connessione da parte dei client.
Quando un client richiede la connessione ad un server Oracle, è il listener, dopo aver provveduto all'identificazione dell'utente con relativa password, a far partire un nuovo processo server (connessione a server dedicato o condiviso), che avrà il compito di soddisfare tutte le richieste del client.
Il servizio di rete, invece, guiderà il client alla ricerca di un listener. Per semplificare possiamo dire che il client Oracle utilizza un servizio di rete per trovare il listener che è localizzato su un server Oracle. A sua volta, il listener dopo aver identificato l'utente gli affida un processo server per accedere ai dati del database.
Facciamo un esempio usando la stessa macchina sia come server, sia come client, considerando di disporre di un solo pc e procediamo con la creazione di un listener e di un servizio di rete.
Andiamo su Start>Programmi>Oracle_HOME>Configuration and Migration tools>Net Manager. Net Manager è l'applicazione che ci consentirà di configurare i due moduli appena descritti per la connettività, il listener e il servizio di rete.
In Net Manager selezioniamo "Listener", e aggiungiamone uno premendo il pulsante "+" in verde. Inseriamo la stringa "LISTENER" e premiamo "OK". Il listener sarà aggiunto al nostro server Oracle.
Cliccando su "Aggiungi indirizzo", definiamo il nome dell'host e la porta su cui il listener rimarrà in ascolto per le future richieste di connessione da parte dei client.
Il nome dell'host sarà il nome del nostro pc (che ospita il server Oracle) oppure l'IP 127.0.0.1 (localhost).
Nel menu "File" scegliamo "Salva configurazione di rete" per salvare definitivamente il nostro listener.
Selezioniamo quindi "Denominazione dei servizi" e premiamo il pulsante "+" verde
Dobbiamo scegliere ed inserire il nome del servizio di rete che utilizzeremo per le connessioni al database Seed. Possiamo inserire per esempio "test-servizio" o qualsiasi altra stringa.
Andiamo avanti. Scegliamo "TCP/IP (protocollo Internet)" come protocollo di comunicazione.
Procediamo. Nella nuova finestra dobbiamo inserire i parametri scelti durante la creazione del listener. Ripetiamo quindi il nome dell'host e il numero di porta su cui è in ascolto il listener.
Andiamo avanti. Il nostro servizio di rete, cioè test-servizio, dovrà connettersi al database Seed, pertanto definiamo il nome del nostro DB nel campo "Nome di servizio".
Nel procedere è utile verificare l'esattezza dei parametri che abbiamo inserito per il servizio di rete effettuando una prova.
Se premiamo il pulsante "Test" Oracle effettuerà una connessione al database Seed servendosi sempre dell'utente Scott, ma come possiamo vedere la prova non va a buon fine. Premiamo il pulsante "Modifica" e nella finestra apparsa inseriamo le credenziali per l'utente HR (HR e HRPASSWORD), così come abbiamo fatto per la connessione locale.
Premiamo "OK" e successivamente il pulsante "Test". La connessione ha esito positivo. Premiamo il tasto "Chiudi" e poi "Fine".
Concludiamo salvando la configurazione di rete tramite il menu "File". Procediamo provando SQL* Plus in modalità grafica, sicuramente molto più comoda della modalità testo utilizzata nella precedente connessione locale. Da Start>Programmi>ORA_HOME>Application Development scegliamo "SQL Plus".
Appare la finestra di login in cui dobbiamo inserire le già utilizzate credenziali di accesso. Inseriamo "HR" come utente, la sua password e "test-servizio" come "stringa con host". Non ci rimane che premere il tasto "OK". E verificare l'identità dell'utente connesso a Seed con la solita istruzione show user
.
Facciamo ancora una prova. Aprimo di nuovo il prompt dei comandi (Start>Esegui e cmd)e Possiamo anche collegarci dalla finestra DOS utilizzando il servizio di rete che abbiamo creato. La sintassi da utilizzare è la seguente:
SQLPLUS <nome_utente>/<password_utente>@<nome_servizio_rete>
Nel nostro caso diventa:
C:>sqlplus hr/hrpassword@test-servizio