Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 4 di 41
  • livello principiante
Indice lezioni

Modalità di connessione al server

Effettuare una connessione locale con SQL Plus o impostare una connessione di rete
Effettuare una connessione locale con SQL Plus o impostare una connessione di rete
Link copiato negli appunti

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.

Figura 1. Account bloccato
Account bloccato

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;
Figura 2. Screenshot dell'operazione
Screenshot dell'operazione

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).

Figura 3. Screenshot di show user
Screenshot di show user

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.

Figura 4. Aggiungere un listener
Aggiungere un listener

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).

Figura 5. Definire l'host
Definire l'host

Nel menu "File" scegliamo "Salva configurazione di rete" per salvare definitivamente il nostro listener.

Selezioniamo quindi "Denominazione dei servizi" e premiamo il pulsante "+" verde

Figura 6. Aggiungere un servizio di rete
Aggiungere un servizio di rete

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.

Figura 7. Impostare il nome del servizio
Impostare il nome del servizio

Andiamo avanti. Scegliamo "TCP/IP (protocollo Internet)" come protocollo di comunicazione.

Figura 8. Selezione del protocollo di rete
Selezione del protocollo di rete

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.

Figura 9. Inserire l'host del server
Inserire l'host del server

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".

Figura 10. Inserire il nome del database
Inserire il nome del database

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".

Figura 11. Test della connessione
Test della connessione

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.

Figura 12. Screenshot del test
Screenshot del test

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
Figura 13. Screenshot del test dal prompt dei comandi
Screenshot del test dal prompt dei comandi

Ti consigliamo anche