Salta el contingut
 

Configuració de connexions

Joan Puigcerver Ibáñez

Llicència: CC BY-NC-SA 4.0

(Reconeixement - NoComercial - CompartirIgual) 🅭

Configuració de les connexions a Oracle DB

Les connexions a Oracle DB es configuren amb uns fitxers de text que es troben tant en el servidor com en els clients. En el servidor, indiquen per on s'escolten les connexions; en el client, indiquen com arribar a cada servei de base de dades.

Configuració del servidor

En el servidor, la configuració de xarxa es reparteix entre tres fitxers:

  • listener.ora: conté el nom o l'adreça del servidor i el port d'escolta del listener.
  • sqlnet.ora: conté el mètode d'autenticació (SGBD, LDAP, Radius…) i els paràmetres de connexió xifrada.
  • tnsnames.ora: conté les definicions dels serveis en xarxa que permeten als clients connectar-se a la base de dades.

Aquests fitxers es troben al directori network/admin/ de ORACLE_HOME:

/opt/oracle/homes/OraDBHome21cXE/network/admin/

Gestió del listener (lsnrctl)

El listener és el servei que rep les connexions entrants i les redirigeix a la instància de base de dades corresponent. Si el listener no està actiu, cap client remot es pot connectar, encara que la base de dades estiga en funcionament.

El listener es controla amb l'ordre lsnrctl:

lsnrctl <status | start | stop>
  • status: mostra l'estat del listener i els serveis que té registrats (haurien d'estar en estat READY).
  • start: arranca el servei.
  • stop: para el servei, que deixa d'admetre connexions noves.

Documentació oficial: Listener Control Utility – Oracle DB

Configuració del client

En el client, el fitxer tnsnames.ora conté una entrada per cada servei, amb l'adreça IP del servidor, el port i el nom del servei (SERVICE_NAME). El nom de cada entrada és l'àlies que s'utilitzarà per connectar-se:

XE=
(DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
  (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = XE)
  )
)
XEPDB1=
(DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
  (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = XEPDB1)
  )
)

Client SQL Developer

Per connectar-se de manera gràfica a Oracle DB, es pot utilitzar l'extensió Oracle SQL Developer per a Visual Studio Code.

Una vegada instal·lada l'extensió, el procediment per crear una connexió és el següent:

  1. Crea una nova connexió des del panell de l'extensió (Figura 1).

    Creació d'una nova connexió

    Figura 1. Creació d'una nova connexió.

  2. Omple els paràmetres de la connexió (Figura 2).

    Configuració de la connexió

    Figura 2. Configuració de la connexió.

Hi ha dues maneres bàsiques de configurar la connexió: indicant directament els paràmetres o fent referència a una entrada del fitxer tnsnames.ora.

La manera més senzilla de configurar una connexió és amb els paràmetres bàsics:

Paràmetre Valor
Nom de la connexió BASIC_CONNECTION
Rol SYSDBA
Nom d'usuari sys
Contrasenya La configurada a la base de dades
Tipus de connexió Basic
Nom d'amfitrió (hostname) localhost
Port El configurat a la base de dades (per defecte, 1521)
Nom del servei XEPDB1

També es pot utilitzar la connexió amb TNS, a partir d'un fitxer tnsnames.ora creat a la carpeta d'usuari.

Si no apareix el fitxer tnsnames.ora, cal configurar la ruta al fitxer.

Paràmetre Valor
Nom de la connexió TNS_CONNECTION
Rol SYSDBA
Nom d'usuari sys
Contrasenya La configurada a la base de dades
Tipus de connexió TNS
Nom de la xarxa XEPDB1
Fitxer TNSNAMES La ruta al fitxer tnsnames.ora

Una vegada creada la connexió, es pot comprovar executant una consulta com la següent, que retorna informació de la sessió actual:

SELECT SYS_CONTEXT('USERENV', 'CURRENT_USER') AS current_user,
       SYS_CONTEXT('USERENV', 'SESSION_USER') AS session_user,
       SYS_CONTEXT('USERENV', 'DB_NAME') AS db_name,
       SYS_CONTEXT('USERENV', 'INSTANCE_NAME') AS instance_name,
       SYS_CONTEXT('USERENV', 'HOST') AS host,
       SYS_CONTEXT('USERENV', 'IP_ADDRESS') AS ip_address
FROM dual;
📌 Aquest document pot quedar desactualitzat després d’imprimir-lo. Pots consultar la versió més recent a la pàgina web.
🌿 Abans d’imprimir aquest document, considera si és realment necessari. Redueix el consum de paper i ajuda a protegir el nostre entorn.