Administración de La Seguridad en Oracle 10g

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 21

Administración de la

seguridad en Oracle 10g


Jorge Edgardo Soto Hernández
José Ángel Vázquez Flores
Autenticación y administración de usuarios
Oracle presenta tres tipos de autenticación distintas, cada una con sus
características propias:

-Autenticación mediante contraseña: Es la forma de autenticación a la


que estamos más habituados, cuando intentamos entrar a un sistema
protegido. Introducimos un login y un password registrados en el
sistema, asociados a un rol con sus permisos de comportamiento dentro
del sistema.
-Autenticación de sistema operativo: Típica en sistemas cliente-servidor. Consiste
en que el sistema Oracle autentica al usuario usando el sistema operativo del
servidor donde ejecuta el sistema operativo.

-Autenticación global de usuario: Oracle utiliza un servicio de seguridad externo,


aunque Oracle dispone de sus propios servicios de seguridad para realizar la
autenticación global de usuario, como es el caso de Oracle Security Server.
Cuando se crea un usuario se establece el tipo de autenticación por la que esté
“afectado” el nuevo usuario, al comando CREATE USER “nombre_usuario” se le
indica las opciones INDENTIFIED (by | EXTERNALLY | GLOBALLY AS)
dependiendo si se le quiere aplicar respectivamente autenticación por contraseña,
sistema operativo o de tipo global.

Modificación de usuarios con


ALTER USER.

Eliminación de usuarios con DROP


USER.

Se debe contar con un usuario con


los privilegios necesarios para crear
y otorgar ciertos permisos a
determinados usuarios
Administración de privilegios
Para que puedan realizar operaciones en la base de datos, los nuevos usuarios
deben disponer de privilegios. Hay dos tipos de privilegios, de sistema y
privilegios de objeto.

-Privilegios de sistema: operaciones que afectan a todo el sistema. Ejemplo:


CREATE SESSION, CREATE TABLE (creación tabla espacio propio),
CREATE ANY TABLE (creación de la tabla en cualquier esquema).
La sentencia para asignar privilegios en Oracle es GRANT, seguida de una lista de
privilegios de sistema y objetos. Para poder quitar privilegios se hace uso de la
sentencia REVOQUE, esta sentencia retira los privilegios o roles especificados a
los usuarios o roles situados en la clausula FROM.

-Privilegios de objeto:

operaciones específicas sobre elementos


específicos de la base de datos, tablas,
vistas, etc. Ejemplo: para una tabla
SELECT; INSERT, UPDATE, DELETE,
ALTER,..
Ejemplo:

REVOQUE DROP ANY TABLE FROM hr, manolito;


Los Roles, que son simplemente un conjunto de privilegios que se pueden otorgar a
un usuario o a otro Rol. De esa forma se simplifica el trabajo del DBA en esta tarea.

Por default cuando creamos un usuario desde el Enterprise Manager se le asigna el


permiso de connect, lo que permite al usuario conectarse a la BD y crear sus propios
objetos en su propio esquema. De otra manera, debemos asignarlos en forma
manual.
Para consultar los roles definidos y los privilegios otorgados a través de
ellos, utilice las vistas:
SQL> select * from DBA_ROLES;
SQL> select * from DBA_ROLE_PRIVS order by GRANTEE;
Otro uso común de los roles es asignarles privilegios a nivel de Objetos, por
ejemplo en una Tabla de Facturas en donde sólo queremos que se puedan hacer
Querys e Inserts:
SQL> CREATE ROLE consulta;

SQL> GRANT SELECT,INSERT on analista.factura TO consulta;

Y finalmente asignamos ese rol con este “perfil” a distintos usuarios finales:

SQL> GRANT consulta TO ahernandez;


Limitación de los recursos
Es típico limitar los recursos de acceso de la base de datos. Hay dos
formas de establecer dichos límites:
 
1) En la creación y modificación de un usuario se puede fijar el
espacio con el que el usuario podrá trabajar en el sistema.
Hay dos cuotas de espacio que se pueden fijar para los usuarios.

DEFAULT TABLESPACE es el espacio donde el usuario puede crear


sus objetos y TEMPORARY TABLESPACE es el espacio donde se
crean los objetos necesarios para la ejecución de la operaciones.

Para fijar dichos tamaños se utiliza las palabras resaltadas en


mayúscula seguido de la palabra QUOTA y el numero de megas
establecidos.
CREATE TABLESPACE tbs_perm_02 DATAFILE
'tbs_perm_02.dat' SIZE 10M REUSE AUTOEXTEND ON
NEXT 10M MAXSIZE 200M;

Crea un tablespace permanente llamado tbs_perm_ que tiene un datafile


llamado tbs_perm_02.dat de un tamaño de 10 M. Cuando se requiera mas
espacio se añadirán 10 M adicionales hasta alcanzar el tope de 200 M.
CREATE TEMPORARY TABLESPACE tbs_temp_01 TEMPFILE
'tbs_temp_01.dbf' SIZE 5M AUTOEXTEND ON;

Crea un tablespace temporal llamado tbs_temp_01 que tiene un datafile llamado


tbs_temp_01.dbf de un tamaño de 5 M. Cuando se requiera mas espacio se auto
extenderá acorde a sus necesidades.
2) Se puede habilitar la imposición de límites de recursos del sistema en la base
de datos, para ello se utiliza la sentencia ALTER SYSTEM.

Resource_parameters

SESSIONS_PER_USER Specify the number of concurrent sessions to which


you want to limit the user.

CPU_PER_SESSION  Specify the CPU time limit for a session, expressed in


hundredth of seconds.

CPU_PER_CALL  Specify the CPU time limit for a call (a parse, execute, or
fetch), expressed in hundredths of seconds.
CONNECT_TIME Specify the total elapsed time limit for a session, expressed in minutes.

IDLE_TIME Specify the permitted periods of continuous inactive time during a session, expressed in
minutes. Long-running queries and other operations are not subject to this limit.

LOGICAL_READS_PER_SESSION Specify the permitted number of data blocks read in a session, including


blocks read from memory and disk.

LOGICAL_READS_PER_CALL Specify the permitted number of data blocks read for a call to process a SQL
statement (a parse, execute, or fetch).

PRIVATE_SGA Specify the amount of private space a session can allocate in the shared pool of the system
global area (SGA). Please refer to size_clause for information on that clause.
CREATEusando
Ejemplo PROFILEun
app_user
profile:
LIMIT
SESSIONS_PER_USER
UNLIMITED
CPU_PER_SESSION
UNLIMITED
CPU_PER_CALL 3000
CONNECT_TIME 45
LOGICAL_READS_PER_SES
SION DEFAULT
LOGICAL_READS_PER_CAL
L 1000
PRIVATE_SGA 15K
COMPOSITE_LIMIT
Otro Ejemplo usando un profile:
CREATE PROFILE clerk

LIMIT
SESSIONS_PER_USER 2
CPU_PER_SESSION
unlimited
CPU_PER_CALL 6000
LOGICAL_READS_PER_S
ESSION unlimited
LOGICAL_READS_PER_C
ALL 100 IDLE_TIME 30
CONNECT_TIME 480;
https://docs.oracle.com/cd/B19306_01/server.102/b14200/stat
ements_6010.htm

https://www.techonthenet.com/oracle/tablespaces/create_tab
lespace.php
Guías de Oracle 10g y 11g oficiales

https://docs.oracle.com/cd/A58617_01/server.804/a58397/ch20
.htm

También podría gustarte