64
selec ORACLE: Seguridad La información dicen que es poder, y como las BD son un almacén de información también almacenan poder, por lo que han sido objeto de intentos de acceso no autorizados desde su nacimiento. Por eso, las BD se han dotado de unos mecanismos que hacen posible la gestión de la seguridad en el acceso a la información que almacenan.

ORACLE Seguridad

Embed Size (px)

Citation preview

Page 1: ORACLE Seguridad

selec

ORACLE: Seguridad

La información dicen que es poder, y como las BD son un almacén de información también almacenan poder, por lo que han sido objeto de intentos de acceso no autorizados desde su nacimiento. Por eso, las BD se han dotado de unos mecanismos que hacen posible la gestión de la seguridad en el acceso a la información que almacenan.

Page 2: ORACLE Seguridad

Índice

1 Posibilidades1.1 Seguridad de Cuentas1.2 Seguridad de Objetos1.3 Roles del Sistema

2 Implementación de Seguridad2.1 Creación de Usuarios2.2 Eliminación de Usuarios2.3 Privilegios del Sistema2.4 Perfiles de Usuario2.5 Cuentas BD sobre Cuentas SO2.6 Protegidos por   passwords 2.7 Gestionando Privilegios2.8 Listar Privilegios Otorgados

3 Encriptación de   passwords   y Trucos 3.1 Almacenamiento de   Passwords 3.2   Passwords   Imposibles 3.3 Convertirse en otro Usuario

4 Auditoría de Seguridad4.1 Auditando Conexiones4.2 Auditando Acciones4.3 Auditando Objetos4.4 Protegiendo los Registros de Auditoría

1 Posibilidades

Oracle pone al alcance del DBA varios niveles de seguridad:

Seguridad de cuentas para la validación de usuarios. Seguridad en el acceso a los objetos de la base de datos. Seguridad a nivel de sistema para la gestión de privilegios globales.

1.1 Seguridad de Cuentas

Page 3: ORACLE Seguridad

Para acceder a los datos en una BD Oracle, se debe tener acceso a una cuenta en esa BD. Cada cuenta debe tener una palabra clave o password asociada. Una cuenta en una BD puede estár ligada con una cuenta de sistema operativo. Los passwords son fijados cuando se crea un usuario y pueden ser alterados por el DBA o por el usuario mismo. La BD almacena una versión encriptada del password en una tabla del diccionario llamada dba_users. Si la cuenta en la BD está asociada a una cuenta del sistema operativo puede evitarse la comprobación del password, dándose por válida la comprobación de la identidad del usuario realizada por el SO.

1.2 Seguridad de Objetos

El acceso a los objetos de la BD se realiza via privilegios. Estos permiten que determinados comandos sean utilizados contra determinados objetos de la BD. Esto se especifica con el comando GRANT, conceder. Los privilegios se pueden agrupar formando lo que se conoce por roles. La utilización de los roles simplifica la administración de los privilegios cuando tenemos muchos usuarios. Los roles pueden ser protegidos con passwords, y pueden activarse y desactivarse dinámicamente, con lo que constituyen una capa más de seguridad en el sistema.

1.3 Roles del Sistema

Los roles se pueden utilizar para gestionar los comandos de sistema disponibles para los usuarios. Estos incluyen comandos como CREATE TABLE o SELECT ANY TABLE. Todos los usuarios que quieran acceder a la BD deben tener el rol CONNECT; aquellos que necesiten crear segmentos necesitaran el rol RESOURCE. Un usuario con el rol DBA tiene derecho para ver y manejar todos los datos de la BD. En Oracle CONNECT, RESOURCE y DBA son roles de sistema. Las acciones contra cada tipo de objeto son autorizadas por privilegios separados. Así, un usuario puede tener concedido el privilegio CREATE TABLE, pero no el ALTER TABLE.

2 Implementación de Seguridad

No se podrá acceder a la BD a menos que se acceda primero al servidor en el que la BD está ejecutándose. El primer paso en la seguridad de la BD es asegurar la plataforma en la que reside. Una vez que esto ha sido conseguido, se debe considerar la seguridad del sistema operativo. Oracle utiliza una serie de ficheros

Page 4: ORACLE Seguridad

a los que los usuario no tienen porque acceder de manera directa. Por ejemplo, los ficheros de datos o los de redo log son escritos y leidos sólo por los procesos Oracle. Así, sólo los DBAs que han creado estos ficheros necesitan acceder directamente a ellos a nivel del sistema operativo.

2.1 Creación de Usuarios

El objetivo de la creación de usuarios es establecer una cuenta segura y útil, que tenga los privilegios adecuados y los valores por defecto apropiados. En Oracle se puede especificar todo lo necesario para abrir una cuenta con el comando CREATE USER. Los parámetros que se le pueden pasar son:

Parámetro SignificadoUsername Nombre del Usuario (Esquema)

Password Palabra clave de la cuenta. Puede ser asociada directamente a una cuenta del sistema operativo.

Default Tablespace

Espacio de tablas por defecto en el que los objetos de este usuario serán creados. Esto no da al usuario derechos de crear objetos.

Temporary Tablespace

El espacio de tablas en el que se almacenarán los segmentos temporales de las ordenaciones.

Quota Espacio máximo que puede ocupar en un espacio de tablas.

Profile Asigna un perfil al usuario. Los perfiles se utilizan para restringir el uso de recursos como el tiempo de CPU.

A continuación se puede ver un ejemplo de uso del comando CREATE USER en el que se crea una cuenta para el usuario :

Grant (dar permisos)Esta sentencia sirve para dar permisos (o privilegios) a un usuario o a un rol.

Un permiso, en oracle, es un derecho a ejecutar un sentencia (system privileges) o a acceder a un objeto de otro usuario (object privileges).

El conjunto de permisos es fijo, esto quiere decir que no se pueden crear nuevos tipos de permisos.

Si un permiso se asigna a rol especial PUBLIC significa que puede ser ejecutado por todos los usuarios.

Page 5: ORACLE Seguridad

Permisos para acceder a la base de datos (permiso de sistema):

GRANT CREATE SESSION TO miusuario;Permisos para usuario de modificación de datos (permiso sobre objeto):

GRANT SELECT, INSERT, UPDATE, DELETE ON T_PEDIDOS TO miusuario;Permisos de solo lectura para todos:

GRANT SELECT ON T_PEDIDOS TO PUBLIC;

Permisos de sistema (system privileges)Los permisos de sistema mas importantes son CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE USER , ...

Sintaxis:

GRANT system_priv(s) TO {user, | role, |PUBLIC} [IDENTIFIED BY password] [WITH ADMIN OPTION] GRANT role TO {user, | role, |PUBLIC} [IDENTIFIED BY password] [WITH ADMIN OPTION] GRANT ALL PRIVILEGES TO {user, | role, |PUBLIC} [IDENTIFIED BY password] [WITH ADMIN OPTION]Podemos obtener la lista de permisos del sistema asi:

select * from system_privilege_map;

Los permisos de sistema son auditables.

GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE PROCEDURE,CREATE SYNONYM, ALTER TABLE, ALTER VIEW, ALTER PROCEDURE,ALTER SYNONYM, DROP TABLE, DROP VIEW, DROP PROCEDURE,DROP SYNONYM TO programador;

Permisos sobre objetos (object privileges)Los permisos sobre objetos mas importantes son: SELECT, UPDATE, INSERT, DELETE, ALTER, DEBUG, EXECUTE, INDEX, REFERENCES

GRANT object_priv [(column, column,...)] ON [schema.]object TO {user, | role, |PUBLIC} [WITH GRANT OPTION] [WITH HIERARCHY OPTION] GRANT ALL PRIVILEGES [(column, column,...)] ON [schema.]object TO {user, | role, |PUBLIC} [WITH GRANT OPTION] [WITH HIERARCHY OPTION] GRANT object_priv [(column, column,...)] ON DIRECTORY directory_name

Page 6: ORACLE Seguridad

TO {user, | role, |PUBLIC} [WITH GRANT OPTION] [WITH HIERARCHY OPTION] GRANT object_priv [(column, column,...)] ON JAVA [RE]SOURCE [schema.]object TO {user, | role, |PUBLIC} [WITH GRANT OPTION] [WITH HIERARCHY OPTION]

Con la opcion WITH HIERARCHY OPTION damos permisos sobre todos los subojetos, incluso sobre los que se creen despues de ejecutar el GRANT.

Con la opción WITH GRANT OPTION damos permiso para que el que los recibe los pueda a su vez asignar a otros usuarios y roles.

La opción "GRANT ALL PRIVILEGES..." se puede escribir tambien como "GRANT ALL..."

Podemos obtener la lista de permisos de las tablas asi:

select * from all_tab_privs_made;

NotasLos permisos del sistema pueden ser:

CREATE SESSION - Permite conectar a la base de datos UNLIMITED TABLESPACE - Uso de espacio ilimitado del tablespace. SELECT ANY TABLE - Consultas en tables, views, or mviews en cualquier esquema UPDATE ANY TABLE - Actualizar filas en tables and views en cualquier esquema INSERT ANY TABLE - Insertar filas en tables and views en cualquier esquema Permisos de administrador para CREATE, ALTER o DROP: cluster, context, database, link, dimension, directory, index, materialized view, operator, outline, procedure, profile, role, rollback segment, sequence, session, synonym, table, tablespace, trigger, type, user, view. Los roles predefindos son:

SYSDBA, SYSOPER, OSDBA, OSOPER, EXP_FULL_DATABASE, IMP_FULL_DATABASE SELECT_CATALOG_ROLE, EXECUTE_CATALOG_ROLE, DELETE_CATALOG_ROLE AQ_USER_ROLE, AQ_ADMINISTRATOR_ROLE - manejo de la cola SNMPAGENT - Agente inteligente. RECOVERY_CATALOG_OWNER - rman HS_ADMIN_ROLE - servicios heterogeneos

mas cualquier rol de usuario que halla disponible Los roles CONNECT, RESOURCE y DBA ya no deben usarse (aunque estan soportados).

Es posible asignar varios Object_Privs en un solo comando GRANT.

Page 7: ORACLE Seguridad

GRANT SELECT (empno), UPDATE (sal) ON pepe.tabla TO miusuarioPermisos del rol SYSDBA:

CREATE DATABASE CREATE SPFILE STARTUP and SHUTDOWN ALTER DATABASE: open, mount, back up, or change character set ARCHIVELOG and RECOVERY Includes the RESTRICTED SESSION privilegePermisos del rol SYSOPER:

CREATE SPFILE STARTUP and SHUTDOWN ALTER DATABASE: open, mount, back up ARCHIVELOG and RECOVERY Includes the RESTRICTED SESSION privilege

Cada tipo de objeto tiene su propio conjunto de permisos:

Tables: select, insert, update, delete, alter, debug, flashback, on commit refresh, query rewrite, references, all

Views: select, insert, update, delete, under, references, flashback, debug

Sequence: alter, select

Packeges, Procedures, Functions (Java classes, sources...): execute, debug

Materialized Views: delete, flashback, insert, select, update

Directories: read, write

Libraries:execute

User defined types: execute, debug, under

Operators: execute

Indextypes: execute

Create User

Esta sentencia sirve para crear un usuario oracle.

Un usuario es un nombre de acceso a la base de datos oracle. Normalmente va asociado a una clave (password).

Page 8: ORACLE Seguridad

Lo que puede hacer un usuario una vez ha accedido a la base de datos depende de los permisos que tenga asignados ya sea directamente (GRANT) como sobre algun rol que tenga asignado (CREATE ROLE).

El perfil que tenga asignado influye en los recursos del sistema de los que dispone un usuario a la hora de ejecutar oracle (CREATE PROFILE).

La sintaxis es:

CREATE USER username IDENTIFIED {BY password | EXTERNALLY | GLOBALLY AS 'external_name'} options;

Donde options: DEFAULT TABLESPACE tablespace TEMPORARY TABLESPACE tablespace QUOTA int {K | M} ON tablespace QUOTA UNLIMITED ON tablespace PROFILE profile_name PASSWORD EXPIRE ACCOUNT {LOCK|UNLOCK}

Crea un usuario sin derecho a guardar datos o crear objetos:

CREATE USER usuariolimitado IDENTIFIED BY miclavesecreta;

Crea un usuario con todos los derechos para guardar datos o crear objetos:

DROP USER miusuario CASCADE;

CREATE USER miusuario IDENTIFIED BY miclavesecreta DEFAULT TABLESPACE data TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON data;

CREATE ROLE programador;

GRANT CREATE session, CREATE table, CREATE view, CREATE procedure,CREATE synonym, ALTER table, ALTER view, ALTER procedure,ALTER synonym, DROP table, DROP view, DROP procedure,DROP synonym, TO conn;

GRANT programador TO miusuario;

Es neceario crear el usuario antes de asignar permisos con GRANT o un ROLE por defecto.

Si no se especifica un perfil, se aplica el perfil por defecto de la BD, que se llama DEFAULT y tiene asignados todos los límites a UNLIMITED.

Si no se especifíca una cuota el usuario no puede crear objetos.

Create Role

Page 9: ORACLE Seguridad

Esta sentencia sirve para crear un rol de usuario.

Un rol es una forma de agrupar permisos (o privilegios) para asignarlos luego a los usuarios.

Cada usuario puede tener varios roles.

Ejemplo de creación de un rol:

CREATE ROLE MI_PROPIO_ROLE

Crea un rol sin password:

CREATE ROLE role NOT IDENTIFIED

Crea un rol con password:

CREATE ROLE role IDENTIFIED BY password

Crea un rol de aplicación:

CREATE ROLE role IDENTIFIED USING [schema.]package

Crea un rol basado en uno del S.O.:

ALTER ROLE role IDENTIFIED EXTERNALLY

Crea un rol basado en el servicio de directorio:

ALTER ROLE role IDENTIFIED GLOBALLY

Ejemplo para crear un script que asigna todos los permisos de actual esquema

SELECT decode(object_type,'TABLE','GRANT SELECT, INSERT, UPDATE, DELETE , REFERENCES ON'||&OWNER||'.','VIEW','GRANT SELECT ON '||&OWNER||'.','SEQUENCE','GRANT SELECT ON '||&OWNER||'.','PROCEDURE','GRANT EXECUTE ON '||&OWNER||'.','PACKAGE','GRANT EXECUTE ON '||&OWNER||'.','FUNCTION','GRANT EXECUTE ON'||&OWNER||'.' )||object_name||' TO MI_PROPIO_ROLE ;' FROM user_objects WHEREOBJECT_TYPE IN ( 'TABLE', 'VIEW', 'SEQUENCE', 'PROCEDURE', 'PACKAGE','FUNCTION')ORDER BY OBJECT_TYPE

Create profile

Esta sentencia sirve para crear un perfil de usuario.

Un perfil de usuario es una forma de limitar los recursos que puede utilizar un usuario.

Cada usuario puede tener un único perfil.

Antes de asignar un perfil a un usuario es necesario que este perfil exista en la base de datos.

Un perfil se asigna en la creación de un usuario CREATE   USER  o modificandolo ALTER USER.

Un ejemplo de script sería:

Page 10: ORACLE Seguridad

CREATE PROFILE app_user LIMIT

SESSIONS_PER_USER 2 -- CPU_PER_SESSION 10000 -- decimas de segundo CPU_PER_CALL 1 -- decimas de segundo CONNECT_TIME UNLIMITED -- minutos IDLE_TIME 30 -- minutos LOGICAL_READS_PER_SESSION DEFAULT -- DB BLOCKS LOGICAL_READS_PER_CALL DEFAULT -- DB BLOCKS -- COMPOSITE_LIMIT DEFAULT -- PRIVATE_SGA 20M -- FAILED_LOGIN_ATTEMPTS 3 -- PASSWORD_LIFE_TIME 30 -- dias PASSWORD_REUSE_TIME 12 -- PASSWORD_REUSE_MAX UNLIMITED -- PASSWORD_LOCK_TIME DEFAULT -- dias PASSWORD_GRACE_TIME 2 -- dias PASSWORD_VERIFY_FUNCTION NULL;

Los recursos que limitamos son recursos del kernel: uso de la CPU, duración de sesion,...

Y tambien limites de uso de las claves de acceso (passwords): duración, intentos de acceso, reuso, ...

Por ejemplo:

ALTER PROFILE default LIMIT IDLE_TIME 20;

Limita el perfil por defecto a 20 minutos. IDLE_TIME: Es el tiempo que puede estar una sesión sin hacer nada antes de ser cerrada.

2.2 Eliminación de Usuarios

Los usuarios pueden ser eliminados de la BD utilizando el comando DROP USER. Este comando tiene un único parámetro, CASCADE, el cual permite borrar todos los objetos del usuario antes de eliminar el usuario.

A continuación un ejemplo en el que eliminamos al usuario Pérez:

drop user perez cascade;

Si a continuación se crea otro usuario con el mismo nombre no hereda los objetos del anterior usuario con ese nombre. La razón estriba en que Oracle asigna a cada cuenta un número además del nombre, y utiliza ese número para determinar el propietario de todos los objetos que crea esa cuenta, y no utiliza el nombre sino

Page 11: ORACLE Seguridad

para la comunicación con los usuarios. De este modo al crear un nuevo usuario, aunque sea con el mismo nombre, no puede heredar los objetos que antes eran de otro usuario con el mismo nombre.

2.3 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.

Privilegio Capacidades

Manejo de Objetos

...

CREATE ANY INDEX Crear cualquier índice.

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 tablaDROP 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.

Page 12: ORACLE Seguridad

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.ALTER ANY ROLE Alterar cualquier rol.ALTER ROLLBACK SEGMENT Alterar segmentos de rollback.

ALTER TABLESPACE Alterar espacios de tablas.

ALTER USER Alterar usuarios.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.

DROP PROFILE Borrar un perfil existente.

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:

Page 13: ORACLE Seguridad

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

CONNECTalter 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

2.4 Perfiles de Usuario

Los perfiles se utilizan para limitar la cantidad de recursos del sistema y de la BD disponibles para un usuario. Si no se definen perfiles para un usuario se utiliza el perfil por defecto, que especifica recursos ilimitados.

Los recursos que pueden ser limitados via perfil son los siguientes:

Recurso DescripciónSESSIONES_PER_USER

El número de sesiones concurrentes que un usuario puede tener en una instancia.

CPU_PER_SESSION El tiempo de CPU, en centenas de segundos, que una sesión puede utilizar.

CONNECT_TIME El número de minutos que una sesión puede permanecer activa.

IDLE_TIME El número de minutos que una sesión puede permanecer sin que sea utilizada de manera activa.

LOGICAL_READS_PER_SESSION

El número de bloques de datos que se pueden leer en una sesión.

LOGICAL_READS_PER_CALL

El número de bloques de datos que se pueden leer en una operación.

PRIVATE_SGA La cantidad de espacio privado que una sesión puede reservar en la zona de SQL compartido de la SGA.

COMPOSITE_LIMIT El número de total de recursos por sesión, en unidades de servicio. Esto resulta de un calculo ponderado

Page 14: ORACLE Seguridad

de CPU_PER_SESSION, CONNECT_TIME,LOGICAL_READS_PER_SESSION y PRIVATE_SGA, cuyos pesos se pueden variar con el comando ALTER RESOURCE COST.

Los perfiles se pueden crear via el comando CREATE PROFILE, y se pueden modificar con la sentencia ALTER PROFILE.

En general, el perfil por defecto debe ser adecuado para los usuarios normales; los usuarios con requerimientos especiales deberían tener perfiles especiales.

2.5 Cuentas BD sobre Cuentas SO

Los usuarios pueden entrar en la BD una vez que han dado un nombre de usuario y una palabra de paso. Sin embargo, es posible aprovecharse del Sistema Operativo para obtener un nivel adicional de autentificación.

La cuenta de la BD y del SO pueden relacionarse de manera que la de la BD se diferencie sólo en un prefijo de la cuenta del SO. Este prefijo se fija en el parámetro OS_AUTHENTIC_PREFIX del fichero init.ora. Por defecto esta puesto a "OPS$", pero puede tomar cualquier forma, incluso ser la cadena nula, "", con lo que no existe prefijo que diferencie las cuentas en la BD y en el SO.

Por ejemplo, consideremos la cuenta del SO llamada alu10. La correspondiente cuenta en la BD sería OPS$ALU10. Cuando el usuario alu10 está en activo en el SO, puede acceder a su cuenta OPS$ALU10 sin especificar elpassword, como se muestra a continuación:

$ sqlplus /

En este caso el carácter "/" toma el lugar de la combinación del nombre de usuario y del password que debería aparecer.

Las cuentas pueden ser creadas con passwords aunque no vaya a ser utilizado. Ya que de este modo será posible acceder a la cuenta de OPS$ALU10 desde otra cuenta diferente a la alu10 del SO. La sentencia de creación de la cuenta OPS$ALU10 puede ser la siguiente:

SVRMGR> create user ops$alu10

Page 15: ORACLE Seguridad

2> identified by 01ula 3> default tablespace users 4> temporary tablespace temp;

Así, la forma de conectarse como OPS$ALU10 desde una cuenta del SO diferente es:

$ sqlplus ops$alu10/01ula

Existen dos formas de evitar este problema. La primera es creando el usuario BD sin especificar un password, utilizando la claúsula IDENTIFIED EXTERNALLY. De esta manera evitamos la necesidad de expecificar un password para la cuenta, obligando a la conexión entre las cuentas de la BD y del SO:

SVRMGR> create user ops$alu10 2> identified externally 3> default tablespace users 4> temporary tablespace temp;

La otra manera de evitar el problema es crear una cuenta con un password imposible, aspecto este que se explicará más adelante.

2.6 Protegidos por passwords

Los passwords puede proteger tanto cuentas como roles. Los passwords se fijan a la hora de la creación de ambos y se pueden modificar con los comandos ALTER USER y ALTER ROLE, respectivamente.

No es necesario asignar un password a un rol, pero si tiene uno debe ser especificado por el usuario cuando se asigna ese rol.

2.7 Gestionando Privilegios

Los privilegios dan acceso a los usuarios a los datos que no poseen. Los roles con grupos de privilegios que facilitan la administración de los privilegios. Pero los privilegios se pueden manejar de manera explícita en algunas circunstancias.

Page 16: ORACLE Seguridad

Los privilegios se crean via el comando GRANT y son registrados en el diccionario de datos.

Los privilegios que pueden otorgarse sobre objetos son los siguientes:

Privilegio Capacidades OtorgadasSELECT Puede consultar a un objeto.

INSERT Puede insertar filas en una tabla o vista. Puede especificarse las columnas donde se permite insertar dentro de la tabla o vista.

UPDATE Puede actualizar filas en una tabla o vista. Puede especificarse las columnas donde se permite actualizar dentro de la tabla o vista.

DELETE Puede borrar filas dentro de la tabla o vista.ALTER Puede alterar la tabla.INDEX Puede crear índices de una tabla.REFERENCES Puede crear claves ajenas que referencie a esta tabla.EXECUTE Puede ejecutar un procedimieto, paquete o función.

Haciendo un privilegio PUBLIC lo hace disponible a todos los usuarios de la BD.

Aunque los privilegios se puedan otorgar individualmente, no resulta razonable basar la gestión de los privilegios en su asignación individual. La gestión de los privilegios se facilita con la utilización de los roles. A continuación se puede ver como se crean dos roles, el ALUMNOS que permite establecer una sesión, y el rol INSERTA_PEREZ que permite insertar y seleccionar en la tabla emp de perez:

SVRMGR> create role alumnos;Statement processed.SVRMGR> grant create session to alumnos;Statement processed.SVRMGR> create role inserta_perez;Statement processed.SVRMGR> grant select, insert on perez.emp to inserta_perez;Statement processed.

Se pueden asignar roles a roles:

SVRMGR> grant usuarios to inserta_perez;

Page 17: ORACLE Seguridad

Los roles pueden asignarse a los usuarios. Así, podemos asignar el rol INSERTA_PEREZ al usuario alu20:

SVRMGR> grant inserta_perez to alu20;

Los roles se pueden denegar con el comando REVOKE.

2.8 Listar Privilegios Otorgados

La información de los privilegios otorgados se almacena en el diccionario de datos. Estos datos son accesibles a través de las siguientes vistas del diccionario de datos:

Vista ContenidosDBA_ROLES Nombres de los roles y su estado del password.DBA_ROLES_PRIVS Usuarios a los que han sido otorgados roles.DBA_SYS_PRIVS Usuarios a los que han sido otorgados privilegios del sistema.

DBA_TAB_PRIVS Usuarios a los que han sido otorgados privilegios sobre objetos.

DBA_COL_PRIVS Usuarios a los que han sido otorgados privilegios sobre columnas de tablas.

ROLE_ROLE_PRIVS Roles que han sido otorgados a otros roles.ROLE_SYS_PRIVS Privilegios de sistema que han sido otorgados a roles.ROLE_TAB_PRIVS Privilegios de tabla que han sido otorgados a roles.

3 Encriptación de Passwords y Trucos

Conocer el modo en que se encriptan y se tratan los passwords puede posiblitar al DBA la realización de ciertas tareas que de otro modo le resultarían imposibles. Esto incluye el establecer passwords imposibles y la habilidad de convertirse en otro usuario.

3.1 Almacenamiento de Passwords

Cuando se especifica un password para un usuario o rol, la BD almacena la versión encriptada del mismo en el diccionario de datos. El mismo password para

Page 18: ORACLE Seguridad

diferentes usuarios genera diferentes versiones encriptadas. Éstas están compuestas por una cadena de 16 caractéres alfanuméricos (con las letras en mayúsculas).

El proceso de validación de los passwords es sencillo, ya que cuando un usuario introduce su password es encriptado y comparado lo almacenado en el diccionario de datos. Si son iguales el password es correcto; incorrecto en otro caso.

Se puede echar un vistazo a los passwords mirando en la tabla DBA_USERS:

SQL> select username, password from dba_users;

3.2 Passwords Imposibles

¿Qué puede pasar si en vez de especificar el password especificamos su versión encriptada, y esa versión encriptada no sigue las normas de generación de passwords encriptados? El resultado es que tendremos una cuenta a la que nunca se podrá entrar, ya que ningún password generará la versión encriptada que está almacenada en el diccionario de datos.

Esto se puede hacer utilizando una forma no comentada del comando CREATE USER como se indica a continuación:

SVRMGR> create user perez identified by values '123AB456CD789EF0';

Una buena manera de crear una versión encriptada que no coincida con ningún password es poner menos de 16 caractéres, de esta manera tendremos un password imposible.

Los efectos de este comando se ven cuando el usuario perez intenta acceder introduciendo su password, desde otra cuenta por ejemplo. Como la versión encriptada del password no va a coincidir con la almacenada, se obliga al usuario perez a entrar desde su cuenta del SO, proceso que no comprueba el password de la BD. De este modo se impide que un usuario pueda suplantar a otro desde una cuenta de SO no apropiada.

Page 19: ORACLE Seguridad

3.3 Convertirse en otro Usuario

Como se puede fijar la versión encriptada de un password, es posible tomar una cuenta temporalmente, cambiando su password original, para restaurarlo a continuación. Esto permite que el DBA se convierta temporalmente en otro usuario.

Esto se puede hacer siguiendo los siguientes pasos:

1. Consultar la tabla DBA_USERS para conseguir la versión encriptada del password actual del usuario que vamos a utilizar.

2. Generar el comando alter user que permita restaurar el password original, guardandolo en un fichero para su posterior ejecución.

3. Cambiar el password de la cuenta y acceder a ella.4. Cuando el trabajo como el otro usuario haya acabado, ejecutar el

comando alter user creado antes para restaurar el valor original del password.

Esto se puede ver en el siguiente script:

REM *REM * Este script genera los comandos necesarios para convertirseREM * temporalmente en otro usuario.REM *REM * Solo para DBAsREM * set pagesize 0set verify offset feedback offset echo off REM *REM * Preguntar por el usuario a manipular.REM * accept user prompt 'Usuario? 'set termout off

Page 20: ORACLE Seguridad

REM *REM * Crear el fichero llamado reset.sqlREM * spool reset.sql REM *REM * seleccionar el password encriptado de DBA_USERS.REM * select 'alter user &&user identified by values '||''''||password||''''||';'from dba_users where username= upper('&&user'); prompt ! rm reset.sqlprompt exit REM *REM * Cerrar el fichero llamado reset.sqlREM * spool off REM *REM * Cambiar el password a userREM * set termout onaccept clave prompt 'Nueva Clave para &&user? ' REM *REM * Cambiar la clave para el usuarioREM * alter user &&user identified by &&clave; connect &&user/&&clave; prompt ***prompt *** Ahora es &&userprompt *** No olvide ejecutar reset.sql al finalprompt ***

Page 21: ORACLE Seguridad

La ejecución de este script produce otro script llamado reset.sql con el siguiente contenido:

alter user pepe identified by values '742A081355525D4E';! rm reset.sqlexit

El script reset.sql se ejecutará con la orden

$ sqlplus system/manager @reset.sql

4 Auditoría de Seguridad

Montando el escenario, probando la auditoría de Oracle

En primer lugar accederemos a Oracle con un usuario con privilegios suficientes para crear usuarios y establecer permisos. Con este usuario crearemos un usuario en Oracle, para ello utilizaremos los cuatro comandos SQL siguientes:

CREATE USER "ALONSO" PROFILE "DEFAULT" IDENTIFIED BY "xxx" DEFAULT TABLESPACE "USERS" ACCOUNT UNLOCK;

GRANT "CONNECT" TO "ALONSO";

GRANT CREATE TABLE TO "ALONSO";

ALTER USER "RAFAEL" QUOTA 100M ON "USERS";

A continuación accederemos a Oracle con el usuario "alonso" y crearemos una tabla para las pruebas, llamada "facturas", con el comando:

create table facturas (codigo number primary key,fecha date default sysdate);

Accederemos a Oracle con un usuario con privilegios suficientes para activar sucesos de auditoría y ejecutaremos el comando:

audit session by alonso;

para auditar el inicio de sesión de los usuarios.

Y ejecutaremos el comando:

audit all on facturas by access;

Page 22: ORACLE Seguridad

para auditar auditar los cambios realizados en la tabla "facturas" (update, delete, insert, select).

Volveremos a acceder a Oracle con el usuario "alonso" y realizaremos algunas inserciones, eliminaciones y select en la tabla "facturas":

insert into facturas (codigo) values (1);

insert into facturas (codigo) values (2);

insert into facturas (codigo) values (3);

select * from facturas;

delete facturas where codigo=2;

update facturas set codigo=33 where codigo=2;

Ahora volveremos a acceder con un usuario con privilegios suficientes para consultar las vistas de auditoría y ejecutaremos la sentencia SQL para ver los accesos del usuario "alonso":

select OS_Username Usuario_SO, Username Usuario_Oracle, Terminal ID_Terminal, DECODE (Returncode, '0', 'Conectado', '1005', 'Fallo - Null', 1017, 'Fallo', Returncode) Tipo_Suceso, TO_CHAR(Timestamp, 'DD-MM-YY HH24:MI:SS') Hora_Inicio_Sesion, TO_CHAR(Logoff_Time, 'DD-MM-YY HH24:MI:SS') Hora_Fin_Sesionfrom DBA_AUDIT_SESSIONwhere Username="ALONSO";

y esta otra para ver las acciones realizadas a la tabla "facturas":

select OS_Username Usuario_SO, Username Usuario_Oracle, Terminal ID_Terminal, Owner Propietario_Objeto, Obj_Name Nombre_Objeto, Action_Name Accion, DECODE (Returncode, '0', 'Realizado', 'Returncode') Tipo_Suceso, TO_CHAR (Timestamp, 'DD-MM-YY HH24:MI:SS') Horafrom DBA_AUDIT_OBJECTwhere Obj_Name = "FACTURAS";

El SGBD Oracle tienen la capacidad de auditar todas las acciones que tienen lugar en la BD. Se pueden auditar tres tipos de acciones:

intentos de entrada en cuentas de la BD. accesos a los objetos de la BD. acciones sobre la BD.

La BD registra todos los intentos de acción, tanto los exitosos como los infructuosos, aunque es un parámetro configurable.

Page 23: ORACLE Seguridad

Para habilitar la capacidad de auditoría, se debe fijar el parámetro AUDIT_TRAIL en el fichero init.ora. Los registros de auditoría se almacenan en la tabla SYS.AUD$ o bien su gestión se deja al SO. Cuando se decide utilizar la tablaSYS.AUD$ esta debe revisarse periódicamente, por si hiciera falta truncarla debido a que su aumento de tamaño puede causar problemas de espacio en el tablespace SYSTEM. Los valores del parámetro AUDIT_TRAIL son los que se exponen en la siguiente tabla:

Valor DescripciónNONE Deshabilita la auditoríaBD Habilita la auditoría, escribiendo en la tabla SYS.AUD$.OS Habilita la auditoría, dejando al SO su gestión.

4.1 Auditando Conexiones

Todo intento de conexión con la BD será registrado. El comando para iniciar la auditoría es

SVRMGR> audit session;

Para determinar si se deben registrar sólo los éxitos, o sólo los fracasos se pueden utilizar los siguientes comandos:

SVRMGR> audit session whenever successful;SVRMGR> audit session whenever not successful;

Si los registros de auditoría se almacenan en la tabla SYS.AUD$, entonces pueden verse a través de la vista DBA_AUDIT_SESSION.

select os_username, /* nombre de usuario SO */ username, /* nombre de usuario BD */ terminal, decode(returncode,'0','Conectado', '1005','Solo username, sin password',

Page 24: ORACLE Seguridad

'1017','Password incorrecto', returncode), /* comprobacion de error */ to_char(timestamp,'DD-MON-YY HH24:MI:SS'), /* hora de entrada */ to_char(logoff_time,'DD-MON-YY HH24:MI:SS') /* hora de salida */from dba_audit_session;

Para deshabilitar la auditoria de las conexiones basta con ejecutar la siguiente sentencia:

SVRMGR> noaudit session;

4.2 Auditando Acciones

Se puede auditar cualquier acción que afecte a cualquier objeto de la BD. Para facilitar la gestión, las acciones a auditar se encuentran agrupadas según los grupos que se muestran en la siguiente tabla:

Grupo Comandos AuditadosCLUSTER Todas las sentencias que afecten a clusters.DATABASE LINK Todas las sentencias que afecten a enlaces de BD.

EXISTS Todas las sentencias que fallen porque ya existe un objeto en la BD.

INDEX Todas las sentencias que afecten a índices.

NOT EXISTS Todas las sentencias que fallen porque un determinado objeto no existe.

PROCEDURE Todas las sentencias que afecten a procedimientos.PROFILE Todas las sentencias que afecten a perfiles.PUBLIC DATABASE LINK Todas las sentencias que afecten a enlaces públicos de BD.

PUBLIC SINONYM Todas las sentencias que afecten a sinónimos públicos.ROLE Todas las sentencias que afecten a roles.ROLLBACK SEGMENT Todas las sentencias que afecten a segmentos de rollback.SEQUENCE Todas las sentencias que afecten a secuencias.SESSION Todas las sentencias de acceso a la BD.SYNONYM Todas las sentencias que afecten a sinónimos.SYSTEM AUDIT Todas las sentencias AUDIT y NOAUDIT.

Page 25: ORACLE Seguridad

SYSTEM GRANT Todas las sentencias afecten a privilegios.TABLE Todas las sentencias que afecten a tablas.TABLESPACE Todas las sentencias que afecten a espacios de tablas.TRIGGER Todas las sentencias que afecten a disparadores.USER Todas las sentencias que afecten a las cuentas de usuarios.VIEW Todas las sentencias que afecten a vistas.

Por ejemplo, para auditar todas acciones que tienen que ver con las tablas sirve el siguiente comando:

SVRMGR> audit table;

Y para deshabilitar la auditoría se utilizará el siguiente comando:

SVRMGR> noaudit table;

También se puede afinar un poco más en la auditoría fijando un usuario concreto al que seguir la pista:

SVRMGR> audit table by perez;

Cada acción auditada recibe un código numérico al que se puede acceder a través de la vista AUDIT_ACTIONS. Una vez que conocemos el código de la acción, podemos utilizarlo para determinar como dicha acción ha afectado a un objeto, consultado la vista DBA_AUDIT_OBJECT.

4.3 Auditando Objetos

Además de la auditoría de acciones sobre los objetos, se puede seguir el rastro a las operaciones de manipulación de tablas: SELECT, INSERT, UPDATE y DELETE. Estas auditorías se pueden hacer por sesión o por acceso.

Un ejemplo de sentencias de auditorías sobre objetos se puede ver en el siguiente grupo de sentencias:

SVRMGR> audit insert on perez.emp;

Page 26: ORACLE Seguridad

SVRMGR> audit all on perez.emp by session; SVRMGR> audit delete on perez.emp by access;

Los registros de auditoría se pueden ver en la misma vista DBA_AUDIT_OBJECT anteriormente mencionada.

4.4 Protegiendo los Registros de Auditoría

Los registros de la tabla SYS.AUD$ pueden ser objeto de intentos de acceso para ser eliminados ya que pueden reflejar acciones no autorizadas en la BD. Así, resulta interesante reflejar ese tipo de acciones. Esto se consigue con el siguiente comando:

SVRMGR> audit all on sys.aud$ by access;

De este modo cualquier acción contra la tabla SYS.AUD$ quedará registrado. Además, las acciones contra la tabla SYS.AUD$ sólo pueden ser borradas por los usuarios que puedan conectarse como INTERNAL.

Guía de instalación de Oracle Solaris 10 9/10: Instalaciones JumpStart personalizadas y avanzadas

Previous : Creación del archivo rules Next : Comprobación de un perfil

Creación de un perfilUn perfil consiste en un archivo de texto que define la forma de instalar el software de Solaris en un sistema. Un perfil define elementos de la instalación, como el grupo de software que se va a instalar. Cada regla especifica un perfil que define cómo hay que instalar un sistema. Se pueden crear diferentes perfiles para cada regla o usar el mismo perfil en más de una regla.

Un perfil se compone de una o varias palabras clave de perfil y de sus valores. Cada palabra clave de perfil es un comando que controla un aspecto de cómo debe instalar el programa JumpStart el software Solaris en un sistema. Por ejemplo, el valor y la palabra clave del perfil siguiente especifican que el programa JumpStart debe realizar una instalación de servidor:

Page 27: ORACLE Seguridad

system_type server

Nota –

Los perfiles de ejemplo ya se encuentran en el directorio JumpStart si ha creado el directorio JumpStart utilizando cualquiera de estos procedimientos:

Creación de un servidor de perfiles para sistemas conectados en red Creación de un disquete de perfiles para sistemas autónomos

Sintaxis de perfilesUn perfil debe contener los elementos siguientes:

La palabra clave de perfil install_type como primera entrada Una palabra clave por línea La palabra clave root_device, si los sistemas que se están actualizando por el perfil tienen más de

un sistema de archivos raíz (/) que se pueda actualizar

Un perfil puede incluir:

Texto comentado

El programa JumpStart trata como comentario cualquier texto que vaya después del símbolo # en una línea. Si una línea empieza con el símbolo #, la línea entera se tratará como un comentario.

Una o varias líneas en blanco

Para crear un perfil

1. Use un editor de texto para crear un archivo de texto. Asigne al archivo un nombre descriptivo. También puede abrir un perfil de ejemplo en el directorio JumpStart que ha creado.

Nota –

El nombre del perfil debe reflejar el uso que se le va a dar al perfil para instalar el software Solaris en un sistema. Por ejemplo, puede asignar los siguientes nombres a los perfiles: basic_install, eng_profile o user_profile.

2. Agregue al perfil palabras clave y valores de perfil.

Para obtener una lista de las palabras clave de perfil y los valores, consulte Valores y palabras clave de perfiles.

Page 28: ORACLE Seguridad

Nota –

Las palabras clave y sus valores distinguen entre mayúsculas y minúsculas.

3. Guarde el perfil en el directorio JumpStart.4. Cerciórese de que root tenga el perfil y de que los permisos se fijen en 644.5. Compruebe el perfil (opcional).

Comprobación de un perfil contiene información acerca de la comprobación de perfiles.

Ejemplos de perfilesLos ejemplos siguientes de perfiles muestran la manera de utilizar distintos valores de perfiles y palabras clave de perfil para controlar la forma de instalar el software de Solaris en un sistema. Valores y palabras clave de perfiles contiene una descripción de las palabras clave y valores de perfil.

Nota –

Si instala una agrupación raíz de ZFS de Solaris, consulte el Capítulo   9Instalación de una agrupación raíz ZFS con JumpStart para conocer las limitaciones y obtener ejemplos de perfiles.

Ejemplo 3–2 Montaje de sistemas de archivos remotos y adición y borrado de paquetes

# profile keywords profile values

# ----------------- -----------------

install_type initial_install

system_type standalone

partitioning default

filesys any 512 swap # specify size of /swap

cluster SUNWCprog

package SUNWman delete

cluster SUNWCacc

La siguiente lista describe algunas de las palabras claves y valores del ejemplo.

install_type

Page 29: ORACLE Seguridad

La palabra clave install_type es necesaria en todos los perfiles.system_type

La palabra clave system_type determina que se realizará una instalación de sistema autónomo.partitioning

Los segmentos del sistema de archivos están determinados por el software que se va a instalar, con el valor default. El tamaño del archivo swap se fija en 512 Mbytes y se instala en cualquier disco, valor any.

cluster

El grupo de software de Solaris para desarrolladores, SUNWCprog, se instala en el sistema.package

Si las páginas de comando man estándar se montan desde el servidor de archivos, s_ref, en la red; los paquetes de páginas de comando man no se deben instalar en el sistema. Los paquetes que contienen las utilidades de contabilidad del sistema están seleccionados para instalarse en éste.

Ejemplo 3–3 Montaje de sistemas de archivos remotos y adición de paquetes de terceros

# profile keywords profile values

# ----------------- -----------------

install_type initial_install

system_type standalone

partitioning default

filesys any 512 swap # specify size of /swap

cluster SUNWCprog

cluster SUNWCacc

package apache_server \

http://package.central/packages/apache timeout 5

La siguiente lista describe algunas de las palabras claves y valores del ejemplo.

install_type

La palabra clave install_type es necesaria en todos los perfiles.system_type

La palabra clave system_type determina que se realizará una instalación de sistema autónomo.partitioning

Los segmentos del sistema de archivos están determinados por el software que se va a instalar, con el valor default. El tamaño del archivo swap se fija en 512 Mbytes y se instala en cualquier disco, valor any.

cluster

Page 30: ORACLE Seguridad

El grupo de software de Solaris para desarrolladores, SUNWCprog, se instala en el sistema.package

Un paquete de terceros se instala en el sistema que se encuentra en el servidor HTTP.

Ejemplo 3–4 Especificación de la ubicación de instalación de los sistemas de archivos

# profile keywords profile values

# ---------------- -------------------

install_type initial_install

system_type standalone

partitioning explicit

filesys c0t0d0s0 auto /

filesys c0t3d0s1 auto swap

filesys any auto usr

cluster SUNWCall

La siguiente lista describe algunas de las palabras claves y valores del ejemplo.

partitioning

Los segmentos del sistema de archivos están determinados por las palabras clave filesys, valor explicit. El tamaño del sistema de archivos raíz (/) se basa en el software seleccionado, valor auto y se instala en c0t0d0s0. Se fija el tamaño del archivo swap necesario y se instala en c0t3d0s1. usr se basa en el software seleccionado y el programa de instalación determina dónde hay que instalar usr de acuerdo con el valor any.

cluster

El grupo de software de Solaris de distribución completa, SUNWCall, se instala en el sistema.

Ejemplo 3–5 Actualización e instalación de parches

# profile keywords profile values

# ---------------- -------------------

install_type upgrade

root_device c0t3d0s2

backup_media remote_filesystem timber:/export/scratch

package SUNWbcp delete

package SUNWxwman add

Page 31: ORACLE Seguridad

cluster SUNWCacc add

patch patch_list nfs://patch_master/Solaris_10/patches \

retry 5

locale de

La siguiente lista describe algunas de las palabras claves y valores del ejemplo.

install_type

El perfil actualiza un sistema mediante la reasignación del espacio en el disco. En este ejemplo, el espacio en el disco debe reasignarse porque algunos sistemas de archivos no tienen espacio suficiente para la actualización.

root_device

El sistema de archivos raíz de c0t3d0s2 se actualiza.backup_media

Se usa un sistema remoto denominado timber para realizar una copia de seguridad durante la asignación del espacio de disco. Para obtener más valores de palabra clave de medios de copia de seguridad, consulte Palabra clave de perfil   backup_media .

package

El paquete de compatibilidad binaria, SUNWbcp, no está instalado en el sistema después de la actualización.

package

El código garantiza que las páginas de comando man del sistema X Window y las utilidades de contabilidad del sistema se instalen, si no están ya instaladas. Todos los paquetes que hay ya en el sistema se actualizan automáticamente.

patch

Una lista de los parches instalados con la actualización. La lista de revisiones está ubicada en un servidor NFS denominadopatch_master bajo los directorios Solaris_10/patches. Si el montaje falla, el montaje NFS se intenta cinco veces.

entorno_nacional

Los paquetes de localización alemanes se deben instalar en el sistema.

Ejemplo 3–6 Reasignación de espacio en el disco para una actualización

# profile keywords profile values

# ---------------- -------------------

install_type upgrade

Page 32: ORACLE Seguridad

root_device c0t3d0s2

backup_media remote_filesystem timber:/export/scratch

layout_constraint c0t3d0s2 changeable 100

layout_constraint c0t3d0s4 changeable

layout_constraint c0t3d0s5 movable

package SUNWbcp delete

package SUNWxwman add

cluster SUNWCacc add

locale de

La siguiente lista describe algunas de las palabras claves y valores del ejemplo.

install_type

El perfil actualiza un sistema mediante la reasignación del espacio en el disco. En este ejemplo, el espacio en el disco debe reasignarse porque algunos sistemas de archivos no tienen espacio suficiente para la actualización.

root_device

El sistema de archivos raíz de c0t3d0s2 se actualiza.backup_media

Se usa un sistema remoto denominado timber para realizar una copia de seguridad durante la asignación del espacio de disco. Para obtener más valores de palabra clave de medios de copia de seguridad, consulte Palabra clave de perfil   backup_media .

layout_constraint

Las palabras clave layout_constraint determinan que, al reasignar el espacio en el disco para la actualización, la disposición automática puede:

Cambiar los segmentos 2 y 4. Los segmentos se pueden mover a otra ubicación y el tamaño se puede cambiar.

Mover el segmento 5. El segmento se puede mover a otra ubicación, pero su tamaño no se puede modificar.

package

El paquete de compatibilidad binaria, SUNWbcp, no se instala en el sistema después de la actualización.

package

El código garantiza que las páginas de comando man del sistema X Window y las utilidades de contabilidad del sistema se instalen, si no están ya instaladas. Todos los paquetes que hay ya en el sistema se actualizan automáticamente.

entorno_nacional

Los paquetes de localización alemanes se deben instalar en el sistema.

Page 33: ORACLE Seguridad

Ejemplo 3–7 Recuperación de un archivo de almacenamiento Solaris Flash desde un servidor HTTP

En el ejemplo siguiente, el perfil indica que el programa de instalación JumpStart personalizada recupera el archivo de almacenamiento Solaris Flash de un servidor HTTP.

# profile keywords profile values

# ---------------- -------------------

install_type flash_install

archive_location http://192.168.255.255/flasharchive/solarisarchive

partitioning explicit

filesys c0t1d0s0 4000 /

filesys c0t1d0s1 512 swap

filesys c0t1d0s7 free /export/home

La siguiente lista describe algunas de las palabras claves y valores del ejemplo.

install_type

El perfil instala un archivo de almacenamiento Solaris Flash en el sistema clónico. Se sobrescriben todos los archivos como en una instalación inicial.

archive_location

El archivo de almacenamiento Solaris Flash se recupera de un servidor HTTP.

partitioning

Los segmentos del sistema de archivos están determinados por las palabras clave filesys, valor explicit. El tamaño de raíz (/) está basado en el del archivo de almacenamiento flash de Solaris. El sistema de archivos raíz se instala en c0t1d0s0. Se fija el tamaño del archivo swap necesario y se instala en c0t1d0s1. /export/home se basa en el espacio de disco libre./export/home se instala en c0t1d0s7.

Ejemplo 3–8 Recuperación de un archivo de almacenamiento Solaris Flash desde un servidor HTTP seguro

En el ejemplo siguiente, el perfil indica que el programa de instalación JumpStart personalizada recupera el archivo de almacenamiento Solaris Flash de un servidor HTTP seguro.

# profile keywords profile values

# ---------------- -------------------

Page 34: ORACLE Seguridad

install_type flash_install

archive_location https://192.168.255.255/solarisupdate.flar

partitioning explicit

filesys c0t1d0s0 4000 /

filesys c0t1d0s1 512 swap

filesys c0t1d0s7 free /export/home

La siguiente lista describe algunas de las palabras claves y valores del ejemplo.

install_type

El perfil instala un archivo de almacenamiento Solaris Flash en el sistema clónico. Se sobrescriben todos los archivos como en una instalación inicial.

archive_location

El archivo de almacenamiento comprimido Solaris Flash se recupera de un servidor HTTP seguro.

partitioning

Los segmentos del sistema de archivos están determinados por las palabras clave filesys, valor explicit. El tamaño de raíz (/) está basado en el del archivo de almacenamiento flash de Solaris. Se fija el tamaño del archivo swap necesario y se instala enc0t1d0s1. /export/home se basa en el espacio de disco libre. /export/home se instala en c0t1d0s7.

Ejemplo 3–9 Recuperación de un archivo de almacenamiento Solaris Flash e instalación de un paquete de terceros

En el ejemplo siguiente, el perfil indica que el programa de instalación JumpStart personalizada recupera el archivo de almacenamiento Solaris Flash de un servidor HTTP.

# profile keywords profile values

# ---------------- -------------------

install_type flash_install

archive_location http://192.168.255.255/flasharchive/solarisarchive

partitioning explicit

filesys c0t1d0s0 4000 /

filesys c0t1d0s1 512 swap

filesys c0t1d0s7 free /export/home

package SUNWnew http://192.168.254.255/Solaris_10 timeout 5

La siguiente lista describe algunas de las palabras claves y valores del ejemplo.

Page 35: ORACLE Seguridad

install_type

El perfil instala un archivo de almacenamiento Solaris Flash en el sistema clónico. Se sobrescriben todos los archivos como en una instalación inicial.

archive_location

El archivo de almacenamiento Solaris Flash se recupera de un servidor HTTP.

partitioning

Los segmentos del sistema de archivos están determinados por las palabras clave filesys, valor explicit. El tamaño de raíz (/) está basado en el del archivo de almacenamiento flash de Solaris. El sistema de archivos raíz se instala en c0t1d0s0. Se fija el tamaño del archivo swap necesario y se instala en c0t1d0s1. /export/home se basa en el espacio de disco libre./export/home se instala en c0t1d0s7.

package

El paquete SUNWnew se agrega desde el directorio Solaris_10 del servidor HTTP 192.168.254.255.

Ejemplo 3–10 Recuperación de un archivo de almacenamiento diferencial Solaris Flash desde un servidor NFS

En el ejemplo siguiente, el perfil indica que el programa de instalación JumpStart personalizada recupera el archivo de almacenamiento Solaris Flash de un servidor NFS. La palabra clave flash_update indica que éste es un archivo de almacenamiento diferencial. Un archivo de almacenamiento diferencial sólo instala las diferencias entre las dos imágenes.

# profile keywords profile values

# ---------------- -------------------

install_type flash_update

archive_location nfs installserver:/export/solaris/flasharchive \

/solarisdiffarchive

no_master_check

La siguiente lista describe algunas de las palabras claves y valores del ejemplo.

install_type

El perfil instala un archivo de almacenamiento diferencial Solaris Flash en el sistema clónico. Sólo se instalan los archivos que especifica el archivo de almacenamiento.

archive_location

El archivo de almacenamiento Solaris Flash se recupera de un servidor NFS.

no_master_check

Page 36: ORACLE Seguridad

No se comprueba en el sistema clónico una imagen válida del sistema. La imagen válida del sistema se habría construido desde el sistema principal original.

Ejemplo 3–11 Creación de un entorno de inicio vacío

En el ejemplo siguiente, el perfil indica que el programa de instalación JumpStart personalizada crea un entorno de inicio vacío. Un entorno de inicio vacío no contiene ningún sistema de archivos y no se produce ninguna copia del entorno de inicio actual. Este entorno de inicio vacío se puede llenar posteriormente con un archivo de almacenamiento Solaris Flash y después activar.

# profile keywords profile values

# ---------------- -------------------

install_type initial_install

system_type standalone

partitioning explicit

filesys c0t0d0s0 auto /

filesys c0t3d0s1 auto swap

filesys any auto usr

cluster SUNWCall

bootenv createbe bename second_BE \

filesystem /:/dev/dsk/c0t1d0s0:ufs \

filesystem -:/dev/dsk/c0t1d0s0:swap \

filesystem /export:shared:ufs

La siguiente lista describe algunas de las palabras claves y valores del ejemplo.

partitioning

Los segmentos del sistema de archivos están determinados por las palabras clave filesys, valor explicit. El tamaño del sistema de archivos raíz (/) se basa en el software seleccionado, valor auto y se instala en c0t0d0s0. Se fija el tamaño del archivo swap necesario y se instala en c0t3d0s1. usr se basa en el software seleccionado y el programa de instalación determina dónde hay que instalar usr de acuerdo con el valor any.

cluster

El grupo de software de Solaris de distribución completa, SUNWCall, se instala en el sistema.bootenv createbe

Se configura un entorno de inicio vacío e inactivo en el disco c0t1d0. Se crean los sistemas de archivos raíz (/), de intercambio y/export, pero se dejan vacíos. Este segundo entorno de inicio se puede instalar más adelante con un archivo de almacenamiento Solaris Flash. A continuación se puede activar el nuevo entorno de inicio para que pase a ser el nuevo entorno de inicio.

Para conocer los valores de la palabra clave y una explicación sobre el uso de la misma, consulte estas referencias:

Page 37: ORACLE Seguridad

Para obtener descripciones de los valores de las palabras clave, consulte Valores y palabras clave de perfiles.

Para obtener información acerca de la utilización de Actualización automática de Solaris que crea, actualiza y activa entornos de inicio inactivos, consulte el Capítulo 2,   Actualización automática de Solaris (descripción general)   de   Guía de instalación de Oracle Solaris 10 9/10: Actualización automática de Solaris y planificación de la actualización.

Para obtener información acerca de la utilización de un archivo de almacenamiento Solaris Flash, consulte el Capítulo 1,   Solaris Flash (descripción general)   de   Guía de instalación de Oracle Solaris 10 9/10: archivos de almacenamiento de Solaris (creación e instalación).

Ejemplo 3–12 Creación de volúmenes RAID-1 cuando se instala un archivo de almacenamiento Solaris Flash

En el siguiente ejemplo, el perfil indica que el programa JumpStart utiliza la tecnología Solaris Volume Manager para crear volúmenes RAID-1 (reflejos) para los sistemas de archivos raíz (/), swap, /usr y /export/home. Un archivo de almacenamiento Solaris Flash se instala en el entorno de inicio.

# profile keywords profile values

# ---------------- -------------------

install_type flash_install

arhcive_location nfs server:/export/home/export/flash.s10.SUNWCall

partitioning explicit

filesys mirror:d10 c0t0d0s0 c0t1d0s0 4096 /

filesys mirror c0t0d0s1 2048 swap

filesys mirror:d30 c0t0d0s3 c0t1d0s3 4096 /usr

filesys mirror:d40 c0t0d0s4 c0t1d0s4 4096 /usr

filesys mirror:d50 c0t0d0s5 c0t1d0s5 free /export/home

metadb c0t1d0s7 size 8192 count 3

La siguiente lista describe algunas de las palabras claves y valores del ejemplo.

install_type

El perfil instala un archivo de almacenamiento Solaris Flash en el sistema clónico. Se sobrescriben todos los archivos como en una instalación inicial.

archive_location

El archivo de almacenamiento Solaris Flash se recupera de un servidor NFS.

partitioning

Los segmentos del sistema de archivos están determinados por las palabras clave filesys, valor explicit.

filesys

Page 38: ORACLE Seguridad

Se crea el sistema de archivos raíz (/) y se refleja en los segmentos c0t1d0s0 y c0t0d0s0. El tamaño del sistema de archivos raíz (/) queda establecido en 4096 MB. El volumen RAID-1 que refleja c0t1d0s0 y c0t0d0s0 recibe el nombre de d10.

filesys

Se crea el sistema de archivos swap, se refleja en el segmento c0t0d0s1 y se le otorga un tamaño de 2048 MB. El programa JumpStart personalizado asigna un nombre a los dos reflejos.

filesys

Se crea el sistema de archivos /usr y se refleja en los segmentos c0t1d0s3 y c0t0d0s3. El tamaño del sistema de archivos/usr queda establecido en 4096 Mbytes. El volumen RAID-1 se denomina d30.

filesys

Se crea el sistema de archivos /usr y se refleja en los segmentos c0t1d0s4 y c0t0d0s4. El tamaño del sistema de archivos/usr queda establecido en 4096 Mbytes. El volumen RAID-1 se denomina d40.

metadb

Se instalan tres repeticiones de bases de datos de estado (metadbs) en el segmento c0t1d0s7 y se les otorga un tamaño de 8192 bloques (4 Mbytes).

Para obtener una descripción general sobre la creación de sistemas de archivos reflejados durante la instalación, consulte el Capítulo 9, Creación de volúmenes RAID-1 (reflejos) durante la instalación (información general)   de   Guía de instalación de Oracle Solaris 10 9/10: planificación de la instalación y la actualización.

Para obtener información sobre las directrices y los requisitos para crear sistemas de archivos reflejados, consulte el Capítulo 10, Creación de volúmenes RAID-1 (reflejos) durante la instalación (planificación)   de   Guía de instalación de Oracle Solaris 10 9/10: planificación de la instalación y la actualización.

Para obtener descripciones de los valores de palabra clave, consulte Palabra clave   filesys   (creación de volúmenes RAID-1) y Palabra clave de perfil   metadb   (creación de repeticiones de bases de datos de estado).

Ejemplo 3–13 Creación de un volumen RAID-1 para reflejar el sistema de archivos raíz

En el ejemplo siguiente, el perfil indica que el programa de instalación JumpStart personalizada utiliza la tecnología de Solaris Volume Manager para crear un volumen RAID-1 (reflejo) en el sistema de archivos raíz (/).

# profile keywords profile values

# ---------------- -------------------

install_type initial_install

cluster SUNWCXall

filesys mirror:d30 c0t1d0s0 c0t0d0s0 /

filesys c0t0d0s3 512 swap

metadb c0t0d0s4 size 8192 count 4

metadb c0t1d0s4 size 8192 count 4

Page 39: ORACLE Seguridad

La siguiente lista describe algunas de las palabras claves y valores del ejemplo.

cluster

El grupo de distribución completa del software de Solaris más OEM, SUNWCXall, se instala en el sistema.

filesys

Se crea el sistema de archivos raíz (/) y se refleja en los segmentos c0t1d0s0 y c0t0d0s0. El volumen RAID-1 que reflejac0t1d0s0 y c0t0d0s0 recibe el nombre de d30. El programa de instalación JumpStart personalizada asigna nombres a los dos subreflejos.

filesys

Se crea el sistema de archivos swap, se refleja en el segmento c0t0d0s3 y se le otorga un tamaño de 512 MB.

metadb

Se instalan cuatro repeticiones de bases de datos de estado (metadbs) en el segmento c0t0d0s4 y se les otorga un tamaño de 8192 bloques (4 MB).

metadb

Se instalan cuatro repeticiones de bases de datos de estado (metadbs) en el segmento c0t1d0s4 y se les otorga un tamaño de 8192 bloques (4 MB).

Para obtener una descripción general sobre la creación de volúmenes RAID-1 durante la instalación, consulte el Capítulo 9,   Creación de volúmenes RAID-1 (reflejos) durante la instalación (información general)   de   Guía de instalación de Oracle Solaris 10 9/10: planificación de la instalación y la actualización.

Para saber cuáles son las directrices y los requisitos para la creación de volúmenes RAID-1, consulte el Capítulo 10,   Creación de volúmenes RAID-1 (reflejos) durante la instalación (planificación)   de   Guía de instalación de Oracle Solaris 10 9/10: planificación de la instalación y la actualización.

Para obtener descripciones sobre valores de palabras clave, consulte Palabra clave   filesys   (creación de volúmenes RAID-1) yPalabra clave de perfil   metadb   (creación de repeticiones de bases de datos de estado).

Ejemplo 3–14 Creación de volúmenes RAID-1 para reflejar varios sistemas de archivos

En el ejemplo siguiente, el perfil indica que el programa de instalación JumpStart personalizado utiliza la tecnología de Solaris Volume Manager para crear volúmenes RAID-1 (reflejos) en los sistemas de archivos raíz (/), de intercambio y /usr.

# profile keywords profile values

# ---------------- -------------------

install_type initial_install

cluster SUNWCXall

filesys mirror:d100 c0t1d0s0 c0t0d0s0 200 /

filesys c0t1d0s5 500 /var

filesys c0t0d0s5 500

filesys mirror c0t0d0s1 512 swap

Page 40: ORACLE Seguridad

metadb c0t0d0s3 size 8192 count 5

filesys mirror c0t1d0s4 c0t0d0s4 2000 /usr

filesys c0t1d0s7 free /export/home

filesys c0t0d0s7 free

La siguiente lista describe algunas de las palabras claves y valores del ejemplo.

cluster

El grupo de distribución completa del software de Solaris más OEM, SUNWCXall, se instala en el sistema.

filesys

Se crea el sistema de archivos raíz (/) y se refleja en los segmentos c0t1d0s0 y c0t0d0s0. El tamaño del sistema de archivos raíz (/) queda establecido en 200 MB. El volumen RAID-1 que refleja c0t1d0s0 y c0t0d0s0 recibe el nombre de d100.

filesys

El sistema de archivos /var está instalado en el segmento c0t1d0s5 y tiene un tamaño de 500 MB. Se crea el sistema de archivos raíz (/) y se refleja en los segmentos c0t1d0s0 y c0t0d0s0. El tamaño del sistema de archivos raíz (/) queda establecido en 200 MB. El volumen RAID-1 que refleja c0t1d0s0 y c0t0d0s0 recibe el nombre de d100.

filesys

Se crea el sistema de archivos swap, se refleja en el segmento c0t0d0s1 y se le otorga un tamaño de 512 MB. El programa JumpStart personalizado asigna un nombre a los dos reflejos.

metadb

Se instalan cinco repeticiones de bases de datos de estado (metadbs) en el segmento c0t0d0s3 y se les otorga un tamaño de 8192 bloques (4 MB).

filesys

Se crea el sistema de archivos /usr y se refleja en los segmentos c0t1d0s4 y c0t0d0s4. El tamaño del sistema de archivos/usr queda establecido en 2000 MB. El programa JumpStart personalizado asigna un nombre a los dos reflejos.

Para obtener una descripción general sobre la creación de sistemas de archivos reflejados durante la instalación, consulte el Capítulo 9, Creación de volúmenes RAID-1 (reflejos) durante la instalación (información general)   de   Guía de instalación de Oracle Solaris 10 9/10: planificación de la instalación y la actualización.

Para obtener información sobre las directrices y los requisitos para crear sistemas de archivos reflejados, consulte el Capítulo 10, Creación de volúmenes RAID-1 (reflejos) durante la instalación (planificación)   de   Guía de instalación de Oracle Solaris 10 9/10: planificación de la instalación y la actualización.

Para obtener descripciones de los valores de palabra clave, consulte Palabra clave   filesys   (creación de volúmenes RAID-1) y Palabra clave de perfil   metadb   (creación de repeticiones de bases de datos de estado).

Ejemplo 3–15 x86: Uso de la palabra clave fdisk

Page 41: ORACLE Seguridad

# profile keywords profile values

# ---------------- -------------------

install_type initial_install

system_type standalone

fdisk c0t0d0 0x04 delete

fdisk c0t0d0 solaris maxfree

cluster SUNWCall

cluster SUNWCacc delete

La siguiente lista describe algunas de las palabras claves y valores del ejemplo.

fdisk

Todas las particiones fdisk de tipo DOSOS16 (04 hexadecimal) se borran del disco c0t0d0.fdisk

Una partición fdisk de Solaris se crea en el espacio libre más grande contiguo en el disco c0t0d0.

cluster

El grupo de software de distribución completa, SUNWCall, se instala en el sistema.cluster

Las utilidades de contabilidad del sistema, SUNWCacc, no se instalan en el sistema.

Cómo activar y desactivar el modo de archive log de una base de datos Oracle 10G

Mostramos cómo activar y desactivar el modo de archivelog (archivado automático) de una base de datos Oracle Database 9i. Utilizando "SQL*Plus" y el comando "alter database archivelog".

Cómo activar el modo de archive log (archivado automático) de una base de datos Oracle

Este manual muestra y explica cómo activar el modo de archivelog de una base de datos Oracle

Abriremos la aplicación SQL Plus de Oracle desde una ventana de MS-DOS ("Inicio" - "Ejecutar" - "cmd"):

sqlplus /nolog

Nos conectamos con un usuario con suficientes privilegios a la base de datos Oracle a la que queramos activarle el modo Archive Log (ARCHIVELOG), con el comando:

connect usuario/contraseña@NOMBRE_BASE_DATOS as sysdba

Page 42: ORACLE Seguridad

Si ejecutamos este comando y la base de datos está en modo OPEN (abierta):

alter database archivelog;

Nos dará el siguiente error:

alter database archivelog*ERROR at line 1:ORA-01126: database must be mounted EXCLUSIVE and not open for this operation

Indicando que para poder cambiar la base de datos Oracle a modo archivado (archive log) hay que iniciarla en modo "mount" (montado). Para ello hay que detenerla e iniciarla con

los siguientes comandos:

shutdown immediate;

Resultado comando:

Database closed.Database dismounted.ORACLE instance shut down.

La iniciamos en modo "mount" con el comando:

startup mount;

Resultado comando:

ORACLE instance started.Total System Global Area 135338868 bytes

Fixed Size 453492 bytesVariable Size 109051904 bytes

Database Buffers 25165824 bytesRedo Buffers 667648 bytes

Database mounted.

Para cambiar a modo archivado ejecutaremos el siguiente comando:

alter database archivelog;

Resultado comando:

Database altered.

Page 43: ORACLE Seguridad

Volveremos a inciar la base de datos:

alter database open;

Resultado comando:

Database altered.

Para activar el archivado automático comprobamos el valor del parámetro "log_archive_start", si está a "false" lo pondremos a "true". Para consultar el valor actual

del parámetro ejecutaremos el siguiente comando:

show parameter log_archive_start;

Devolverá el siguiente resultado:

NAME TYPE VALUE------------------- -------- --------log_archive_start boolean FALSE

Modificaremos el parámetro "log_archive_start" a "true" con el siguiente comando:

alter system set LOG_ARCHIVE_START=TRUE SCOPE=spfile;

Resultado comando:

System altered.

Al ejecutar "SCOPE=spfile" haremos que los cambios se guarden definitivamente.

Para que los cambios tengan efecto es recomendable parar y volver a iniciar la base de datos:

shutdown immediate;

Iniciaremos la base de datos en modo normal:

startup;

Notas:

* Para comprobar en qué modo está la base de datos:

select log_mode from v$database;

Resultado:

Page 44: ORACLE Seguridad

LOG_MODE-------------------------NOARCHIVELOG (está en modo no archivado)

select log_mode from v$database;

LOG_MODE--------------------ARCHIVELOG (está en modo archivado)

Otra forma:

archive log list;

Resultado:

Database log mode Archive ModeAutomatic archival Enabled

Archive destination C:/oracle/ora92/RDBMSOldest online log sequence 395

Next log sequence to archive 397Current log sequence 397

* Para ver el valor parámetro de archivado automático:

show parameter log_archive_start;

NAME TYPE VALUE------------------- ----------- -----log_archive_start boolean FALSE

DESACTIVAR EL MODO ARCHIVE LOG

Abriremos la aplicación SQL Plus de Oracle desde una ventana de MS-DOS ("Inicio" - "Ejecutar" - "cmd"):

sqlplus /nolog

Nos conectamos con un usuario con suficientes privilegios a la base de datos Oracle a la que queramos desactivarle el modo Archive Log (ARCHIVELOG), con el comando:

connect usuario/contraseña@NOMBRE_BASE_DATOS as sysdba

Ejecutamos el siguiente comando para desactivar el modo archive log:

alter system archive log stop;

Page 45: ORACLE Seguridad

Mostrará el siguiente resultado:

System altered.

Para comprobar que se ha desactivado correctamente:

archive log list;

Mostrará el siguiente resultado:

Database log mode Archive ModeAutomatic archival DisabledArchive destination C:/oracle/oradata/bdtest/archiveOldest online log sequence 70Next log sequence to archive 72Current log sequence 72

A continuación os mostramos todo el contenido de la ventana de MS-DOS:

C:>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on Fri Jul 14 12:30:36 2006

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

SQL> connect /@BDLOCAL as sysdba;Connected.SQL> select log_mode from v$database;

LOG_MODE------------NOARCHIVELOG

SQL> show parameter log_archive_start;

NAME TYPE VALUE------------------------------------ ----------- ------------------------------log_archive_start boolean FALSESQL> alter database archivelog;alter database archivelog*ERROR at line 1:ORA-01126: database must be mounted EXCLUSIVE and not open for this operationSQL> shutdown immediate;Database closed.Database dismounted.

Page 46: ORACLE Seguridad

ORACLE instance shut down.SQL> startup mountORACLE instance started.

Total System Global Area 135338868 bytesFixed Size 453492 bytesVariable Size 109051904 bytesDatabase Buffers 25165824 bytesRedo Buffers 667648 bytesDatabase mounted.SQL> alter database archivelog;

Database altered.

SQL> select log_mode from v$database;

LOG_MODE------------ARCHIVELOG

SQL> alter database open;

Database altered.

SQL> show parameter log_archive_start;

NAME TYPE VALUE------------------------------------ ----------- ------------------------------log_archive_start boolean FALSESQL> alter system set LOG_ARCHIVE_START=TRUE SCOPE=spfile;

Sistema modificado.

SQL> show parameter log_archive_dest

NAME TYPE VALUE------------------------------------ ----------- ------------------------------log_archive_dest stringlog_archive_dest_1 stringlog_archive_dest_10 stringlog_archive_dest_2 stringlog_archive_dest_3 stringlog_archive_dest_4 stringlog_archive_dest_5 stringlog_archive_dest_6 stringlog_archive_dest_7 string

Page 47: ORACLE Seguridad

log_archive_dest_8 stringlog_archive_dest_9 string

NAME TYPE VALUE------------------------------------ ----------- ------------------------------log_archive_dest_state_1 string enablelog_archive_dest_state_10 string enablelog_archive_dest_state_2 string enablelog_archive_dest_state_3 string enablelog_archive_dest_state_4 string enablelog_archive_dest_state_5 string enablelog_archive_dest_state_6 string enablelog_archive_dest_state_7 string enablelog_archive_dest_state_8 string enablelog_archive_dest_state_9 string enableSQL> show parameter log_archive_dest

SQL> ALTER SYSTEM ARCHIVE LOG STOP;System altered.SQL> archive log list;Database log mode Archive ModeAutomatic archival DisabledArchive destination C:/oracle/oradata/bdtest/archiveOldest online log sequence 70Next log sequence to archive 72Current log sequence 72

 EXP

USUARIO

CONTRASEÑA

BUFFERS 4096 ‘TAMAÑAO512, 1024, 2048, 4096 (CUANDO ES DE GRAN TAMAÑO), 8192, 16K, 32K, 64K.

C:\ EXP_DATAOCTUBRE.DMP

2

Y

S

Page 48: ORACLE Seguridad

S

DATAOCTUBRE

  Set your ORACLE_SID

export ORACLE_SID=test

export ORACLE_HOME=/path/to/oracle/home

2.  Create a minimal init.ora

# $ORACLE_HOME/dbs/init<sid>.ora control_files = (/path/to/control1.ctl,/path/to/control2.ctl,/path/to/control3.ctl)undo_management = AUTOundo_tablespace = UNDOTBS1db_name = testdb_block_size = 8192sga_max_size = 1073741824 #one gigsga_target = 1073741824 #one gig

3.  Create a password file

$ORACLE_HOME/bin/orapwd file=$ORACLE_HOME/dbs/pwd<sid>.ora password=oracle entries=5

4.  Start the instance

sqlplus / as sysdba

startup nomount

5.  Create the database

Page 49: ORACLE Seguridad

create database testlogfile group 1 ('/path/to/redo1.log') size 100M,            group 2 ('/path/to/redo2.log') size 100M,            group 3 ('/path/to/redo3.log') size 100Mcharacter set WE8ISO8859P1national character set utf8datafile '/path/to/system.dbf' size 500M autoextend on next 10M maxsize unlimited extent management localsysaux datafile '/path/to/sysaux.dbf' size 100M autoextend on next 10M maxsize unlimitedundo tablespace undotbs1 datafile '/path/to/undotbs1.dbf' size 100Mdefault temporary tablespace temp tempfile '/path/to/temp01.dbf' size 100M;

Note: there's some other things you can do here, like "ARCHIVELOG" "SET TIME_ZONE =" and "USER SYS IDENTIFIED BY password" and "USER SYSTEM IDENTIFIED BY password"

6.  Run catalog and catproc

@?/rdbms/admin/catalog.sql

@?/rdbms/admin/catproc.sql

7.  Change passwords

alter user sys identified by whatever;

alter user system identified by whatever;

OMF: minimal manual Oracle create database syntax

 

1.  Set your ORACLE_SID

export ORACLE_SID=testexport ORACLE_HOME=/path/to/oracle/home

2.  Create a minimal init.ora

Page 50: ORACLE Seguridad

# $ORACLE_HOME/dbs/init<sid>.ora control_files = (/path/to/control1.ctl,/path/to/control2.ctl,/path/to/control3.ctl)undo_management = AUTOdb_name = testdb_block_size = 8192sga_max_size = 1073741824 #one gigsga_target = 1073741824 #one gigdb_create_file_dest = /path/to/datafile/location #OMFdb_create_online_log_dest_1 = /path/to/first/redo_and_control_file/location #OMFdb_create_online_log_dest_2 = /path/to/second/redo_and_control_file/location #OMFdb_recovery_file_dest = /path/to/flash/recovery/area #OMF#note it’s a good idea to also have background_dump_dest, user_dump_dest, and core_dump_dest here as well

3.  Create a password file

$ORACLE_HOME/bin/orapwd file=$ORACLE_HOME/dbs/pwd<sid>.ora password=oracle entries=5

4.  Start the instance

sqlplus / as sysdba

startup nomount

5.  Create the database

create database testcharacter set WE8ISO8859P1national character set utf8undo tablespace undotbs1default temporary tablespace temp;

You can even do this and it will work, the ultimate in minimalism:

create database test;

Note: There's some other things you can do here, like "ARCHIVELOG" "SET TIME_ZONE =" and "USER SYS IDENTIFIED BY password" and "USER SYSTEM IDENTIFIED BY password"

Note 2: This is so minimal because you are using Oracle Managed Files as seen in #2

Page 51: ORACLE Seguridad

6.  Run catalog and catproc

@?/rdbms/admin/catalog.sql

@?/rdbms/admin/catproc.sql

 

Standard create Oracle database syntax

After creating your init.ora file with the appropriate parameters you can use the "create database" command in SQL*Plus to create a database:

Make sure that your have your $ORACLE_HOME and $ORACLE_SID set properly and that you sign-on as SYSDBA:

startup nomount;

CREATE CONTROLFILE REUSE DATABASE "OLDLSQ" NORESETLOGS NOARCHIVELOGMAXLOGFILES 16MAXLOGMEMBERS 2MAXDATAFILES 240MAXINSTANCES 1MAXLOGHISTORY 113LOGFILEGROUP 1 ('/u03/oradata/oldlsq/log1a.dbf','/u03/oradata/olslsq/log1b.dbf') SIZE 30M,GROUP 2 ('/u04/oradata/oldlsq/log2a.dbf','/u04/oradata/oldlsq/log2b.dbf') SIZE 30MDATAFILE'/u01/oradata/oldlsq/system01.dbf','/u01/oradata/oldlsq/mydatabase.dbf';