INTRODUCCIÓN
Oracle incluye una herramienta de administración gráfica que es mucho más intuitiva y cómoda de utilizar. Se emplea en forma alternativa a los comandos de línea de texto que se usan para efectuar administración. Por lo tanto, no es necesario disponer de esta herramienta en forma obligatoria porque siempre es posible administrar una base de datos desde la línea de comandos, sin embargo, es mucho más recomendable por la facilidad de uso y rapidez para efectuar la mayoría de los comandos.
Objetivo
Oracle brinda una solución de base de datos integral a fin de lograr que el desarrollo y la implementación de Oracle sean más fáciles, rápidos y económicos,que permite a los desarrolladores escribir las aplicaciones de Oracle de manera más fácil y rápida. Está estrechamente integrado con Visual Studio e incluye características avanzadas, Oracle es una base de datos se encuentra dividida en una o más piezas lógicas llamadas tablespaces, que son utilizados para separar la información en grupos y así simplificar la administración de los datos, como por ejemplo diseñadores, la generación automática de códigos .NET y un depurador y editor PL/SQL totalmente integrados, Oracle
La Base de Datos
La base de datos de Oracle tiene una capa lógica y otra física. La capa física consiste de archivos que residen en el disco y los componentes de la capa lógica son estructuras que mapean los datos hacia estos componentes físicos.
La Capa Física
Ya se dijo que consiste de archivos físicos que se encuentran en los discos. Estos pueden ser de tres tipos diferentes:
* Uno o más datafiles
* Los datafiles almacenan toda la información ingresada en una base de datos. Se pueden tener sólo uno o cientos de ellos. Muchos objetos (tablas, índices) pueden compartir varios datafiles. El número máximo de datafiles que pueden ser configurados está limitado por el parámetro de sistema
MAXDATAFILES.
* Dos o más archivos redo log (de deshacer)
* Los archivos del tipo redo log almacenan información que se utiliza para la recuperación de una base de datos en caso de falla. Estos archivos almacenan la historia de cambios efectuados sobre la base de datos y son particularmente útiles cuando se necesita corroborar si los cambios que la base de datos ya ha confirmado se han efectuado realmente en los datafiles.
* Uno o más control files
* Estos archivos contienen información que se utiliza cuando se levanta una instancia, tal como la información de dónde se encuentran ubicados los datafiles y los archivos redo log. Estos archivos de control deben encontrarse siempre protegidos.
La Capa Lógica
La capa lógica de una base de datos consta de los siguientes elementos:
* Uno o más tablespaces
* El esquema de la base de datos (schema), el cual consiste de objetos como tablas, clusters, índices, vistas, procedimientos almacenados, triggers, secuencias y otros.
Los Tablespaces y los Datafiles
Como se mencionó, una base de datos se encuentra dividida en una o más piezas lógicas llamadas tablespaces, que son utilizados para separar la información en grupos y así simplificar la administración de los datos. Los tablespaces pueden ocupar uno o más datafiles. Si se decide que utilice varios datafiles, el administrador del sistema puede gestionar que éstos queden localizados en discos diferentes, lo que aumentará el rendimiento del sistema, principalmente por la mejora en la distribución de la carga de entrada / salida.
En la figura siguiente se aprecia la diferencia entre estos tres conceptos. Una base de datos de ejemplo contiene tres tablespaces lógicos (parte superior de la figura) que utiliza para almacenar información del sistema, de los datos del usuario y de los índices de las tablas. Asimismo, existen los espacios físicos (datafiles) que guardan esta información en los diferentes discos disponibles y que se señalan en la parte inferior del dibujo.
El Esquema de la base de datos
Un esquema es una colección de objetos lógicos, utilizados para organizar de manera más comprensible la información y conocidos como objetos del esquema. Una breve descripción de los objetos que lo componen es la siguiente:
* Tabla:Es la unidad lógica básica de almacenamiento. Contiene filas y columnas (como una matriz) y se identifica por un nombre. Las columnas también tienen un nombre y deben especificar un tipo de datos. Una tabla se guarda dentro de un tablespace (o varios, en el caso de las tablas particionadas).
* Cluster: Un cluster es un grupo de tablas almacenadas en conjunto físicamente como una sola tabla que comparten una columna en común. Si a menudo se necesita recuperar datos de dos o más tablas basado en un valor de la columna que tienen en común, entonces es más eficiente organizarlas como un cluster, ya que la información podrá ser recuperada en una menor cantidad de operaciones de lectura realizadas sobre el disco.
Indice:Un índice es una estructura creada para ayudar a recuperar datos de una manera más rápida y eficiente. Un índice se crea sobre una o varias columnas de una misma tabla. De esta manera, cuando se solicita recuperar datos de ella mediante alguna condición de búsqueda (cláusula where de la sentencia), ésta se puede acelerar si se dispone de algún índice sobre las columnas-objetivo.
* Vista: Una vista implementa una selección de varias columnas de una o diferentes tablas. Una vista no almacena datos; sólo los presenta en forma dinámica. Se utilizan para simplificar la visión del usuario sobre un conjunto de tablas, haciendo transparente para él la forma de obtención de los datos.
* Proced. Almacenado:Son programas que permiten independizar el manejo de datos desde una aplicación y efectuarla directamente desde el motor de base de datos,
disminuyendo así el tráfico de información a través de la red y mejorando el rendimiento de los procesos implementados mediante estos programas.
* Trigger:Un trigger es un procedimiento que se ejecuta en forma inmediata cuando ocurre un evento especial. Estos eventos sólo pueden ser la inserción, actualización o eliminación de datos de una tabla.
* Secuencias: El generador de secuencias de Oracle se utiliza para generar números únicos y utilizarlos, por ejemplo, como claves de tablas. La principal ventaja es que libera al programador de obtener números secuenciales que no se repitan con los que pueda generar otro usuario en un instante determinado.
Creación de una base de datos
Diseñar una base de datos y definir sus propiedades y características de implementación (lógicas y físicas) pensando en los sistemas que harán uso de ella es una tarea muy compleja. Todo el esfuerzo que se debe invertir en esta etapa tendrá como resultado que su administración se haga más fácil o más compleja en el futuro.
Una base de datos se comienza creando los archivos de redo log, los archivos de control y el tablespace de sistema (de nombre system). Este último almacena una estructura muy importante que es el diccionario de datos (data dictionary) que es el área que contiene toda la información de los datafiles, los esquemas y el resto de información relevante de la base de datos.
Al igual que en el caso de las instancias, es mucho más cómodo utilizar alguna de las herramientas gráficas mencionadas con anterioridad. En la secuencia de creación de una base de datos se deberá ingresar una gran cantidad de información de configuración, tal como:
* Nombre, SID, password de la cuenta internal
* Ruta del archivo de inicialización (initxxx.ora; donde xxx corresponde al SID)
* Ruta de los archivos de control y tamaño de sus datafiles
* Datos de tamaño de datafiles para los tablespaces de usuarios, de sistema y temporal, entre otros
* Tamaño de los archivos redo log
* etc.
AREAS LOGICAS Y ARCHIVOS FISICOS
Tablespaces y Datafiles
Ya hemos dicho que un tablespace es una unidad lógica que denota el espacio de almacenamiento de datos dentro de una base de datos y que están constituidos por uno o más datafiles, que son los archivos físicos que ocupan efectivamente el espacio en el disco duro. Cuando se crea una base de datos, hay que crear al menos un tablespace, por lo que durante el proceso de creación de ésta siempre se indica el tablespace principal, de nombre SYSTEM. Su correspondiente datafile será entonces el fichero físico al que habrá que asignar una ruta, un nombre y un tamaño.
Los usuarios con características de DBA que se generan automáticamente al crear una instancia son SYS y SYSTEM. Es a partir del trabajo de ellos que la base de datos comienza a crecer y es posible configurar nuevos usuarios, otras áreas de datos (tablespaces) e implementar en forma física un modelo de datos en algún esquema.
No es recomendable crear nuevos usuarios o procesos que compartan el tablespace del sistema, por lo que una de las primeras tareas del DBA consiste en crear nuevos esquemas (cuentas de usuario) y asignarles tablespaces diferentes (que también se deberán crear).
Creación de un Tablespace
Para crear un tablespace desde la interfaz de comandos, se debe escribir la siguiente sentencia:
CREATE TABLESPACE nombre DATAFILE ‘ruta_y_nombre_del_datafile’ SIZE tamaño;
Ejemplo:
create tablespace datos_prueba datafile ‘c:\oracle81\oradata\mkt\tb_mkt01.dbf’ size 100M;
La cursiva representa valores a escoger para nombrar el tablespace, la ruta de su datafile y el tamaño del mismo. Más tarde se pueden seguir añadiendo datafiles al mismo tablespace para otorgar más espacio de almacenamiento. Con la sentencia anterior se está creando un tablespace llamado "datos_prueba", al cual se le ha asociado un datafile ubicado en el directorio
"c:\oracle81\oradata\mkt" de nombre tb_mkt01.dbf (la extensión dbf es siempre obligatoria) y que ocupa 100 megabytes de espacio en el disco.
Una práctica muy habitual y recomendada para quienes deben configurar los tablespaces de una base de datos es que implementen espacios diferentes para almacenar los índices de las tablas y otros distintos para almacenar las tablas y sus datos. Y si además sus correspondientes datafiles (para los índices y para los datos) se encuentran en discos separados se acelerará el acceso a los datos por partida doble.
Eliminación de un Tablespace
Para eliminar un tablespace que no se vaya a ocupar más, el DBA debe en primer lugar asegurarse que éste no está albergando objetos que se estén utilizando en alguno de los sistemas que se encuentren en explotación (o desarrollo).
Una de las primeras medidas de seguridad que se deben considerar es no eliminar el tablespace inmediatamente, sino que dejarlo "deshabilitado" un tiempo prudente mientras se espera a recibir algunas incidencias de los usuarios por este hecho (que no podrán acceder a él, como si se hubiese eliminado). Si se comprueba que efectivamente el tablespace ya no es necesario, entonces se puede proceder a eliminarlo sin problemas.
La sintaxis para deshabilitar un tablespace es la siguiente:
ALTER TABLESPACE nombre OFFLINE;
Y para habilitarlo de nuevo:
ALTER TABLESPACE nombre ONLINE;
Y para eliminarlo definitivamente:
DROP TABLESPACE nombre;
Otra utilidad de poner un tablespace fuera de línea (deshabilitado) es la de poder efectuar tareas administrativas sobre él, ya que esa condición nos garantiza que ningún usuario podrá estar accediendo a los objetos que contiene (tablas, vistas, etc.), por lo que se podrían efectuar, por ejemplo, labores de respaldo o mantención de los objetos, entre otras.
Manipulación de Datafiles
Mediante el manejo de los archivos físicos de una base de datos (datafiles) podemos redimensionar los tablespaces, permitiendo la asignación de más espacio.
Para aumentar el tamaño de un tablespace se puede optar por alguno de estos dos caminos, representados por las instrucciones que permiten implementar la medida:
* Agregar un datafile (por ejemplo, al tablespace datos_prueba): alter tablespace datos_prueba add datafile ‘c:\oracle81\oradata\mkt\tb_mkt02.dbf’ size 50M;
* aumentar el tamaño de un datafile ya existente: alter datafile ‘c:\oracle81\oradata\mkt\tb_mkt01.dbf’ resize 150M;
La primera instrucción indica que se va a crear un nuevo datafile para el tablespace que se ha quedado pequeño, aumentando su capacidad en 50 megabytes.
En el segundo ejemplo, no se menciona el tablespace porque lo que se hace es redimensionar un datafile, cuyo nombre es único en la ruta mencionada y que Oracle ya conoce que está asociado a algún tablespace (datos_prueba en el ejemplo). Su tamaño se debe escribir de nuevo, por lo que realmente no se han añadido 150 megabytes como dice la instrucción, sino sólo 50, porque ya tenía 100 megabytes al inicio.
Creación de Usuarios
Cuando se da de alta a un usuario basta, como mínimo, con indicar el nombre y el password de la cuenta (esquema) que se está creando. Enseguida se asigna un espacio físico al nuevo esquema dentro de la base de datos con los parámetros por defecto.
Para crear un usuario especificando las opciones adecuadas sin considerar los valores por defecto, se debería respetar la siguiente sintaxis:
CREATE USER nombre_usuario
IDENTIFIED BY password
[DEFAULT TABLESPACE nombre_tablespace]
[TEMPORARY TABLESPACE nombre_tablespace]
[QUOTA [número, K o M o UNLIMITED] ON nombre_tablespace1]
[, QUOTA [número, K o M o UNLIMITED] ON nombre_tablespace2]
[PROFILE nombre_perfil]
[PASSWORD EXPIRE]
[ACCOUNT LOCK o ACCOUNT UNLOCK]
Donde los parámetros corresponden a lo siguiente:
* Username: Nombre del usuario que se está creando.
* Password: Clave de inicio que se le otorga al usuario. Luego él podrá reemplazarla por la que desee.
* Default Tablespace: Es el tablespace por defecto al que se conectará el usuario cada vez que ingrese a la base de datos y donde guardará todos sus objetos. Si no se especifica, entonces se conectará al tablespace system.
* Temporary Tablespace: Es el tablespace temporal que utilizará el usuario en todas sus conexiones.
* Quota: Cuota de disco (en Kilobytes o Megabytes) que le es otorgada al usuario en cada uno de los tablespaces a los que puede acceder. Si se indica "UNLIMITED" entonces el usuario podrá utilizar todo el espacio que quiera dentro del tablespace designado.
* Profile: Es el nombre del perfil que ha sido asignado a este usuario.
* Password expire: Establece que el password del usuario expirará en forma automática y, por lo tanto, deberá cambiarlo al iniciar su próxima sesión.
* Account lock (o unlock): Permite establecer si la cuenta debe permanecer bloqueada o no inmediatamente después de crearla.
Modificación de Usuarios
La forma de modificar usuarios a través de comandos es utilizando la opción Alter User, cuya sintaxis completa es muy similar a la de creación de usuarios. Todos los parámetros que fueron establecidos en el instante de la creación pueden ahora modificarse con esta instrucción:
ALTER USER nombre_usuario
IDENTIFIED BY password
[DEFAULT TABLESPACE nombre_tablespace]
[TEMPORARY TABLESPACE nombre_tablespace]
[QUOTA [número, K o M o UNLIMITED] ON nombre_tablespace1]
[, QUOTA [número, K o M o UNLIMITED] ON nombre_tablespace2]
[PROFILE nombre_perfil]
[PASSWORD EXPIRE]
[ACCOUNT LOCK o ACCOUNT UNLOCK]
Es tan poderosa que da la sensación de estar creando al usuario de nuevo, pero no es así porque todos los objetos que tuviera creados bajo su esquema siguen permaneciendo allí.
Eliminación de Usuarios
Para eliminar un usuario se ejecuta la siguiente instrucción:
DROP USER nombre_usuario [CASCADE]
Y la opción Cascade se hace obligatoria cuando el usuario posee objetos en su esquema (tablas, vistas, etc.) y debemos borrarlos junto con él. Sin usar esta opción no podríamos eliminar un usuario con objetos.
Creación de Perfiles
Los perfiles se crean para limitar las posibilidades de los usuarios del sistema de base de datos. Por ejemplo, se pueden establecer 3 tipos de usuarios:
* Administradores: Que podrían tener acceso a recursos ilimitados dentro del sistema.
* Desarrolladores: Que podrían disponer de un número ilimitado de sesiones pero restringida la utilización de la CPU.
* Otros.
En síntesis, los perfiles se utilizan para suavizar las tareas de administración de la seguridad, manteniendo siempre bajo control los accesos a los recursos de todos los usuarios, por muchos que éstos puedan llegar ser.
Los perfiles se crean y modifican con los comandos CREATE PROFILE y ALTER PROFILE. La sintaxis de estos comandos no necesitan ser repetidas aquí porque vienen extensamente explicados en la ayuda del software; sólo vale la pena destacar que algunas de las cláusulas hacen referencia a cuánto ciclo de CPU se le asignará a cada usuario, cuántas sesiones concurrentes podrán tener, etc.
Creación de Roles
Los Roles constituyen la forma más segura y rápida de asignar recursos a los grupos de usuarios. Es una tarea muy tediosa para cualquier DBA tener que asignar o revocar permisos a todos los usuarios, de a uno por uno, y es por eso que agrupando un conjunto de usuarios bajo las mismas características es posible manejar sus permisos como un grupo.
Para crear roles se utiliza la siguiente sintaxis:
CREATE ROLE nombre_rol NOT IDENTIFIED o IDENTIFIED BY password
Y para asignar el rol a un usuario o para comenzar a asignar / quitar ciertos privilegios al rol se debe utilizar los comandos siguientes:
*Grant: Otorga privilegios a un rol (o a un usuario cualquiera) o también asigna un rol a un usuario.
* Revoke: Elimina privilegios otorgados previamente a un rol (o a un usuario).
Los roles o privilegios se pueden asignar varios al mismo usuario o grupo en una sola línea de comandos, siguiendo la sintaxis siguiente:
GRANT nombre_rol o nombre_privilegio [, nombre_rol o nombre_privilegio]
TO nombre_usuario o nombre_rol o PUBLIC [, nombre_usuario o nombre_rol]
[WITH ADMIN OPTION]
Ejemplo:
1. Creación del rol ROLE_DML:
2. CREATE ROLE role_dml NOT IDENTIFIED;
3. Asignar el privilegio de Select al rol recién creado:
4. GRANT select TO role_dml;
5. Asignar el rol a los usuarios JPEREZ y LGONZALEZ:
GRANT role_dml TO jperez, lgonzalez;
Esto hace que los usuarios anteriores posean el privilegio de SELECT. Cada uno de los usuarios que se incorporen a este rol, tendrá el mismo privilegio recién mencionado.
Si los privilegios se otorgan con la cláusula "with admin option" esto quiere decir que los usuarios que reciben los privilegios pueden a su vez otorgarlos a otros.
Restricciones de validación
Son restricciones que dictan una condición que deben cumplir los contenidos de una columna. La expresión de la condición es cualquier expresión que devuelva verdadero o falso, pero si cumple estas premisas:
* No puede hacer referencia a números de fila
* No puede hacer referencia a objetos de SYSTEM o SYS
* No se permiten usar las funciones SYSDATE, UID, USER y USERENV
* No se permiten referencias a columnas de otras tablas (si a las de la misma tabla)
Una misma columna puede tener múltiples CHECKS en su definición (se pondrían varios
CONSTRAINT seguidos, sin comas). Ejemplo:
CREATE TABLE ingresos(cod NUMBER(5) PRIMARY KEY,
concepto VARCHAR2(40) NOT NULL,
importe NUMBER(11,2) CONSTRAINT importe_min
CHECK (importe>0)
CONSTRAINT importe_max
CHECK (importe<8000) ); Para poder hacer referencia a otras columnas hay que construir la restricción de forma independiente a la columna: CREATE TABLE ingresos(cod NUMBER(5) PRIMARY KEY, concepto VARCHAR2(40) NOT NULL, importe_max NUMBER(11,2), importe NUMBER(11,2), CONSTRAINT importe_maximo CHECK (importefecha_inicio),
CONSTRAINT cod_ste_fk FOREIGN KEY(cod_siguientecurso)
REFERENCES curso ON DELETE SET NULL);
Tras esa definición de tabla, esta instrucción:
ALTER TABLE curso DROP PRIMARY KEY;
Produce este error:
ORA-02273: a esta clave única/primaria hacen referencia algunas claves ajenas
Para ello habría que utilizar esta instrucción:
ALTER TABLE curso DROP PRIMARY KEY CASCADE;
Esa instrucción elimina la clave secundaria antes de eliminar la principal.
También produce error esta instrucción:
ALTER TABLE curso DROP(fecha_inicio); ERROR en línea 1:
ORA-12991: se hace referencia a la columna en una restricción de multicolumna
El error se debe a que no es posible borrar una columna que forma parte de la definición de una instrucción. La solución es utilizar CASCADE CONSTRAINT elimina las restricciones en las que la columna a borrar estaba implicada:
ALTER TABLE curso DROP(fecha_inicio) CASCADE CONSTRAINTS;
Esta instrucción elimina la restricción de tipo CHECK en la que aparecía la fecha_inicio y así se puede eliminar la columna. desactivar restricciones
A veces conviene temporalmente desactivar una restricción para saltarse las reglas que impone. La
sintaxis es:
ALTER TABLE tabla DISABLE CONSTRAINT nombre [CASCADE]
La opción CASCADE hace que se desactiven también las restricciones dependientes de la que se desactivó. activar restricciones
Anula la desactivación. Formato:
ALTER TABLE tabla ENABLE CONSTRAINT nombre [CASCADE]
Sólo se permite volver a activar si los valores de la tabla cumplen la restricción que se activa. Si hubo desactivado en cascada, habrá que activar cada restricción individualmente. cambiar de nombre a las restricciones
Para hacerlo se utiliza este comando:
ALTER TABLE table RENAME CONSTRAINT
nombreViejo TO nombreNuevo;
Mostrar restricciones
La vista del diccionario de datos USER_CONSTRAINTS permite identificar las restricciones colocadas por el usuario (ALL_CONSTRAINTS permite mostrar las restricciones de todos los usuarios, pero sólo está permitida a los administradores). En esa vista aparece toda la información que el diccionario de datos posee sobre las restricciones. En ella tenemos las siguientes columnas interesantes:
COLUMNA TIPO DE DATOS DESCRIPCIÓN
OWNER VARCHAR2(20) Indica el nombre del usuario propietario de la tabla
CONSTRAINT_NAME VARCHAR2(30) Nombre de la restricción
CONSTRAINT_NAME VARCHAR2(1) Tipo de restricción:
* C. De tipo CHECK
* P. PRIMARY KEY
* R. FOREIGN KEY
U. UNIQUE
TABLE_NAME VARCHAR2(30) Nombre de la tabla en la que se encuentra la restricción
Privilegios del Sistema
Los roles de sistema se utilizan para distribuir la disponibilidad de los comandos del sistema utilizados para gestionar la BD. Los privilegios más comunes están en la siguiente tabla. En ella se distinguen entre privilegios de manejo de objetos y de gestión de la BD. La palabra clave ANY significa que ese usuario tiene el privilegio para todos los esquemas en la BD. Hay que hacer notar que ANY y PUBLIC no son sinónimos.
CAPACIDADES PRIVILEGIO
CREATE ANY INDEX Crear cualquier índice.
CREATE [PUBLIC] SYNONYM Crear sinónimos [públicos].
CREATE [PUBLIC] SYNONYM Crear sinónimos [públicos].
CREATE [ANY] TABLE Crear tablas. El usuario debe tener cuota en el espacio de tablas, o ha de tener asignado el privilegio UNLIMITED TABLESPACE.
CREATE [ANY] VIEW Crear vistas.
ALTER ANY INDEX Alterar cualquier índice.
ALTER ANY TABLE Alterar cualquier tabla
DROP ANY INDEX Borrar cualquier índice.
DROP ANY SYNONYM Borrar cualquier sinónimo.
DROP PUBLIC SYNONYM Borrar sinónimos públicos.
DROP ANY VIEW Borrar cualquier vista.
DROP ANY TABLE Borrar cualquier tabla.
SELECT ANY TABLE Efectuar selecciones de cualquier tabla o vista.
INSERT ANY TABLE Insertar en cualquier tabla o vista.
DELETE ANY TABLE Borrar filas de cualquier tabla o vista, y también truncar.
ALTER SESSION Alterar los parámetros de la sesión.
CREATE SESSION Conectarse a la BD.
Gestión de la BD
CREATE PROFILE Crear perfiles de usuario.
CREATE ROLE Crear roles.
CREATE ROLLBACK SEGMENT Creación de segmentos de rollback.
CREATE TABLESPACE Crear espacios de tablas.
CREATE USER Crear usuarios.
ALTER PROFILE Alterar perfiles existentes.
DROP PROFILE Borrar un perfil existente.
DROP ANY ROLE Borrar cualquier rol.
DROP ROLLBACK SEGMENT Borrar un segmento de rollback existente.
DROP TABLESPACE Borrar un espacio de tablas.
DROP USER Borrar un usuario. Añadir CASCADE si el usuario posee objetos.
ALTER DATABASE Permite una sentencia ALTER DATABASE.
GRANT ANY PRIVILEGE Otorgar cualquiera de estos privilegios.
GRANT ANY ROLE Otorgar cualquier rol a un usario.
UNLIMITED TABLESPACE Puede usar una cantidad de almacenamiento ilimitada.
Los privilegios se pueden agrupar en roles, para así satisfacer a distintos tipos de usuarios. En la instalación se crea un rol llamado OSOPER que sirve para los operarios de la máquina donde está la BD y permite realizar copias de seguridad en frio y en caliente. Los privilegios de OSOPER son STARTUP, SHUTDOWN, ALTER DATABASE OPEN/MOUNT, ALTER DATABASE BACKUP, ARCHIVE LOG, RECOVER y RESTRICTED SESSION.
Se pueden crear nuevos roles. Por ejemplo, podemos crear un rol llamado creadorCuentas que sólo pueda crear usuarios y no pueda realizar ninguna otra operación de DBA. Las sentencias que permiten hacer esto son las siguientes:
SVRMGR> create role creadorCuentas;
Statement processed.
SVRMGR> grant create session, create user to creadorCuentas;
Statement processed.
Oracle incluye otros tres roles de sistema: CONNECT, RESOURCE y DBA, cuyos privilegios son:
ROL PRIVILEGIOS
CONNECT alter session, create session, create cluster, create table, create view, create synonym, create sequence, create database link
RESOURCE create cluster, create table, create procedure, create sequence, create trigger
DBA todos los privilegios de sistema con la opcion with admin option
Conclusiones:
A medida que avanza la tecnología de implementación y desarrollo de las aplicaciones Oracle también realiza avances. Oracle ofrece flexibilidad sin precedentes para que los clientes elijan las herramientas de aplicaciones y la arquitectura que mejor se adapta a sus requisitos sin sacrificar el desempeño, la escalabilidad, la facilidad de uso y la seguridad. Oracle incluye la integración privilegios y roles para satisfacer a diferente tipo de usuarios, Oracle se ha integrado estrechamente con muchos servicios operativos, como Active Directory, los Servicios de Información de Internet (IIS), Oracle tiene una capa lógica y otra física. La capa física consiste de archivos que residen en el disco y los componentes de la capa lógica son estructuras que mapean los datos hacia estos componentes físicos.