Está en la página 1de 6

CÓMO CREAR UN

ESQUEMA EN ORACLE
DATABASE 11G XE
La creación de esquema de este artículo aplica para
versiones no XE de igual forma.
Oracle define esquema como la colección de objetos o
estructuras lógicas que corresponden directamente a los
datos almacenados, y crea un nuevo esquema por cada
usuario que crea objetos en la base de datos.
Para crear un esquema debemos realizar lo siguiente:

Abrir SQL Developer y conectarnos a una base de datos


utilizando un usuario administrador como por
ejemplo SYSTEM, si no disponemos de ello, en este
artículo pueden guiarse.
Una vez conectados hay que generar
el tablespace. Vamos a crear dos, uno para las tablas y
otro para los indices.
Tablespace para datos, tamaño inicial 1024 Mb, auto
extensible.
CREATE TABLESPACE "NOMBRE_TABLESPACE" LOGGING
DATAFILE '/path/hasta/los/datos/NOMBRE_TABLESPACE.dbf' SIZE 1024M
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

Tablespace para índices, tamaño inicial 512 Mb, auto


extensible.
CREATE TABLESPACE "NOMBRE_TABLESPACE_IDX" LOGGING
DATAFILE '/path/hasta/los/datos/NOMBRE_TABLESPACE_IDX.dbf' SIZE
512M
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
Ejecutamos ambos comandos.

Crear los tablespaces no es obligatorio, pero altamente


recomendable. De esta forma cada usuario tiene definido
su propio espacio para los datos.
La creación del usuario que va a trabajar sobre
estos tablespaces, y que será el propietario de los
objetos que se se creen en ellos se realiza mediante el
siguiente comando:
CREATE USER "NOMBRE_USUARIO" PROFILE "DEFAULT" IDENTIFIED BY
"CONTRASEÑA"
DEFAULT TABLESPACE "NOMBRE_TABLESPACE"
TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK;
Si no se especifica un tablespace, la BD le asignará
el tablespace USERS, que es el tablespace que se
utiliza por defecto para los nuevos usuarios.
La asignación del tablaspace para indices no se hace
referencia al crear al usuario, sino que directamente al
crear un indice, por ejemplo:
CREATE INDEX mi_indice ON mi_tabla(mi_campo)

TABLESPACE NOMBRE_TABLESPACE_IDX;

Ahora queda asignar los permisos necesarios para que


el usuario pueda trabajar. Con los
roles CONNECT y RESOURCE ya se asignan los
permisos mínimos:
• Conexión a la base de datos
• Operaciones habituales de consulta, modificación y
creación de objetos.
GRANT "CONNECT" TO "NOMBRE_USUARIO";
GRANT "RESOURCE" TO "NOMBRE_USUARIO";

Continuamos con la asignación de permisos específicos


sobre objetos para permitir que el usuario pueda realizar
todas las operaciones que necesarias.

GRANT ALTER ANY INDEX TO "NOMBRE_USUARIO";


GRANT ALTER ANY SEQUENCE TO "NOMBRE_USUARIO";
GRANT ALTER ANY TABLE TO "NOMBRE_USUARIO";
GRANT ALTER ANY TRIGGER TO "NOMBRE_USUARIO";
GRANT CREATE ANY INDEX TO "NOMBRE_USUARIO";
GRANT CREATE ANY SEQUENCE TO "NOMBRE_USUARIO";
GRANT CREATE ANY SYNONYM TO "NOMBRE_USUARIO";
GRANT CREATE ANY TABLE TO "NOMBRE_USUARIO";
GRANT CREATE ANY TRIGGER TO "NOMBRE_USUARIO";
GRANT CREATE ANY VIEW TO "NOMBRE_USUARIO";
GRANT CREATE PROCEDURE TO "NOMBRE_USUARIO";
GRANT CREATE PUBLIC SYNONYM TO "NOMBRE_USUARIO";
GRANT CREATE TRIGGER TO "NOMBRE_USUARIO";
GRANT CREATE VIEW TO "NOMBRE_USUARIO";
GRANT DELETE ANY TABLE TO "NOMBRE_USUARIO";
GRANT DROP ANY INDEX TO "NOMBRE_USUARIO";
GRANT DROP ANY SEQUENCE TO "NOMBRE_USUARIO";
GRANT DROP ANY TABLE TO "NOMBRE_USUARIO";
GRANT DROP ANY TRIGGER TO "NOMBRE_USUARIO";
GRANT DROP ANY VIEW TO "NOMBRE_USUARIO";
GRANT INSERT ANY TABLE TO "NOMBRE_USUARIO";
GRANT QUERY REWRITE TO "NOMBRE_USUARIO";
GRANT SELECT ANY TABLE TO "NOMBRE_USUARIO";
GRANT UNLIMITED TABLESPACE TO "NOMBRE_USUARIO";
Con esto tenemos el usuario creado y el esquema
finalizado.

Fuente: Dataprix

También podría gustarte