Está en la página 1de 8

CERTIFICACION ORACLE 10

FABIO ROJAS

CERTIFICACION ORACLE 10 FABIO ROJAS PORQUE SIEMPRE SE CREAN LOS USUARIO SYS Y SYSTEM Iniciamos con

PORQUE SIEMPRE SE CREAN LOS USUARIO SYS Y SYSTEM

Iniciamos con una pregunta poco usual cuando empezamos a estudiar oracle, los que tienen ya un poco de estudio en oracle diran son los usuarios administradores y manejan y llevan el control de todo lo que pasa en la base de datos y es cierto… pero será que podemos crear un usuario darle los privilegios de super usuario y eliminar a system o a sys un poco curioso para empezar pero bueno veamos algo de teorica básica y masticada para entender algo simple de donde se guarda nuestra base de datos… que capacidad tiene … que pasa si su capacidad esta por llegar al limite bueno esos conceptos creo que se debe tener claros antes de iniciar el repaso de sql.

La unidad básica de almacenamiento de una base de datos Oracle es la Tabla, sin embargo, para tener una mejor estructuración de la información dentro de la base de datos Oracle, las tablas se agrupan a su vez dentro de los Usuarios, llamados también Esquemas. Por lo tanto, un usuario puede tener cero o muchas tablas y se dice que es el propietario de dichas tablas. Además, una tabla pertenece a un solo usuario o esquema.

Cada vez que se crea una base de datos nueva, hay una serie de elementos que no pueden faltar en ella y siempre se crean. Los dos principales elementos que se crean son el usuario SYS y el usuario SYSTEM. Toda base de datos Oracle tiene siempre estos dos usuarios.

¿Por qué se crean estos dos usuarios automáticamente? Para poder gestionar la base de datos recién creada, el sistema Oracle necesita tener información sobre las tablas que existen en la base de datos, los usuarios que existen, los índices que se van creando y borrando, la cantidad de datos que hay en cada tabla, etc. Por lo tanto, necesita unas tablas en las que ir almacenando toda esta información. A este conjunto de tablas se le llama diccionario de la base de datos y, como hemos dicho, toda tabla de una base de datos Oracle debe pertenecer a un usuario, por eso se crean siempre estos dos usuarios especiales, SYS y SYSTEM que son los propietarios de las tablas del diccionario de la base de datos y, por lo tanto, son lo más importante para que funcione correctamente la base de datos. Si por algún error se borraran tablas de alguno de estos usuarios especiales, se podría corromper toda la base de datos.

Lo normal en los proyectos informáticos es que, una vez que se crea una base de datos Oracle vacía, es decir, solamente existen estos dos usuarios con sus tablas, se crean nuevos usuarios y en cada uno de esos usuarios se van creando las tablas necesarias para cada proyecto.

Para crear un nuevo usuario, se le debe indicar un nombre, una contraseña, un tablespace por defecto en el que se crearán todas las tablas de dicho usuario y un tablespace temporal en el que se ejecutarán las select que necesitan de ordenaciones.

La sentencia podría ser como la que sigue:

Create user nombre_de_usuario identified by pasword_de_usuario default tablespace nombre_tablespace_default temporary tablespace nombre_tablespace_temporal;

Si por cualquier motivo queremos borrar un usuario deberemos usar el comando drop, pero si ya hemos creado tablas en este usuario, Oracle no nos dejará, nos indicará este

CERTIFICACION ORACLE 10

FABIO ROJAS

CERTIFICACION ORACLE 10 FABIO ROJAS hecho y, si queremos borrar el usuario y todas sus tablas

hecho y, si queremos borrar el usuario y todas sus tablas debemos añadir la coletilla "cascade" a la sentencia.

Drop user nombre_de_usuario;

Que tablespaces tiene oracle al momento de instalarlo:

SELECT tablespace_name FROM dba_data_files b WHERE tablespace_name NOT LIKE 'TEMP%' GROUP BY b.tablespace_name;

TABLESPACE_NAME

SYSAUX

UNDOTBS1

USERS

SYSTEM

EXAMPLE

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.

UNDOTBS1: por ahora no lo necesitamos conocer

USERS:

se usa para trabajar en el aplicaciones en desarrollo

SYSTEM:

CERTIFICACION ORACLE 10

FABIO ROJAS

CERTIFICACION ORACLE 10 FABIO ROJAS Cuando se crea una base de datos es obligatorio crear un

Cuando se crea una base de datos es obligatorio crear un Tablespace inicial en el que se van a crear los usuarios Sys y system automáticamente. Estos usuarios son los que tienen la información necesaria para el buen funcionamiento y podamos hacer todo tipo de operaciones como: crear nuevos usuario o nuevos tablespaces etc.En el residen todos los objetos de Sys y System por eso es recomendable, mas bien obligatorio que a nuestros usuarios le asignemos un tablespace distinto a System para eso hay que crear un tablespace.

Primero aclaremos algunos conceptos:

TABLESPACE: Almacén lógico de los ficheros de la BD. La BD posee ficheros (datafiles) donde almacena toda la información (objetos); estos ficheros deben tener una estructura lógica, que es la que lo establece el tablespace.

USUARIO: Es el usuario propietario de los objetos, tiene asignado una cantidad de espacio en un tablespace, o puede tener varios tablespace (compartidos o de uso exclusivo).

ESQUEMA: Concepto en el cual se indica cual es el ámbito de un usuario, es decir, el esquema es cuanto abarca un usuario, pj. cuantos objetos tiene, que permisos, que tablespaces posee

OBJETO: Cualquier cosa que se pueda crear/eliminar: Usuarios, tablas, procedimientos, indices, tipos, tablespaces…

Al crear un usuario, generalmente se le asigna un tablespace por defecto (dicho tablespace por defecto es system) y otro temporal (que también es system).

Cuando dicho usuario crea tablas, indices, paquetes tablespace indicado por defecto.

se van almacenando en el

Cuando el usuario hace consultas, los resultados temporales se almacenan en el tablespace temporal.

Algunos objetos permiten indicar en qué tablespace se quieren poner; pj. puedo crear el usuario PRUEBA que tendría por defecto el tablespace temporal TEMPORAL y por defecto un tablespace DATOS. luego puedo crear otro tablespace llamado INDICES que sería usado sólamente por el usuario PRUEBA.

Creamos el tablespace datos:

crear otro tablespace llamado INDICES que sería usado sólamente por el usuario PRUEBA. Creamos el tablespace

CERTIFICACION ORACLE 10

FABIO ROJAS

CERTIFICACION ORACLE 10 FABIO ROJAS CREATE TABLESPACE datos DATAFILE ‘C:\oradata\orcl\datos1.dbf’ SIZE 100M AUTOEXTEND

CREATE TABLESPACE datos DATAFILE ‘C:\oradata\orcl\datos1.dbf’ SIZE 100M AUTOEXTEND off ONLINE;

Creamos tablespace temporal:

CREATE TEMPORARY TABLESPACE temporal TEMPFILE ‘C:\oradata\orcl\temporal01.dbf’ SIZE 1000 M AUTOEXTEND on;

Comprobamos que se crearon :

select TABLESPACE_NAME from user_tablespaces;

TABLESPACE_NAME

SYSTEM

UNDOTBS1

SYSAUX

TEMP

USERS

EXAMPLE

DATOS

TEMPORAL

PD. Es una muy buena práctica tener separados en distintos tablespaces los datos y los indices.

GESTION USUARIOS:

CERTIFICACION ORACLE 10

FABIO ROJAS

CERTIFICACION ORACLE 10 FABIO ROJAS Sintaxis: CREATE USER NOMBRE_USUARIO IDENTIFIED BY CLAVE_ACCESO [DEFAULT TABLESPACE

Sintaxis:

CREATE USER NOMBRE_USUARIO IDENTIFIED BY CLAVE_ACCESO [DEFAULT TABLESPACE ESPACIO_TABLA] [TEMPORARY TABLESPACE ESPACIO_TABLA] [QUOTA {ENTERO {K | M} | UNLIMITED } ON ESPACIO_TABLA] [PROFILE PERFIL];

DEFAULT TABLESPACE= Asigna a un usuario el tablespace por defecto para almacenar los objetos que cree. Si no se asigna ninguno, el tablespace por defecto es SYSTEM.

TEMPORARY TABLESPACE= Especifica el nombre del tablespace para trabajar temporales. Si no se especifica ninguno, el tablespace por defecto es SYSTEM.

QUOTA= Asigna un espacio en megabites o kilobites en el tablespace asignado. Si no se especifica esta cláusula, el usuario no tiene cuota asignada y no podrá crear objetos en el tablespace. Para tener espacio y acceso ilimitad a un tablespace es:

GRANT UNLIMITED TABLESPACE NOMBRE_TABLESPACE;

El nombre de usuario no debe superar 30 caracteres no debe tener caracteres especiales y debe iniciar con una letra.

Un método de autentificación. El mas común es una clave o password, pero Oracle 10g soporta otros métodos (como biometric, certificado y autentificación por medio de token).

Un Tablespace default, el cual es donde el usuario va a poder crear sus objetos por defecto, sin embargo, esto no significa que pueda crear objetos, o que tenga una cuota de espacio. Estos permisos se asignan de forma separada, salvo si utiliza el privilegio RESOURCE el que asigna una quota unlimited, incluso en el Tablespace SYSTEM! Sin embargo si esto ocurre, ud. puede posteriormente mover los objetos creados en el SYSTEM a otro Tablespace.

Un Tablespace temporal, donde el usuario crea sus objetos temporales y hace los sort u ordenamientos.

Un perfil o profile de usuario, que son las restricciones que puede tener su cuenta (opcional).

CERTIFICACION ORACLE 10

FABIO ROJAS

CERTIFICACION ORACLE 10 FABIO ROJAS CREATE USER Fabio IDENTIFIED BY Fabio Veamos los tablespace asignados por

CREATE USER Fabio IDENTIFIED BY Fabio

Veamos los tablespace asignados por oracle por defecto con referente al usuario Fabio creado anteriormente:

Select * FROM dba_users WHERE USERNAME = 'FABIO'

Select * FROM dba_users WHERE USERNAME = 'FABIO' Bueno en este caso mi servidor de base

Bueno en este caso mi servidor de base de datos tiene por defecto el tablespace para datos como USERS y el tablespace temporal como TEMP para que usuario quede con los tablespace creados por nosotros debemos hacer:

ALTER USER Fabio DEFAULT TABLESPACE datos TEMPORARY TABLESPACE temporal;

Volvemos a verificar:

Select * FROM dba_users WHERE USERNAME = 'FABIO'

Select * FROM dba_users WHERE USERNAME = 'FABIO' Ahora si mi usuario Fabio ya tiene asignados

Ahora si mi usuario Fabio ya tiene asignados los tablespaces que definí con anterioridad… si para cada usuario quiero que automáticamente le asigne dichos tablespace hacemos lo siguiente:

CERTIFICACION ORACLE 10

FABIO ROJAS

CERTIFICACION ORACLE 10 FABIO ROJAS
CERTIFICACION ORACLE 10 FABIO ROJAS Creamos otro usuario nelima CREATE USER nelima IDENTIFIED BY nelima; Verificamos
CERTIFICACION ORACLE 10 FABIO ROJAS Creamos otro usuario nelima CREATE USER nelima IDENTIFIED BY nelima; Verificamos
CERTIFICACION ORACLE 10 FABIO ROJAS Creamos otro usuario nelima CREATE USER nelima IDENTIFIED BY nelima; Verificamos

Creamos otro usuario nelima

CREATE USER nelima IDENTIFIED BY nelima;

Verificamos con que tablespace se le asigno:

Select * FROM dba_users WHERE USERNAME = 'NELIMA'

Select * FROM dba_users WHERE USERNAME = 'NELIMA' Ok cada vez que creemos un usuario le

Ok cada vez que creemos un usuario le asigna automáticamente el tablespace que le definimos.

Recordemos que el Tablespace temporal es donde se almacenan operaciones de ordenamiento. Estas incluyen las cláusulas ORDER BY, GROUP BY, SELECT DISTINCT, MERGE JOIN, o CREATE INDEX (también es utilizado cuando se crean Tablas temporales).

CREATE USER fabio IDENTIFIED BY Fabio DEFAULT TABLESPACE datos TEMPORARY TABLESPACE temporal;

Que pasa si nuestro tablespace de datos de 100 Megas esta apunto de llenarse :) para eso podemos hacer dos cosas:

1). redimensionar el tamaño del tablespace

2). Crear otro Datafile para ese tablespace

CERTIFICACION ORACLE 10

FABIO ROJAS

CERTIFICACION ORACLE 10 FABIO ROJAS ALTER DATABASE DATAFILE 'C:\oradata\orcl\datos1.dbf' RESIZE 200 M ALTER

ALTER DATABASE DATAFILE 'C:\oradata\orcl\datos1.dbf' RESIZE 200 M

ALTER TABLESPACE DATOS ADD DATAFILE 'C:\oradata\orcl\datos2.dbf' SIZE 50M