SlideShare une entreprise Scribd logo
1  sur  31
ADMINISTRACIÓN DE ORACLE 11G
Administración de la seguridad a nivel de usuario
1
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
INTRODUCCIÓN
 Los puntos que trataremos en este capítulo
serán:
 Cómo crear y gestionar cuentas de usuario de la
base de datos.
 Cómo conceder y revocar privilegios
 Cómo crear y gestionar roles de usuario
2
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
INTRODUCCIÓN
 Cuando nos logamos a la base de datos,
indicamos un usuario y un password de una
cuenta de usuario.
 Esta cuenta define nuestros permisos y
atributos.
 Además, asociada a esta cuenta de usuario,
tenemos un schema.
 El schema es el conjunto de objetos de la
base de datos que son propiedad de un
usuario.
3
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
CUENTA DE USUARIO  ATRIBUTOS
 Al crear una cuenta de usuario, podemos
definir las siguientes características:
 Su nombre
 El tablespace por defecto
 La cuota (el espacio que puede ocupar) para
este tablespace
 El tablespace temporal
 El perfil de usuario
 El status de la cuenta
4
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
CUENTA DE USUARIO  NOMBRE
 El nombre de usuario o username debe ser único
dentro de la base de datos.
 Debe empezar por una letra y no superar los 30
caracteres.
 No puede ser una palabra reservada.
 El nombre es case-sensitive, pero a no ser que lo
pongamos entre “”, se guardará en mayúsculas.
 Después de crear un usuario, no se puede modificar
su nombre. Debe eliminarse el usuario y volverse a
crear.
 Debemos ir con cuidado con esta acción, porque al
eliminar un usuario, se deben eliminar también todos
sus objetos (tablas, etc.)
5
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
CUENTA DE USUARIO  NOMBRE
6
 Conéctate en SQL*Plus con el usuario DBA
y prueba estas instrucciones:
Create user john identified by Manager11g;
Create user “john” identified by Manager11g;
Create user “john%#” identified by Manager11g;
Create user table identified by Manager11g;
Create user “table” identified by Manager11g;
Select username, created from dba_users where created>=(sysdate-1);
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
CUENTA DE USUARIO  TABLESPACE POR
DEFECTO
 Cada cuenta de usuario tiene un tablespace por defecto
en el que se crean sus objetos.
 Es posible que un usuario tenga objetos en más de un
tablespace si se le ha asignado una cuota. Pero, a menos
que se indique lo contrario, sus objetos se crearán en el
tablespace por defecto.
 Si no indicamos el tablespace al crear el usuario, se le
asignará el tablespace por defecto.
 Podemos modificar el tablespace por defecto con:
 ALTER DATABASE DEFAULT TABLESPACE
nombretablespace;
 Si no se indica al crear la base de datos, se considera
USERS como el tablespace por defecto.
 Es recomendable cambiarlo.
7
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
CUENTA DE USUARIO  TABLESPACE POR
DEFECTO
 La cuota es la cantidad de espacio que puede ocupar
un usuario dentro del tablespace.
 Si un usuario llega a su límite, ya no puede crear
más objetos ni se puede expandir ninguno existente.
 Si se reduce la cuota de un usuario y los objetos que
tiene ya ocupan más espacio que el nuevo asignado,
los objetos continúan existiendo, pero no se le
permite crear más.
 En la siguiente diapositiva hay algunos ejemplos de
cómo comprobar el tablespace por defecto y la cuota
de cada usuario.
8
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
CUENTA DE USUARIO  TABLESPACE POR
DEFECTO
9
 Conéctate en SQL*Plus con el usuario DBA y prueba estas
instrucciones:
Select username, default_tablespace, temporary_tablespace from dba_users
where created>=(sysdate-1);
Alter user john quota 10m on users;
Alter user john quota unlimited on example;
Select tablespace_name, bytes, max_bytes from dba_ts_quotas where
username=‘JOHN’;
Select property_name, property_value from database_properties where
property_name like ‘%TABLESPACE’;
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
CUENTA DE USUARIO  TABLESPACE
TEMPORAL
 Una sesión de usuario necesita un cierto espacio
para hacer determinadas operaciones que exceden
el espacio de su PGA.
 Este espacio se toma del tablespace temporal.
 La gestión del espacio en un tablespace temporal es
totalmente automático y no es necesario que los
usuarios tengan cuota asignada.
 Para cambiar el tablespace temporal de un usuario:
 ALTER USER username TEMPORARY TABLESPACE
nombretablespace;
10
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
CUENTA DE USUARIO  STATUS
 Cada cuenta tiene un status que puede consultarse en la columna
ACCOUNT_STATUS de DBA_USERS;
 Puede tomar estos valores;
 OPEN  cuenta disponible para ser utilizada.
 LOCKED  El DBA ha bloqueado la cuenta. No puede ser utilizada.
 EXPIRED  Los passwords tienen un tiempo de vida y en esta cuenta hace
falta cambiarlo.
 EXPIRED & LOCKED La cuenta ha sido bloqueada y el password ha
caducado.
 EXPIRED(GRACE)  Falta poco para que caduque el password y se va
recordando al usuario que lo tiene que cambiar.
 LOCKED (TIMED)  La cuenta se ha bloqueado porque alguien ha fallado
el password muchas veces. Se puede configurar que una cuenta se bloquee
durante un tiempo después de fallar el password un número de veces.
 EXPIRED & LOCKED (TIMED)
 EXPIRED (GRACE) & LOCKED
 EXPIRED (GRACE) & LOCKED (TIMED)
11
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
CUENTA DE USUARIO  STATUS
 Para bloquear y desbloquear una cuenta:
 ALTER USER username ACCOUNT LOCK;
 ALTER USER username ACCOUNT UNLOCK;
 Para forzar a un usuario que cambie su
password:
 ALTER USER username PASSWORD EXPIRE;
 Aquí no tenemos un UNEXPIRED, la única manera
de cambiar el status es resetear el password.
12
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
TALLER 1
Crear usuarios.
Carmen Soler Chorro - http://www.linkedin.com/in/casoch 13
PRIVILEGIOS
 Por defecto, ningún usuario puede hacer nada
contra la base de datos. Ni siquiera conectarse.
 Para conceder y recovar privilegios tenemos los
comandos GRANT y REVOKE.
 Tenemos privilegios de dos tipos:
 Privilegios de sistema
 Permiten hacer acciones que afectan al diccionario de
datos, como crear una tabla.
 Privilegios de objetos
 Permiten hacer acciones que afectan a los datos, como
consultar los datos de una tabla.
14
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
PRIVILEGIOS DE SISTEMA
 Existen cerca de 200 privilegios de sistema. Los más comunes son:
 CREATE SESSION  permite que el usuario se conecte a la base de
datos.
 ALTER DATABASE  permite modificar la estructura física.
 ALTER SYSTEM  permite modificar los parámetros de instancia y las
estructuras de memoria.
 CREATE/ALTER/DROP TABLESPACE  para gestionar tablespaces.
 CREATE TABLE  permite crear/modificar/borrar tablas dentro de su
schema. Van incluidos los permisos para hacer operaciones DML y SQL
contra estas tablas.
 CREATE ANY TABLE  permite crear tablas y hacer que pertenezcan a
otro usuario.
 DROP ANY TABLE  permite eliminar tablas que pertenecen a otro
usuario.
 INSERT/UPDATE/DELETE/SELECT ANY TABLE  permite hacer estas
operaciones contra tablas que no son del usuario.
15
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
PRIVILEGIOS DE SISTEMA
 Ejemplo de asignación de privilegios:
 Con estos privilegios, alois puede conectarse y
crear tablas en su schema.
16
GRANT create session, create table TO
alois;
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
PRIVILEGIOS DE SISTEMA
 Con la opción “with admin option”, el usuario
que lo recibe puede traspasar sus permisos
a otros usuarios.
17
Connect / as sysdba;
Grant alter system to alois with admin
option;
Connect alois/oracle;
Grant alter system to afra;
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
PRIVILEGIOS DE SISTEMA
 Ejemplo para quitar un privilegio a un
usuario:
 Visualizar los privilegios de sistema que tiene
un usuario:
18
select * from dba_sys_privs where grantee = 'HR';
Revoke alter system from afra;
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
PRIVILEGIOS SOBRE OBJETOS
 Permite hacer SELECTs y operaciones DML sobre los
objetos.
 Estos permisos no afectan a las tablas que ha creado el
mismo usuario. Si el usuario tiene el privilegio CREATE
TABLE, también puede hacer SELECTs y DML contra las
tablas que él creó.
 Los privilegios aplicables a objetos son:
 SELECT, INSERT, UPDATE, DELETE, ALTER, EXECUTE
 Ejemplo de asignación:
19
GRANT SELECT ON hr.employees TO alois;
GRANT UPDATE(salary) on hr.employees TO alois;
GRANT ALL ON hr.regions TO alois;
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
TALLER 2
Conceder privilegios.
Carmen Soler Chorro - http://www.linkedin.com/in/casoch 20
GESTIONAR ROLES
 Gestionar la seguridad asignando privilegios a
cada uno de los usuarios, funciona, pero
tenemos dos problemas:
 Mucho trabajo. En una aplicación con miles de
tablas podríamos necesitar millones de GRANTs.
 Si queremos que un privilegio debe de estar activo
durante un tiempo, tendríamos que ir usuario a
usuario quitándoselo.
 Un rol es un conjunto de privilegios que pueden
ser asignados o revocados como una unidad y
pueden ser activados o desactivados.
21
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
GESTIONAR ROLES
 Crear un rol:
 CREATE ROLE rolename;
 Un rol no puede tener el mismo nombre que un
usuario existente.
22
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
ROLES PREDEFINIDOS
 Existen al menos 50 roles predefinidos en Oracle. Los más
importantes:
 CONNECT
 Sólo tiene el privilegio de CREATE SESSION.
 Se mantiene por compatibilidad con versiones anteriores.
 RESOURCE
 Permite crear tablas y procedures.
 Además, incluye UNLIMITED TABLESPACE.
 DBA
 Tiene todos los privilegios.
 SELECT_CATALOG_ROLE
 Contiene permisos de lectura sobre objetos del diccionario de datos.
 Se utiliza con administradores junior para que pueda monitorizar la base de
datos.
 PUBLIC
 Rol que tienen asignado todos los usuarios por defecto.
 Es útil porque si queremos asignar un privilegio a todos los usuarios de la
base de datos, basta con asignárselo a este rol.
23
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
TALLER 3
Crear roles.
Carmen Soler Chorro - http://www.linkedin.com/in/casoch 24
GESTIONAR PERFILES
 Los perfiles se aplican para:
 Limitar los recursos de sistema que pueden
utilizar los usuarios o los roles.
 Controlar el número de veces que fallan su
password.
25
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
GESTIONAR PERFILES  PASSWORDS
 Control sobre los passwords:
 FAILED_LOGIN_ATTEMPS
 Número de veces seguidas que puede fallarse un password antes
de que la cuenta sea bloqueada.
 PASSWORD_LOCK_TIME
 Número de días que la cuenta queda bloqueada después de haber
alcanzado el número anterior.
 PASSWORD_LIFE_TIME
 Tiempo de vida de un password. Se puede hacer que un password
caduque cada cierto tiempo.
 PASSWORD_GRACE_TIME
 Días después de que el password caduque en que se permite al
usuario cambiar su password.
 PASSWORD_VERIFY_FUNCTION
 El nombre de una función que se encarga de comprobar que el
password sea lo suficientemente complejo.
26
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
GESTIONAR PERFILES  PASSWORDS
 Control sobre los passwords:
 PASSWORD_VERIFY_FUNCTION
 Para 11g se utiliza una función que se llama
VERIFY_FUNCION_11G, que hace comprobaciones
como:
 Password de al menos 8 caracteres
 No puede ser lo mismo que el nombre de usuario.
 Deben tener al menos una letra y al menos un dígito.
 Debe diferir en al menos 3 caracteres del password anterior.
 Existen una serie de palabras que se consideran “demasiado
comunes” que no pueden ser asignadas, como por ejemplo
“oracle”.
 Esta función no existe por defecto, tenemos que crearla a
partir de script utlpwdmg.sql que tenemos en el directorio:
C:appusuariproduct11.2.0dbhome_1RDBMSADMIN
27
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
GESTIONAR PERFILES  RECURSOS
 Limitación de recursos:
 SESSIONS_PER_USER
 Número de sesiones que puede tener abiertas un mismo usuario.
 CPU_PER_SESSION
 Tiempo de CPU que puede consumir una sesión del usuario.
 CPU_PER_CALL
 Tiempo de CPU que se puede consumir por sentencia SQL.
 CONNECT_TIME
 Número de minutos que puede durar una sesión.
 IDLE_TIME
 Número de minutos que puede durar una sesión sin que el usuario esté
trabajando.
 Todos estos recursos no se aplican a menos que un parámetro
llamado RESOURCE_LIMIT esté activado:
 ALTER SYSTEM SET RESOURCE_LIMIT = TRUE;
28
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
GESTIONAR PERFILES
 Pueden ser gestionados desde SQL*Plus o desde el
Database Control.
 Para ver qué perfiles tiene asignados cada usuario:
 SELECT USERNAME, PROFILE FROM DBA_USERS;
 Por defecto, todos los users, tienen asignados el
perfil DEFAULT.
 Para ver qué características tiene un perfil:
 SELECT * FROM DBA_PROFILES WHERE
PROFILE=‘DEFAULT’;
 Desde el Database Control, hemos de ir a la pestaña
de Servidor y lo veremos dentro de la sección de
Seguridad de Usuarios.
29
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
GESTIONAR PERFILES
CREATE PROFILE PROGRAMMER_PROFILE LIMIT SESSIONS_PER_USER 2
PASSWORD_LIFE_TIME 7;
ALTER USER ALOIS PROFILE PROGRAMMER_PROFILE;
DROP PROFILE PROGRAMMER_PROFILE;
-- no se puede si el perfil lo tiene asignado algún user.
DROP PROFILE PROGRAMMER_PROFILE CASCADE;
-- si el perfil está asignado a algún user,
-- pone el perfil de ese user a default.
30
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
TALLER 4
Gestionar perfiles.
Carmen Soler Chorro - http://www.linkedin.com/in/casoch 31

Contenu connexe

En vedette

Arquitectura de Oracle 11g r2
Arquitectura de Oracle 11g r2Arquitectura de Oracle 11g r2
Arquitectura de Oracle 11g r2
Carmen Soler
 
Concepto erp
Concepto erpConcepto erp
Concepto erp
rcheo22
 
Estructuras de almacenamiento de Oracle 11g R2
Estructuras de almacenamiento de Oracle 11g R2Estructuras de almacenamiento de Oracle 11g R2
Estructuras de almacenamiento de Oracle 11g R2
Carmen Soler
 

En vedette (20)

Tema9
Tema9Tema9
Tema9
 
Arquitectura de Oracle 11g r2
Arquitectura de Oracle 11g r2Arquitectura de Oracle 11g r2
Arquitectura de Oracle 11g r2
 
Crear cuenta ora
Crear cuenta oraCrear cuenta ora
Crear cuenta ora
 
Oracle WebCenter 11g : Novedades, Julio de 2009
Oracle WebCenter 11g : Novedades, Julio de 2009 Oracle WebCenter 11g : Novedades, Julio de 2009
Oracle WebCenter 11g : Novedades, Julio de 2009
 
Crear esquema tablas_ora, presentacion para creacion de tablas oracle
Crear esquema tablas_ora, presentacion para creacion de tablas oracleCrear esquema tablas_ora, presentacion para creacion de tablas oracle
Crear esquema tablas_ora, presentacion para creacion de tablas oracle
 
Experiencia de Usuario Web. Incrementando el Negocio
Experiencia de Usuario Web. Incrementando el NegocioExperiencia de Usuario Web. Incrementando el Negocio
Experiencia de Usuario Web. Incrementando el Negocio
 
Certificacion CISA
Certificacion CISA Certificacion CISA
Certificacion CISA
 
Sql4
Sql4Sql4
Sql4
 
Concepto erp
Concepto erpConcepto erp
Concepto erp
 
Seguridad de datos teoría
Seguridad de datos   teoríaSeguridad de datos   teoría
Seguridad de datos teoría
 
Administración de base de datos oracle - sesion 12
Administración de base de datos oracle -  sesion 12Administración de base de datos oracle -  sesion 12
Administración de base de datos oracle - sesion 12
 
Oracle
OracleOracle
Oracle
 
Oracle Database 12c: Privilegios, Usuarios y Roles
Oracle Database 12c: Privilegios, Usuarios y RolesOracle Database 12c: Privilegios, Usuarios y Roles
Oracle Database 12c: Privilegios, Usuarios y Roles
 
Iso 20000
Iso 20000Iso 20000
Iso 20000
 
Seguridad sql server
Seguridad sql serverSeguridad sql server
Seguridad sql server
 
Resumen fundamentos de sistemas de bases de datos
Resumen fundamentos de sistemas de bases de datosResumen fundamentos de sistemas de bases de datos
Resumen fundamentos de sistemas de bases de datos
 
T12 ORACLE
T12 ORACLET12 ORACLE
T12 ORACLE
 
Estructuras de almacenamiento de Oracle 11g R2
Estructuras de almacenamiento de Oracle 11g R2Estructuras de almacenamiento de Oracle 11g R2
Estructuras de almacenamiento de Oracle 11g R2
 
Estructura de Almacenamiento en Oracle. TableSpaceZ052 07
Estructura de Almacenamiento en Oracle. TableSpaceZ052 07Estructura de Almacenamiento en Oracle. TableSpaceZ052 07
Estructura de Almacenamiento en Oracle. TableSpaceZ052 07
 
Crear Base de Datos en Oracle
Crear Base de Datos en OracleCrear Base de Datos en Oracle
Crear Base de Datos en Oracle
 

Similaire à Seguridad Oracle 11g R2

Administrando Usuarios de Oracle Database. Z052 08
Administrando Usuarios de Oracle Database. Z052 08Administrando Usuarios de Oracle Database. Z052 08
Administrando Usuarios de Oracle Database. Z052 08
Alexander Calderón
 
Abf leccion 13
Abf leccion 13Abf leccion 13
Abf leccion 13
victdiazm
 
P R A C T I C A
P R A C T I C AP R A C T I C A
P R A C T I C A
Danica M
 
Seguridad 2° exp_ooo
Seguridad 2° exp_oooSeguridad 2° exp_ooo
Seguridad 2° exp_ooo
Yuzel Sederap
 
Seguridad 2° exp_ooo
Seguridad 2° exp_oooSeguridad 2° exp_ooo
Seguridad 2° exp_ooo
Yuzel Sederap
 
USUARIOS profile en oracle base de datos
USUARIOS profile en oracle base de datosUSUARIOS profile en oracle base de datos
USUARIOS profile en oracle base de datos
NelsonMamaniRamos
 
Manual basico de_oracle
Manual basico de_oracleManual basico de_oracle
Manual basico de_oracle
elena
 
Taller oracle ccfcffcfcfcfcfcffc
Taller oracle ccfcffcfcfcfcfcffcTaller oracle ccfcffcfcfcfcfcffc
Taller oracle ccfcffcfcfcfcfcffc
jinkalel kalel
 

Similaire à Seguridad Oracle 11g R2 (20)

Administrando Usuarios de Oracle Database. Z052 08
Administrando Usuarios de Oracle Database. Z052 08Administrando Usuarios de Oracle Database. Z052 08
Administrando Usuarios de Oracle Database. Z052 08
 
Abf leccion 13
Abf leccion 13Abf leccion 13
Abf leccion 13
 
INFOSAN Delphi 453-602
INFOSAN Delphi  453-602INFOSAN Delphi  453-602
INFOSAN Delphi 453-602
 
Admon oracle
Admon oracleAdmon oracle
Admon oracle
 
P R A C T I C A
P R A C T I C AP R A C T I C A
P R A C T I C A
 
Ejercicio privilegios
Ejercicio privilegiosEjercicio privilegios
Ejercicio privilegios
 
Seguridad 2° exp_ooo
Seguridad 2° exp_oooSeguridad 2° exp_ooo
Seguridad 2° exp_ooo
 
Seguridad 2° exp_ooo
Seguridad 2° exp_oooSeguridad 2° exp_ooo
Seguridad 2° exp_ooo
 
Gestion de datos[1].pdf
Gestion de datos[1].pdfGestion de datos[1].pdf
Gestion de datos[1].pdf
 
guia-6.pdf
guia-6.pdfguia-6.pdf
guia-6.pdf
 
USUARIOS profile en oracle base de datos
USUARIOS profile en oracle base de datosUSUARIOS profile en oracle base de datos
USUARIOS profile en oracle base de datos
 
Abd2
Abd2Abd2
Abd2
 
Gestión de Base de Datos en Azure
Gestión de Base de Datos en AzureGestión de Base de Datos en Azure
Gestión de Base de Datos en Azure
 
Yupa cesar bdii_t7
Yupa cesar bdii_t7Yupa cesar bdii_t7
Yupa cesar bdii_t7
 
Taller de Base de Datos - Unidad 4 seguridad
Taller de Base de Datos - Unidad 4 seguridadTaller de Base de Datos - Unidad 4 seguridad
Taller de Base de Datos - Unidad 4 seguridad
 
Manual basico de_oracle
Manual basico de_oracleManual basico de_oracle
Manual basico de_oracle
 
U3-ACT02-TBD-ISC-MSG.pdf
U3-ACT02-TBD-ISC-MSG.pdfU3-ACT02-TBD-ISC-MSG.pdf
U3-ACT02-TBD-ISC-MSG.pdf
 
Taller oracle ccfcffcfcfcfcfcffc
Taller oracle ccfcffcfcfcfcfcffcTaller oracle ccfcffcfcfcfcfcffc
Taller oracle ccfcffcfcfcfcfcffc
 
Taller oracle seguridad backup recovery 22092008
Taller oracle seguridad backup recovery 22092008Taller oracle seguridad backup recovery 22092008
Taller oracle seguridad backup recovery 22092008
 
Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10
 

Plus de Carmen Soler (9)

Transferencia de datos en Oracle
Transferencia de datos en OracleTransferencia de datos en Oracle
Transferencia de datos en Oracle
 
Mantenimiento de la base de datos Oracle 11g
Mantenimiento de la base de datos Oracle 11gMantenimiento de la base de datos Oracle 11g
Mantenimiento de la base de datos Oracle 11g
 
Datos UNDO en Oracle
Datos UNDO en OracleDatos UNDO en Oracle
Datos UNDO en Oracle
 
Recuperación de la base de datos en Oracle
Recuperación de la base de datos en OracleRecuperación de la base de datos en Oracle
Recuperación de la base de datos en Oracle
 
Backups en Oracle
Backups en OracleBackups en Oracle
Backups en Oracle
 
Copias de seguridad y recuperación en Oracle
Copias de seguridad y recuperación en OracleCopias de seguridad y recuperación en Oracle
Copias de seguridad y recuperación en Oracle
 
Gestión de la instancia de Oracle 11g R2
Gestión de la instancia de Oracle 11g R2Gestión de la instancia de Oracle 11g R2
Gestión de la instancia de Oracle 11g R2
 
SQL: DDL, DML y SQL
SQL: DDL, DML y SQLSQL: DDL, DML y SQL
SQL: DDL, DML y SQL
 
HTML (parte 1)
HTML (parte 1)HTML (parte 1)
HTML (parte 1)
 

Dernier

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 

Dernier (20)

Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 

Seguridad Oracle 11g R2

  • 1. ADMINISTRACIÓN DE ORACLE 11G Administración de la seguridad a nivel de usuario 1 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 2. INTRODUCCIÓN  Los puntos que trataremos en este capítulo serán:  Cómo crear y gestionar cuentas de usuario de la base de datos.  Cómo conceder y revocar privilegios  Cómo crear y gestionar roles de usuario 2 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 3. INTRODUCCIÓN  Cuando nos logamos a la base de datos, indicamos un usuario y un password de una cuenta de usuario.  Esta cuenta define nuestros permisos y atributos.  Además, asociada a esta cuenta de usuario, tenemos un schema.  El schema es el conjunto de objetos de la base de datos que son propiedad de un usuario. 3 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 4. CUENTA DE USUARIO  ATRIBUTOS  Al crear una cuenta de usuario, podemos definir las siguientes características:  Su nombre  El tablespace por defecto  La cuota (el espacio que puede ocupar) para este tablespace  El tablespace temporal  El perfil de usuario  El status de la cuenta 4 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 5. CUENTA DE USUARIO  NOMBRE  El nombre de usuario o username debe ser único dentro de la base de datos.  Debe empezar por una letra y no superar los 30 caracteres.  No puede ser una palabra reservada.  El nombre es case-sensitive, pero a no ser que lo pongamos entre “”, se guardará en mayúsculas.  Después de crear un usuario, no se puede modificar su nombre. Debe eliminarse el usuario y volverse a crear.  Debemos ir con cuidado con esta acción, porque al eliminar un usuario, se deben eliminar también todos sus objetos (tablas, etc.) 5 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 6. CUENTA DE USUARIO  NOMBRE 6  Conéctate en SQL*Plus con el usuario DBA y prueba estas instrucciones: Create user john identified by Manager11g; Create user “john” identified by Manager11g; Create user “john%#” identified by Manager11g; Create user table identified by Manager11g; Create user “table” identified by Manager11g; Select username, created from dba_users where created>=(sysdate-1); Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 7. CUENTA DE USUARIO  TABLESPACE POR DEFECTO  Cada cuenta de usuario tiene un tablespace por defecto en el que se crean sus objetos.  Es posible que un usuario tenga objetos en más de un tablespace si se le ha asignado una cuota. Pero, a menos que se indique lo contrario, sus objetos se crearán en el tablespace por defecto.  Si no indicamos el tablespace al crear el usuario, se le asignará el tablespace por defecto.  Podemos modificar el tablespace por defecto con:  ALTER DATABASE DEFAULT TABLESPACE nombretablespace;  Si no se indica al crear la base de datos, se considera USERS como el tablespace por defecto.  Es recomendable cambiarlo. 7 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 8. CUENTA DE USUARIO  TABLESPACE POR DEFECTO  La cuota es la cantidad de espacio que puede ocupar un usuario dentro del tablespace.  Si un usuario llega a su límite, ya no puede crear más objetos ni se puede expandir ninguno existente.  Si se reduce la cuota de un usuario y los objetos que tiene ya ocupan más espacio que el nuevo asignado, los objetos continúan existiendo, pero no se le permite crear más.  En la siguiente diapositiva hay algunos ejemplos de cómo comprobar el tablespace por defecto y la cuota de cada usuario. 8 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 9. CUENTA DE USUARIO  TABLESPACE POR DEFECTO 9  Conéctate en SQL*Plus con el usuario DBA y prueba estas instrucciones: Select username, default_tablespace, temporary_tablespace from dba_users where created>=(sysdate-1); Alter user john quota 10m on users; Alter user john quota unlimited on example; Select tablespace_name, bytes, max_bytes from dba_ts_quotas where username=‘JOHN’; Select property_name, property_value from database_properties where property_name like ‘%TABLESPACE’; Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 10. CUENTA DE USUARIO  TABLESPACE TEMPORAL  Una sesión de usuario necesita un cierto espacio para hacer determinadas operaciones que exceden el espacio de su PGA.  Este espacio se toma del tablespace temporal.  La gestión del espacio en un tablespace temporal es totalmente automático y no es necesario que los usuarios tengan cuota asignada.  Para cambiar el tablespace temporal de un usuario:  ALTER USER username TEMPORARY TABLESPACE nombretablespace; 10 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 11. CUENTA DE USUARIO  STATUS  Cada cuenta tiene un status que puede consultarse en la columna ACCOUNT_STATUS de DBA_USERS;  Puede tomar estos valores;  OPEN  cuenta disponible para ser utilizada.  LOCKED  El DBA ha bloqueado la cuenta. No puede ser utilizada.  EXPIRED  Los passwords tienen un tiempo de vida y en esta cuenta hace falta cambiarlo.  EXPIRED & LOCKED La cuenta ha sido bloqueada y el password ha caducado.  EXPIRED(GRACE)  Falta poco para que caduque el password y se va recordando al usuario que lo tiene que cambiar.  LOCKED (TIMED)  La cuenta se ha bloqueado porque alguien ha fallado el password muchas veces. Se puede configurar que una cuenta se bloquee durante un tiempo después de fallar el password un número de veces.  EXPIRED & LOCKED (TIMED)  EXPIRED (GRACE) & LOCKED  EXPIRED (GRACE) & LOCKED (TIMED) 11 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 12. CUENTA DE USUARIO  STATUS  Para bloquear y desbloquear una cuenta:  ALTER USER username ACCOUNT LOCK;  ALTER USER username ACCOUNT UNLOCK;  Para forzar a un usuario que cambie su password:  ALTER USER username PASSWORD EXPIRE;  Aquí no tenemos un UNEXPIRED, la única manera de cambiar el status es resetear el password. 12 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 13. TALLER 1 Crear usuarios. Carmen Soler Chorro - http://www.linkedin.com/in/casoch 13
  • 14. PRIVILEGIOS  Por defecto, ningún usuario puede hacer nada contra la base de datos. Ni siquiera conectarse.  Para conceder y recovar privilegios tenemos los comandos GRANT y REVOKE.  Tenemos privilegios de dos tipos:  Privilegios de sistema  Permiten hacer acciones que afectan al diccionario de datos, como crear una tabla.  Privilegios de objetos  Permiten hacer acciones que afectan a los datos, como consultar los datos de una tabla. 14 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 15. PRIVILEGIOS DE SISTEMA  Existen cerca de 200 privilegios de sistema. Los más comunes son:  CREATE SESSION  permite que el usuario se conecte a la base de datos.  ALTER DATABASE  permite modificar la estructura física.  ALTER SYSTEM  permite modificar los parámetros de instancia y las estructuras de memoria.  CREATE/ALTER/DROP TABLESPACE  para gestionar tablespaces.  CREATE TABLE  permite crear/modificar/borrar tablas dentro de su schema. Van incluidos los permisos para hacer operaciones DML y SQL contra estas tablas.  CREATE ANY TABLE  permite crear tablas y hacer que pertenezcan a otro usuario.  DROP ANY TABLE  permite eliminar tablas que pertenecen a otro usuario.  INSERT/UPDATE/DELETE/SELECT ANY TABLE  permite hacer estas operaciones contra tablas que no son del usuario. 15 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 16. PRIVILEGIOS DE SISTEMA  Ejemplo de asignación de privilegios:  Con estos privilegios, alois puede conectarse y crear tablas en su schema. 16 GRANT create session, create table TO alois; Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 17. PRIVILEGIOS DE SISTEMA  Con la opción “with admin option”, el usuario que lo recibe puede traspasar sus permisos a otros usuarios. 17 Connect / as sysdba; Grant alter system to alois with admin option; Connect alois/oracle; Grant alter system to afra; Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 18. PRIVILEGIOS DE SISTEMA  Ejemplo para quitar un privilegio a un usuario:  Visualizar los privilegios de sistema que tiene un usuario: 18 select * from dba_sys_privs where grantee = 'HR'; Revoke alter system from afra; Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 19. PRIVILEGIOS SOBRE OBJETOS  Permite hacer SELECTs y operaciones DML sobre los objetos.  Estos permisos no afectan a las tablas que ha creado el mismo usuario. Si el usuario tiene el privilegio CREATE TABLE, también puede hacer SELECTs y DML contra las tablas que él creó.  Los privilegios aplicables a objetos son:  SELECT, INSERT, UPDATE, DELETE, ALTER, EXECUTE  Ejemplo de asignación: 19 GRANT SELECT ON hr.employees TO alois; GRANT UPDATE(salary) on hr.employees TO alois; GRANT ALL ON hr.regions TO alois; Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 20. TALLER 2 Conceder privilegios. Carmen Soler Chorro - http://www.linkedin.com/in/casoch 20
  • 21. GESTIONAR ROLES  Gestionar la seguridad asignando privilegios a cada uno de los usuarios, funciona, pero tenemos dos problemas:  Mucho trabajo. En una aplicación con miles de tablas podríamos necesitar millones de GRANTs.  Si queremos que un privilegio debe de estar activo durante un tiempo, tendríamos que ir usuario a usuario quitándoselo.  Un rol es un conjunto de privilegios que pueden ser asignados o revocados como una unidad y pueden ser activados o desactivados. 21 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 22. GESTIONAR ROLES  Crear un rol:  CREATE ROLE rolename;  Un rol no puede tener el mismo nombre que un usuario existente. 22 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 23. ROLES PREDEFINIDOS  Existen al menos 50 roles predefinidos en Oracle. Los más importantes:  CONNECT  Sólo tiene el privilegio de CREATE SESSION.  Se mantiene por compatibilidad con versiones anteriores.  RESOURCE  Permite crear tablas y procedures.  Además, incluye UNLIMITED TABLESPACE.  DBA  Tiene todos los privilegios.  SELECT_CATALOG_ROLE  Contiene permisos de lectura sobre objetos del diccionario de datos.  Se utiliza con administradores junior para que pueda monitorizar la base de datos.  PUBLIC  Rol que tienen asignado todos los usuarios por defecto.  Es útil porque si queremos asignar un privilegio a todos los usuarios de la base de datos, basta con asignárselo a este rol. 23 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 24. TALLER 3 Crear roles. Carmen Soler Chorro - http://www.linkedin.com/in/casoch 24
  • 25. GESTIONAR PERFILES  Los perfiles se aplican para:  Limitar los recursos de sistema que pueden utilizar los usuarios o los roles.  Controlar el número de veces que fallan su password. 25 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 26. GESTIONAR PERFILES  PASSWORDS  Control sobre los passwords:  FAILED_LOGIN_ATTEMPS  Número de veces seguidas que puede fallarse un password antes de que la cuenta sea bloqueada.  PASSWORD_LOCK_TIME  Número de días que la cuenta queda bloqueada después de haber alcanzado el número anterior.  PASSWORD_LIFE_TIME  Tiempo de vida de un password. Se puede hacer que un password caduque cada cierto tiempo.  PASSWORD_GRACE_TIME  Días después de que el password caduque en que se permite al usuario cambiar su password.  PASSWORD_VERIFY_FUNCTION  El nombre de una función que se encarga de comprobar que el password sea lo suficientemente complejo. 26 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 27. GESTIONAR PERFILES  PASSWORDS  Control sobre los passwords:  PASSWORD_VERIFY_FUNCTION  Para 11g se utiliza una función que se llama VERIFY_FUNCION_11G, que hace comprobaciones como:  Password de al menos 8 caracteres  No puede ser lo mismo que el nombre de usuario.  Deben tener al menos una letra y al menos un dígito.  Debe diferir en al menos 3 caracteres del password anterior.  Existen una serie de palabras que se consideran “demasiado comunes” que no pueden ser asignadas, como por ejemplo “oracle”.  Esta función no existe por defecto, tenemos que crearla a partir de script utlpwdmg.sql que tenemos en el directorio: C:appusuariproduct11.2.0dbhome_1RDBMSADMIN 27 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 28. GESTIONAR PERFILES  RECURSOS  Limitación de recursos:  SESSIONS_PER_USER  Número de sesiones que puede tener abiertas un mismo usuario.  CPU_PER_SESSION  Tiempo de CPU que puede consumir una sesión del usuario.  CPU_PER_CALL  Tiempo de CPU que se puede consumir por sentencia SQL.  CONNECT_TIME  Número de minutos que puede durar una sesión.  IDLE_TIME  Número de minutos que puede durar una sesión sin que el usuario esté trabajando.  Todos estos recursos no se aplican a menos que un parámetro llamado RESOURCE_LIMIT esté activado:  ALTER SYSTEM SET RESOURCE_LIMIT = TRUE; 28 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 29. GESTIONAR PERFILES  Pueden ser gestionados desde SQL*Plus o desde el Database Control.  Para ver qué perfiles tiene asignados cada usuario:  SELECT USERNAME, PROFILE FROM DBA_USERS;  Por defecto, todos los users, tienen asignados el perfil DEFAULT.  Para ver qué características tiene un perfil:  SELECT * FROM DBA_PROFILES WHERE PROFILE=‘DEFAULT’;  Desde el Database Control, hemos de ir a la pestaña de Servidor y lo veremos dentro de la sección de Seguridad de Usuarios. 29 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 30. GESTIONAR PERFILES CREATE PROFILE PROGRAMMER_PROFILE LIMIT SESSIONS_PER_USER 2 PASSWORD_LIFE_TIME 7; ALTER USER ALOIS PROFILE PROGRAMMER_PROFILE; DROP PROFILE PROGRAMMER_PROFILE; -- no se puede si el perfil lo tiene asignado algún user. DROP PROFILE PROGRAMMER_PROFILE CASCADE; -- si el perfil está asignado a algún user, -- pone el perfil de ese user a default. 30 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 31. TALLER 4 Gestionar perfiles. Carmen Soler Chorro - http://www.linkedin.com/in/casoch 31

Notes de l'éditeur

  1. COMPROBAR CUAL ES EL TABLESPACE POR DEFECTO PARA LOS USUARIOS CREADOS ANTERIORMENTE.