¿Cómo crear tablespaces?
Esta es una de las primeras opciones que hay que tener en cuenta.
Primero que nada, hay que entender que generalmente entendemos que debe haber un espacio físico disponible para agregar tablas, índices, vistas, etc.
La diferencia entre otro tipo de RDBMS (como SQL Server, Informix, etc.) y Oracle es que se establecen primero los espacios de tabla (TABLESPACE) físicos en el disco, y al mismo tiempo se crean los archivos de datos (DATAFILE) donde se almacenará la información.
Después de esto, se procede a crear el o los usuarios que tendrán permisos de hacer y/o deshacer en esos TABLESPACEs. En caso de no crear TABLESPACEs, todo se va por defecto al TABLESPACE llamado USER, y muchas veces no es esto lo que se desea, principalmente si en una sola instancia de Oracle van a coexistir varias bases de datos distintas.
Viendo esto, los pasos necesarios para crear los TABLESPACEs (y el usuario) serían:
- Ingresar como administrador:
sqlplus system/password as sysdba
- Ingresar la siguiente sentencia:
CREATE SMALLFILE TABLESPACE nombre_del_tablespace
DATAFILE 'ruta/al/archivo/fisico.dbf'
SIZE 128M -- o el tamaño deseado inicial del DATAFILE
AUTOEXTEND ON NEXT 128M -- si se desea que crezca conforme se requiera
MAXSIZE 1024M -- si se requiere que crezca hasta cierto tamaño
LOGGING; -- si se requiere que se mantenga una bitácora - Una vez que se creó el TABLESPACE con su(s) correspondiente(s) DATAFILE(s), se procede a crear el usuario:
CREATE USER id_usuario
IDENTIFIED BY contraseña
DEFAULT TABLESPACE nombre_del_tablespace;Con esto aseguramos que todos los objetos que se creen del usuario quedarán contenidos en sus propios TABLESPACE y DATAFILEs.
- El paso siguiente es dar permisos al usuario dentro de la base de datos:
GRANT
CONNECT,
RESOURCE,
ALTER ANY PROCEDURE,
CREATE JOB,
UNLIMITED TABLESPACE,
SELECT ANY SEQUENCE,
CREATE PROCEDURE,
CREATE VIEW,
CREATE SESSION,
DEBUG ANY PROCEDURE,
DEBUG CONNECT SESSION
TO
id_usuario;Estos permisos pueden variar, recomiendo revisar la documentación sobre los mismos para evitar problemas de (in)seguridad en la base de datos.
- Con esto terminamos la parte básica de creación de un esquema de datos con el usuario correspondiente. En la siguiente entrega veremos cómo hacer la conexión y comenzar a crear objetos en el esquema creado.
¡Saludos!
