Oracle 18C express Edition. Como conectarse a la PDB xepdb1 y desbloquear usuario HR

1. Se abre una consola de comandos Windows
2. Se ejecuta :

C:\Users\fmanriquezo> sqlplus / as sysdba
Con esto se entra a la consola con el usuario SYS que es el superadmin de la base de datos
sysdba es el rol de administracion de la base de datos
3.- El comando SHOW CON_NAME muestra el contenedor al cual estoy conectado
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT

Esto significa que esty conectado al contendedor raiz
4.- Selecciono las Plugable Database disponibles en esta plataforma
SQL> SELECT con_id, name from v$pdbs;

    CON_ID
----------
NAME
--------------------------------------------------------------------------------
         2
PDB$SEED

         3
XEPDB1
La salida no es muy elegante, por lo cual formateo las columna «name» para que sea más corta y repito
SQL> column name format a20
SQL> SELECT con_id, name from v$pdbs;

    CON_ID NAME
---------- --------------------
         2 PDB$SEED
         3 XEPDB1
Nuestra base de datos XEPDB1 se encuentra en el container 3. El container 2 contiene la PDB PDB$SEED que viene de fábrica y es la semilla para la creación de nuevas PDBs
PDB: Pluggable Database (Base de datos enchufable y desenchufable, concepto nuevo que aparece en Oracle 12C)
La base de datos tiene cientos de vistas dinámicas del estilo v$XXXXX, que muestra información del estado de las componentes de la base de datos. En este curso veremos varias de ellas.
4,.- Nombre del servicio de nuestra base de datos
SQL> SELECT name as "Service name" FROM v$active_services where con_id=3;

Service name
----------------------------------------------------------------
xepdb1

5.- Los archivos de configuracion de red de Oracle se encuentran DB_HOME, en mi caso  DB_HOME= D:\app\fmanriquezo\product\18.0.0\dbhomeXE
Las configuraciones de red se encuentran en DB_HOME\network\admin\
Hay dos archivos importantes
TNSNAMES.ORACLE, que guarda los alias de TNS,
LISTENER.ORA configuracion del LISTENER
*******TNSNAMES:ORA****************
# tnsnames.ora Network Configuration File: D:\app\fmanriquezo\product\18.0.0\dbhomeXE\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

XEPDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XEPDB1)
    )
  )

LISTENER_XE =
  (ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )
***********LISTENER.ORA****************************
# listener.ora Network Configuration File: D:\app\fmanriquezo\product\18.0.0\dbhomeXE\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

DEFAULT_SERVICE_LISTENER = XE

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\app\fmanriquezo\product\18.0.0\dbhomeXE)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\app\fmanriquezo\product\18.0.0\dbhomeXE\bin\oraclr18.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

6.- Si el servicio de Windows de TNS-Listener está abajo, hay que subirlo
7.- Si el servicio estaba arriba, se puede hacer un reload de los archivos de TNS
En una ventana de comando
lsnrcrt reload
8.- Se verifica que los servicios de la base de datos estén correctamente registrados en el listener
C:\Users\fmanriquezo> lsnrcrl status
LSNRCTL for 64-bit Windows: Version 18.0.0.0.0 - Production on 13-AGO-2019 11:19:14

Copyright (c) 1991, 2018, Oracle. All rights reserved.

Conectßndose a (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=NTB-FMANRIQUEZ.neuronet.cl)(PORT=1521)))
ESTADO del LISTENER
------------------------
Alias LISTENER
Versi¾n TNSLSNR for 64-bit Windows: Version 18.0.0.0.0 - Production
Fecha de Inicio 12-AGO-2019 12:06:14
Tiempo Actividad 0 dÝas 23 hr. 13 min. 6 seg.
Nivel de Rastreo off
Seguridad ON: Local OS Authentication
SNMP OFF
Servicio por Defecto XE
Parßmetros del Listener D:\app\fmanriquezo\product\18.0.0\dbhomeXE\network\admin\listener.ora
Log del Listener D:\app\fmanriquezo\product\18.0.0\diag\tnslsnr\NTB-FMANRIQUEZ\listener\alert\log.xml
Recibiendo Resumen de Puntos Finales...
 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=NTB-FMANRIQUEZ.neuronet.cl)(PORT=1521)))
 (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=127.0.0.1)(PORT=5500))(Security=(my_wallet_directory=D:\APP\FMANRIQUEZO\PRODUCT\18.0.0\admin\XE\xdb_wallet))(Presentation=HTTP)(Session=RAW))
Resumen de Servicios...
El servicio "CLRExtProc" tiene 1 instancia(s).
 La instancia "CLRExtProc", con estado UNKNOWN, tiene 1 manejador(es) para este servicio...
El servicio "XE" tiene 1 instancia(s).
 La instancia "xe", con estado READY, tiene 1 manejador(es) para este servicio...
El servicio "XEXDB" tiene 1 instancia(s).
 La instancia "xe", con estado READY, tiene 1 manejador(es) para este servicio...
El servicio "df7555b53690479bb2b206c906bcabfb" tiene 1 instancia(s).
 La instancia "xe", con estado READY, tiene 1 manejador(es) para este servicio...
El servicio "xepdb1" tiene 1 instancia(s).
 La instancia "xe", con estado READY, tiene 1 manejador(es) para este servicio...
El comando ha terminado correctamente
9.- En la ventana de administracion de base de datos del paso 4, ejecutamos lo siguiente
SQL> ALTER SESSION SET CONTAINER=XEPDB1;
sesion modificada
10.- Consultamos los usuarios de la PDB xepdb1. para eso usamos la vista de sistema llamada DBA_USERS
SQL> column username format a25;
SQL> select username, account_status from dba_users;

USERNAME                  ACCOUNT_STATUS
------------------------- --------------------------------
SYS                       OPEN
SYSTEM                    OPEN
XS$NULL                   EXPIRED & LOCKED
LBACSYS                   LOCKED
OUTLN                     EXPIRED & LOCKED
DBSNMP                    EXPIRED & LOCKED
APPQOSSYS                 EXPIRED & LOCKED
DBSFWUSER                 EXPIRED & LOCKED
GGSYS                     EXPIRED & LOCKED
ANONYMOUS                 EXPIRED & LOCKED
HR                        EXPIRED & LOCKED

USERNAME                  ACCOUNT_STATUS
------------------------- --------------------------------
CTXSYS                    EXPIRED & LOCKED
DVSYS                     LOCKED
SI_INFORMTN_SCHEMA        EXPIRED & LOCKED
DVF                       LOCKED
GSMADMIN_INTERNAL         EXPIRED & LOCKED
ORDPLUGINS                EXPIRED & LOCKED
MDSYS                     EXPIRED & LOCKED
OLAPSYS                   EXPIRED & LOCKED
ORDDATA                   EXPIRED & LOCKED
XDB                       EXPIRED & LOCKED
WMSYS                     EXPIRED & LOCKED

USERNAME                  ACCOUNT_STATUS
------------------------- --------------------------------
ORDSYS                    EXPIRED & LOCKED
GSMCATUSER                EXPIRED & LOCKED
MDDATA                    EXPIRED & LOCKED
SYSBACKUP                 EXPIRED & LOCKED
REMOTE_SCHEDULER_AGENT    EXPIRED & LOCKED
PDBADMIN                  OPEN
GSMUSER                   EXPIRED & LOCKED
SYSRAC                    EXPIRED & LOCKED
OJVMSYS                   LOCKED
AUDSYS                    LOCKED
DIP                       EXPIRED & LOCKED

USERNAME                  ACCOUNT_STATUS
------------------------- --------------------------------
SYSKM                     EXPIRED & LOCKED
ORACLE_OCM                EXPIRED & LOCKED
SYS$UMF                   EXPIRED & LOCKED
SYSDG                     EXPIRED & LOCKED

37 filas seleccionadas.
11.- Desbloqueamos el usuario HR y le cambiamos la password por «hr»
SQL> alter user hr identified by "hr" account unlock;

Usuario modificado.
12.- Ya estamos en condiciones de conectarnos al usuario HR de la base de datos pluggable xepdb1
12.- Ya estamos en condiciones de conectarnos al usuario HR de la base de datos pluggable xepdb1
En otra ventana nos conectamos a sqlplus de la siguiente manera
sqlplus usuario/passwd@//localhost:1521/xepbd1
en este caso, seria
C:\Users\fmanriquezo> sqlplus hr/hr@//localhost:1521/xepdb1

SQL*Plus: Release 18.0.0.0.0 - Production on Mar Ago 13 12:03:30 2019
Version 18.4.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.


Conectado a:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
SQL> column tname format a26
SQL> select * from tab;

TNAME                      TABTYPE        CLUSTERID
-------------------------- ------------- ----------
REGIONS                    TABLE
COUNTRIES                  TABLE
LOCATIONS                  TABLE
DEPARTMENTS                TABLE
JOBS                       TABLE
EMPLOYEES                  TABLE
JOB_HISTORY                TABLE
EMP_DETAILS_VIEW           VIEW

8 filas seleccionadas.
Una segunda forma más fácil de conectarse es fijarse en la entrada del archivo TNSNAME.ORA que creamos
XEPDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = xepdb1)
    )
  )
Y se ejecuta en consola de comando sencillamente

C:\Users\fmanriquezo>sqlplus hr/hr@xepdb1

SQL*Plus: Release 18.0.0.0.0 - Production on Mar Ago 13 12:41:49 2019
Version 18.4.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.

Hora de ultima Conexi¾n Correcta: Mar Ago 13 2019 12:03:30 -04:00

Conectado a:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

SQL> SHOW USER
USER es «HR»