Ir al contenido principal

Crear esquemas(USUARIOS) de bases de datos en Oracle 18c XE

En artículos anteriores se hizo referencia a esquemas como SYSTEM, SYS, PDBADMIN y HR, estos esquemas están asociados a usuarios del mismo nombre en cualquier versión o edición de Oracle, sin embargo, la introducción de la característica  Multitenant(Oracle 12c y superiores),  ha establecido un nuevo tipo de usuarios llamados usuarios comunes, es decir, usuarios que se crean en una base de datos contenedora o CDB y se replican automáticamente a las PDBs.


Este nuevo tipo de cuenta requiere emplear como sufijos C## o c##, es decir, este sería su distintivo, por  ejemplo, conectado como SYS o SYSTEM en el CDB submitir:


create user C##PROGRAMAS
identified by contraseña
default tablespace USERS;

Otorgamos privilegios al usuario creado con el comando grant:

grant connect, resource, create sessions to C##PROGRAMAS;


Ahora listamos los usuarios que empiecen con C:


select username from all_users
where username like'C%'; 

disc;

Aquellos usuarios cuyos nombres no empiecen con C## son usuarios locales. 

Nos conectamos como C##PROGRAMAS en el contenedor o CDB


conn C##PROGRAMAS/contraseña@localhost:1521/XE


Creamos una tabla

create table programa(

  programa_id number(6) not null,
  programa_nombre varchar2(120) not null,
  constraint programa_pk primary key(programa_id)
);


Seleccionamos las tablas del usuario actual en el contenedor XE:


select table_name

from user_tables;

Y se visualizará el nombre de la tabla creada.

Cambiamos a la PDB XEPDB1, pero seguimos conectados como C##PROGRAMAS:

alter session set container=XEPDB1;


select table_name

from user_tables;

Al ejecutar esta sentencia de selección comprobamos que no hay tablas asociadas en la cuenta C##PROGRAMAS de XEPDB1.



Para volver al contenedor ejecutamos


alter session set container=CDB$ROOT;



Estas instrucciones se pueden ejecutar empleando SQL*PLUS o SQL Developer.

Espero que este artículo sea de mucha utilidad para los amantes de las tecnologías de bases de datos y a toda la comunidad de Oracle Database XE.


Saludos.
    






Comentarios

Manuel dijo…
Por fin! gracias por el aporte.
crdzvega dijo…
Tengo una duda usualmente antes de las BD multitenant, los schemes los usaba como contenedores de módulos de mí aplicación por ej. scheme>contabilidad, scheme>ventas y así, pero ahora que es mas práctico crear una pdbdatabase por módulo, así pones en los ejemplos con HR y SALES, pero como encontrar la verdadera utilidad práctica para la cual fue creada esta tecnología?
Hola crdzvega, "la verdadera utilidad práctica para la cual fue creada esta tecnología", a la que te refieres, que yo la expresaría como la razón principal de ser de esta tecnología Multitenant(Multi inquilino) es que varias bases de datos puedan compartir la misma instancia, y que se traduce en ahorro de recursos como la memoria principal, sumado a esto la facilidad de poder aplicar patches y actualizaciones a todas las PDB's a partir de su contenedor, lo que en las versiones anteriores a 12c implicaba un gran esfuerzo por parte del DBA si se disponía de varias bases de datos NonCDB con el consumo explícito de más memoria por parte de cada instancia de DB. El enfoque de Multitenant no va asociado directamente a la forma de organizar los esquemas(varios esquemas en una sola PDB o una PDB por esquema), sino, a administrar de manera óptima las bases de datos de una organización.
crdzvega dijo…
Muchas gracias! por tu respuesta, me queda todo claro. Éxitos en tus labores!

Entradas más populares de este blog

Crear y Administrar Espacios de Tablas(Tablespaces) Parte 1

Los Espacios de Tablas o Tablespaces permiten agrupar lógicamente los datafiles o archivos de datos donde se almacenan físicamente los datos de las tablas de usuarios y del sistema. Oracle en todas sus ediciones cuenta por defecto con 5 tablespaces: SYS SYSTEM UNDO TEMP USERS Cada espacio de tabla tiene una función definida que se muestra en la tabla siguiente: TABLESPACE DESCRIPCIÓN SYSTEM Almacena información acerca de los datos de la base de datos. SYSAUX "Es un tablespace que nace en 9i para dar soporte a los diferentes features de Oracle que necesitan crear segmentos dentro de la base de datos, por ejemplo AWR en 10g."  http://www.forosdelweb.com/f100/tablespace-sysaux-606358/ UNDO Sirve para retener los cambios que se realizan sobre los datos en Oracle y así poder deshacerlos. TEMP Contiene datos temporales o no permanentes  que permanecen únicamente por la duración de la sesión, es decir, que una vez que la sesión termina, estos datos son bo

Como conectarse a Oracle Database XE desde la línea de comandos.

Oracle Database XE puede ser accedida desde la aplicación SQL*Plus, que es un programa de líneas de comandos SQL. Para acceder a SQL*PLus, existen dos métodos: Primero: Inicio>Todos los programas>Base de datos Oracle 10g/11g  Express Edition>Ejecutar Línea de comandos SQL.                     En el caso de Oracle Database 18c Express Edition para Windows:  Inicio>Oracle-OraDB18Home1>SQLPlus Se visualiza la ventan de SQLPlus y se activa un promptuario SQL> que antecede a cualquier comando SQL. Para establecer la conexión al servidor Oracle, ingrese el comando: SQL> conn system (presione ENTER) Introduzca la contraseña: La contraseña es la establecida por Usted al momento de instalar Oracle.(A no ser que la haya cambiado). Presione Enter. Se visualizará el mensaje: Conectado .   A continuación se activa el prompter SQL> Ahora podemos enviar mandatos SQL al servidor XE. Para empezar, crearemos un nuevo usuario llamado MUSICAL. La

Crear usuarios, asignar y revocar roles en Oracle XE con SQL Developer

Es habitual crear y administrar usuarios y roles por medio de líneas de comando usando SQL PLUS, sin embargo muchos de estos procesos pueden  realizarse por medio de Oracle SQL Developer que es la herramienta gráfica desarrollada en Java para cubrir de modo visual las tareas mencionadas. Crear un usuario con Oracle SQL Developer 1.   Iniciar  Oracle SQL Developer 2. Abrir la conexión de usuario SYSTEM configurada para XEPDB1 o cualquier otra PDB disponible. Si no cuenta con una conexión basada en el usuario SYSTEM, ver el siguiente post . 3.   En el panel Conexión se desplegarán los nodos de la conexión abierta y seleccionar la carpeta Usuarios.   4.   Click con botón secundario y seleccionar Crear Usuario . 5.   Llenar los datos en el formulario Crear Usuario. 6.   Click en Roles Otorgados. Seleccionar CONNECT y RESOURCE .   7.   Seleccionar Cuotas. Seleccionar USERS y establecer 300 en la columna Cuota y M en Unidades. Opcional.- Click en S