PDF de programación - Taller de Seguridad, Backup y Recover en una Base de Datos Oracle 10g

Imágen de pdf Taller de Seguridad, Backup y Recover en una Base de Datos Oracle 10g

Taller de Seguridad, Backup y Recover en una Base de Datos Oracle 10ggráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 21 de Febrero del 2018)
814 visualizaciones desde el 21 de Febrero del 2018
788,6 KB
58 paginas
Creado hace 14a (17/10/2009)
Taller de Seguridad, Backup y Recover en

una Base de Datos Oracle 10g













Instructor: Ing. Francisco Riccio.







OCA Oracle Database 10g

OCP Oracle Database 10g

MCTS SQL Server 2005









Email: [email protected]



Fecha: 27 de Setiembre del 2008.













Ing. Francisco Riccio.



Página 1

Seguridad & Auditoria

Creando Usuarios y Roles





• Cada usuario que se conecta a nuestra base de datos debe contar con un usuario con fines

de auditoría.

• Un esquema es un usuario más sus objetos.
• Existen 3 modos de autentificar a un usuario y son: Password authentication (El password se

almacena en el data dictionary), external authentication (Confía en el sistema operativo su
autentificación) y global authentication (La autentificación se hace por mecanismos de
seguridad avanzada como kerberos, radius, biometrica y certificados X.509).

• Cada usuario tiene asignado por default un tablespace donde almacenará sus objetos, a un

tablespace temporal y a un profile (Sirve para limitar recursos al usuario y para asignarle
políticas de password).

Creando un usuario con autentificación de base de datos:

create user nombre identified by password;



Creando un usuario con autentificación por sistema operativo:

Previamente validar el parámetro: os_authent_prefix

create user ops$nombre identified externally;

Donde nombre es un usuario de sistema operativo.



Desbloqueando / Bloqueando un usuario:

alter user usuario account unlock;

alter user usuario account lock;



Expirando un password:

alter user usuario password expire;



Configurando quotas sobre tablespaces:

alter user xx identified by xx quota 100M | unlimited on USERS

Ing. Francisco Riccio.



Página 2

Garantizando y Revocando Privilegios



Tipos de privilegios:

• Objetos: Permisos sobre objetos: tablas, índices, stored procedures, etc.

Podemos permitir garantizar un privilegio de objeto a un usuario y este pueda también dar
este privilegio (WITH GRANT OPTION), no está disponible cuando el que va hacer
garantizado es un rol.

Observación: Cuando revocamos un privilegio a un usuario y este a la vez entregó

privilegios a un tercero, el tercero perderá el privilegio de acceder al objeto del primero.

Privilegio de Objetos: select, insert, update, delete, alter table, debug, execute, etc.

• Sistema: Permisos sobre operaciones de base de datos tales como: crear usuarios, alterar la

base de datos, etc.
Podemos permitir garantizar un privilegio de sistema a un usuario y este pueda también dar
este privilegio (WITH ADMIN OPTION),

Observación: Si un usuario otorga privilegios de sistema a otro usuario con la opción with

admin option y a la vez este segundo usuario le da privilegios a un tercero.

Luego cuando se haga un revoke al segundo, el tercero sigue manteniendo el privilegio

otorgado.

Privilegio de Sistema: alter database, alter system, audit system, create any (table – index –
job – procedure – sequence – trigger - view), debug any procedure, execute any program,
create procedure, create profile, create role, create session, lock any table, flashback any
table, analyze any, sysdba, sysoper, etc.

• Roles: Permite agrupar privilegios de objetos y sistemas.

Para habilitar un rol: set role nombre_rol identified by password.

El password se setea de la siguiente manera: create rol nombre_rol identified by password.

Con: alter user nombre default role lista_roles (carga automáticamente los roles del usuario)

Recordemos que las vistas más utilizadas son: dba_role_privs (Privilegio de roles), dba_tab_privs
(Privilegio de objetos de tablas) y dba_sys_privs (Privilegio de Sistemas).

Adicionalmente tenemos:

session_privs = Muestra los privilegios de sistema y objetos asignado s a la sesión.

sessions_roles = Muestra los roles asignados a la sesión.





Ing. Francisco Riccio.



Página 3

Nota:

Podemos crear roles con password:

create role rol1 identified by mipassword;

Para habilitar un rol con password en una sesión:

set role rol1 identified by mipassword, rol2;

set role all except rol1

set role none => Deshabilita todos.


Alterando los roles activados de un usuario determinado:

Cuando creamos un rol, el usuario creador adquiere el rol automáticamente como activo, pero
podemos cambia su comportamiento de la siguiente manera:

alter user xxx default role rol1, rol2; (si el rol tiene password en esta alteración no es necesario
ponerlo)






























Ing. Francisco Riccio.



Página 4

Controlando Recursos a los Usuarios - Perfiles



En Oracle 10g nos permite limitar a un recurso mediante cuotas al consumo de espacio, CPU,
memoria etc.

Los profiles permiten limitar diversos recursos del CPU tales como: CPU time, memoria, cantidad de
logical reads, etc.



Para habilitarlo: alter system set resource_limit = true scope=both



Opciones:

CONNECT_TIME = Indica el tiempo de conexión que puede estar una sesión, en caso supere el
tiempo en minutos aplica rollback a sus transacciones.

create profile nombre LIMIT CONNECT_TIME #min | UNLIMITED;

CPU_PER_CALL = Limita la cantidad de CPU que puede ser consumida por cualquier llamada de base
de datos con ese profile. El valor a ingresar es en ciento de segundos en un ciclo.

create profile nombre LIMIT CPU_PER_CALL # | UNLIMITED;

CPU_PER_SESSION = Limita la cantidad de CPU time que puede ser consumida en cualquier sesión. El
tiempo está en ciento de segundos.

IDLE_TIME = Limita la duración de tiempo muerto de una sesión. El tiempo está en minutos.

create profile nombre LIMIT IDLE_TIME #min | UNLIMITED;

LOGICAL_READS_PER_CALL = Por cada llamada hacia la base de datos restringe el número de logical
reads que puede consumir la llamada.

create profile nombre LIMIT LOGICAL_READS_PER_CALL #;

LOGICAL_READS_PER_SESSION el cual indica el máximo número de logical reads durante toda la
sesión.

PRIVATE_SGA = Limita la cantidad de UGA en bytes que una conexión con shared server puede
ubicar.

create profile nombre LIMIT PRIVATE_SGA #;

SESSIONS_PER_USER = Restringue a un usuario al número de sesiones que puede abrir.

create profile nombre LIMIT SESSIONS_PER_USER #;

Ing. Francisco Riccio.



Página 5

Aplicando Políticas de Passwords



Forzando a n intentos fallidos de password el bloqueo del user por un tiempo determinado:

ALTER PROFILE nombre LIMIT

FAILED_LOGIN_ATTEMPTS

#intentos

PASSWORD_LOCK_TIME

nMinutos (Vuelve a desbloquearlo) | UNLIMITED

PASSWORD_LIFE_TIME

PASSWORD_GRACE_TIME

x

y



El password_life_time especifica el máximo número de días que un password se puede mantener
vigente.

El password_grace_time es el número de días después del primer login exitoso comenzará a
recordarle del vencimiento del password.

Limita el password a m dias y durante n dias recordará esto.



ALTER PROFILE nombre LIMIT

PASSWORD_LIFE_TIME

m-n dias

PASSWORD_GRACE_TIME

n dias



Reuso de Passwords

Especifica el número de días que un password puede ser reusado y después de cuantos passwords
cambiados.

CREATE PROFILE nombre LIMIT

PASSWORD_REUSE_TIME

#dias | UNLIMITED

PASSWORD_REUSE_MAX

n | UNLIMITED

Requiere que al menos n passwords cambien y durante #dias para poder reusar un password.





Ing. Francisco Riccio.



Página 6

Nota:

Existe un archivo en llamado $ORACLE_HOME/rdbms/admin/utlpwdmg.sql el cual contiene una
función PL/SQL con complejidad alta para poderla asociar a un profile.

Ejemplo:

ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION verify_function;













































Ing. Francisco Riccio.



Página 7

Auditoria



Para activar la auditoria:

ALTER SYSTEM SET AUDIT_TRAIL= DB; DB,EXTENDED, OS, XML, XML, EXTENDED SCOPE=SPFILE;

DB,EXTENDED: Registra en la base de datos junto con las sentencias SQL que son auditadas.

OS: Se registra en $ORACLE_BASE/admin ó event viewer en Windows

Ejemplo: alter System set audit_trail=db scope=spfile;



Oracle permite 4 niveles de auditoría.

Statement

Privilegio

Objeto

Fine grained Access











Statement
Permite auditar 1 tipo de SQL.

Ejemplo:

audit table; (todo lo relacionado a la palabra table, create, drop, truncate, etc)

audit table by xxx

audit table by xxx whenever not successful



audit alter table | procedure | database | profile | system; grant (todas sus formas, ejemplo: grant
sequence); execute (todas sus formas, ejemplo: execute procedure); procedure (create y drop para
procedure, function, package); lock table; role (create, drop, set role, alter); select (select table);
system grant (grant, revoke); tablespace (alter, create, drop); trigger (alter, create, drop); user (alter
user, create, drop); view (alter, create, drop); session (connect).





Ing. Francisco Riccio.



Página 8

Privilegio
Audita un privilegio de sistema, ejemplo:

audit create any table

audit delete any table



Tips:

Para auditar un GRANT ANY PRIVILEGE debemos primero ejecutar el siguiente audit en el usuario
que va a lanzar los audit grant any privilege:

AUDIT SYSTEM GRANT BY usuario_auditor



Objeto
Audita un select, insert, update o execute de un objeto particular.



audit select on hr.employees;

audit select on hr.employees by access whenever successfull;

Puede definírsele también a nivel de:

S = Session (Ejemplo: Si hacemos 10 inserts, los 10 inserts generaran 1 entrada de auditoría)

A = Access (Ejemplo: Si hacemos 10 inserts, cada insert generará 1 entrada de auditoría)



Nota:

Oracle 11g audita cualquier operación DML sobre la sys.aud$

No puede ser restringido por usuario.

Si definimos por BY SESSION entonces en la tabla DBA_AUDIT_TRAIL (campo SES_ACTIONS) tendrá
un conjunto de bits ord
  • Links de descarga
http://lwp-l.com/pdf8958

Comentarios de: Taller de Seguridad, Backup y Recover en una Base de Datos Oracle 10g (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad