segunda practica de seguridad de base de datos

Upload: milan-yb

Post on 06-Jul-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/17/2019 segunda practica de seguridad de base de datos

    1/12

    UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGAFACULTAD DE ING. MINAS, GELOGIA Y CIVIL

    ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

    Lab. Administración de Base de Datos 1 Prof. Elvira Fernández(IS-443)

    I.  TEMA:  Crear USUARIOS BASE DE DATOS DE CONTROL

      Crear USUARIOS en Windows

      Asignar/Denegar Permisos sobre el sistema

      Asignar/Denegar Permisos sobre los objetos de las Bases de Datos

      Crear PERFILES, PRIVILEGIOS Y ROLES.

    II.

     MARCO TEORICO

    2.1 CUENTAS DE USUARIO

    Tanto Oracle como SQL Server utilizan el concepto de cuenta de usuario

    para que los usuarios autorizados puedan conectarse a la base de datos. En Oracle

    recibe el nombre de usuario  o username. En SQL Server se le llama login ID  osimplemente login. Cualquier operación que realice un usuario está regida por los

    privilegios asignados a su cuenta.

    En las bases de datos Oracle encontramos tres tipos de usuarios:

      Propietarios del Esquema usuarios  que crean y mantienen los objetos

    relacionados con una aplicación

      Usuarios de la aplicación usuarios (o sistemas) que manipulan los datos de

    las tablas creadas por los propietarios.

      Usuarios administrativos  usuarios con roles especiales como el deadministrador de la base de datos o administrador de la seguridad.

    2.1.1 CARACTERÍSTICAS DE LOS USUARIOS DE ORACLE

    A los usuarios de Oracle se les puede asignar la configuración referida a:

      Nombre de usuario.  No puede repetirse y como máximo debe tener 30

    caracteres que sólo podrán contener letras del alfabeto inglés, números, elsigno dólar y el signo de guión bajo (_)

      Configuración física. Se refiere al espacio asociado al usuario para almacenarsus datos (lo que Oracle llama tablespace) y la cuota (límite dealmacenamiento) que se le asigna.

      Perfil asociado. El perfil del usuario indica los recursos y configuración quetomará el usuario al sistema

      Privilegios y roles.  Permiten especificar las acciones que se le permitenrealizar al usuario.

  • 8/17/2019 segunda practica de seguridad de base de datos

    2/12

    UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGAFACULTAD DE ING. MINAS, GELOGIA Y CIVIL

    ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

    Lab. Administración de Base de Datos 2 Prof. Elvira Fernández(IS-443)

    2.1.2 ESTADO DE LA CUENTA DE USUARIO:

      Abierta. El usuario puede conectar y realizar sus acciones habituales

      Bloqueada. EL usuario no podrá conectar mientras siga en estado

    bloqueado. El bloqueo lo realiza el DBA:ALTER USER usuario ACCOUNT LOCK

      Expirada. La cuenta agotó el tiempo máximo asignado a ella. Para salir deeste estado, el usuario/a debe resetear su contraseña de usuario.

      Expirada y bloqueada. 

      Expirada en periodo de gracia. Está en los últimos momentos de uso antesde pasar a estado de expirada

    2.2 CONCEPTOS DE GESTIÓN DE PRIVILEGIOS Y RECURSOS 

    Concepto  Significado Privilegio Permiso para realizar una acción, asignable a un usuario o un rol

    Rol Conjunto de privilegios, asignables a un usuario o un rol

    Usuario Colección de objetos y privilegios identificado con un nombre ypassword

    Perfil Conjunto de restricciones relativas al uso de recursos, y asignable ausuarios. Un usuario sólo puede tener un perfil

    Recurso Uso susceptible de ser restringido, asignable a un perfil

    2.2.1 PRIVILEGIOS

      Por defecto un usuario no posee ningún privilegio en Oracle, estos debenser asignados.

      Para ello se emplean las instrucciones GRANT y REVOKE.

      Usuarios DBA tienen derechos a asignar todos los tipos de privilegios

      Existen 200 privilegios del sistema, veremos los más importantes:

      CREATE SESSION: permite que un usuario pueda conectarse a la basede datos

      ALTER DATABASE:  permite ejecutar comandos para modificar la

    estructura física.  ALTER SYSTEM:  permite modificar parámetros de la instancia y

    estructuras de memoria  CREATE TABLE:  permite ejecutar DML y DDL en el esquema del

    propietario  SELECT ANY TABLE

    EJEMPLO:

    Grant  create session, alter session, create table, create view, create

    synonym, create cluster, create database link, create sequence, create

    trigger, create type, create procedure, create operator to JuanPerez;

  • 8/17/2019 segunda practica de seguridad de base de datos

    3/12

    UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGAFACULTAD DE ING. MINAS, GELOGIA Y CIVIL

    ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

    Lab. Administración de Base de Datos 3 Prof. Elvira Fernández(IS-443)

    2.2.2 ROLES

      Asignar privilegios es complicado y tedioso porque puede ser necesariodigitar cientos de grant.

      Un ROL agrupa un gran conjunto de privilegios.

    Sisntaxis:

    CREATE ROLE NombreRol;

      Los grant a un rol normalmente incluyen WITH ADMIN o WITH OPTION

    Ejemplo  Se crearan 3 roles con privilegios.

    Create role hr_junior;

    Grant create session to hr_junior;

    Grant select on hr.regions to hr_junior;

    Create Role hr_senior;

    Grant hr_junior to hr_senior with admin option;Grant insert, update, delete on hr.regions to hr_senior;

    2.2.3 ROLES PREDEFINIDOS

      Connect:  por compatibilidad ahora equivale al privilegio CREATESESSION

      Resource: Todos los permisos necesarios para tener recursos para lacreación de objetos 

      DBA: Todos los permisos para un administrador de base de datos(DBA) 

     

    SCHEDULER_ADMIN:

     privilegios para manejar trabajos planificados.

    2.2.4 PROFILE

      Para obligar una política de password y para restringir los recursos a unasesión.

      La política de password siempre está activa, la limitación a recursos a unasesión debe indicarse en el parámetro RESOURCE_LIMIT 

    2.6 GESTION DE PRIVILEGIOS Y RECURSOS

  • 8/17/2019 segunda practica de seguridad de base de datos

    4/12

    UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGAFACULTAD DE ING. MINAS, GELOGIA Y CIVIL

    ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

    Lab. Administración de Base de Datos 4 Prof. Elvira Fernández(IS-443)

    III.  DESARROLLOCreación de usuarios:

    Sintaxis:CREATE USER nombre IDENTIFIED BY 'contraseña'EXTERNALLY | GLOBALLY AS nombreGlobal}[DEFAULT TABLESPACE tableSpacePorDefecto][TEMPORARY TABLESPACE tableSpacetTemporal][QUOTA {cantidad [K|M] | UNLIMITED} ON tablespace][PASSWORD EXPIRE][ACCOUNT {UNLOCK|LOCK}];[PROFILE {perfil | DEFAULT}]

    Para la gestión de se utilizan los comandos

    Usuarios CREATE USER (crear)ALTER USER (modificar)DROP USER (borrar)GRANT (conceder un permiso o un rol a un usuario)REVOKE (denegar un permiso o un rol a un usuario)

    CREACION DE USUARIOS- BASE DE DATOS CONTROL

    1.Conectarse como usuario SYSTEM a la base y crear un usuario llamado

    “administrador” autentificado por la base de datos. Indicar como

      tablespace por

    defecto USERS y como tablespace temporal TEMP; asignar una cuota de 500K en el

    tablespace USERS.

    Por código: Prerrequisitos: Privilegio de sistema CREATE USER

    CREATE USER administrador01 IDENTIFIED BY 123456DEFAULT TABLESPACE USERSTEMPORARY TABLESPACE "TEMP" 

    QUOTA 500k ON USERS;

    EJERCICIOS:

    MODIFICACION DE USUARIOS

    2. Modifique el usuario administrador, para bloquear la cuenta del usuario y cambiar

    la contraseña a admin01.

    Por código: Prerrequisitos: Privilegio de sistema ALTER USER

    ;

  • 8/17/2019 segunda practica de seguridad de base de datos

    5/12

    UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGAFACULTAD DE ING. MINAS, GELOGIA Y CIVIL

    ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

    Lab. Administración de Base de Datos 5 Prof. Elvira Fernández(IS-443)

    Conectarse como usuario administrador y Explique qué sucede:

    _________________________________________________________________________________________________

    _________________________________________________________________________________________________

    ________________________________________________________________________________________

    3. Modifique el usuario administrador, para desbloquear la cuenta del usuario y que

    la cuente expire. Conectarse como administrador y ver qué sucede. De una solución.

    Escriba código:

    ;

    Rpta:___________________________________________________________________________________________

    _________________________________________________________________________________________________

    ____________________________________________________________________________________

    VISTAS DEL DICCIONARIO DE BD:

      dba_tablespaces: tablespaces que se encuentran creado en una base de datos 

      dba_profiles : donde nosotros podremos configurar los límites de recursos que queramos paralos usuarios de nuestra base de datos. 

      dba_users : Para obtener información de todos los usuarios de la base de datos, utiliza lavista 

    consultar usuarios  La vista administrativa DBA_USERS muestra la lista y

    configuración de todos los usuarios del sistema. Para observar la estructura de lavista, siempre es conveniente usar DESCRIBE DBA_USERS.

    SQL> DESC DBA_USERS;

    SQL> select username from DBA_USERS;

    CONCEDER PRIVILEGIOS

    Se usa con la instrucción GRANT que funciona así:

    GRANT privilegio1 [,privilegio2[,…]] TOusuario 

    [WITH ADMIN OPTION];

    La opción WITH GR NT OPTION  permite que el usuario al que se le concede el

     privilegio puede conceder dicho privilegio a otros usuarios. Es, por tanto, una

    opción a utilizar con cautela.

    INFORMACIÓN SOBRE PRIVILEGIOS

  • 8/17/2019 segunda practica de seguridad de base de datos

    6/12

    UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGAFACULTAD DE ING. MINAS, GELOGIA Y CIVIL

    ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

    Lab. Administración de Base de Datos 6 Prof. Elvira Fernández(IS-443)

    4-Otorgar el privilegio “CRE TE SESSION” al usuario “administrador” e 

    Intentar de nuevo la conexión sqlplus.

    Código:

    5. Conectarse como usuario “administrador” y crear un usuario llamado

    “prueba00” que tenga como "tablespace" por defecto USERS y como

     

    tablespace temporal TEMP; asignar una cuota de 0K en el tablespace

    USERS. ¿Es posible hacerlo?.

    6

    . Conectado como usuario SYSTEM, otorgar el privilegio “create user” al

     

    usuario “administrador” y repetir el ejercicio anterior. Explique

     

    7

    . veriguar que usuarios de la base de datos tienen asignado el privilegio “create

    user” de forma directa, ¿qué vista debe ser consultada?.

     

    SQL> select * from dba_sys_privs where privilege ='CREATE USER';  

  • 8/17/2019 segunda practica de seguridad de base de datos

    7/12

    UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGAFACULTAD DE ING. MINAS, GELOGIA Y CIVIL

    ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

    Lab. Administración de Base de Datos 7 Prof. Elvira Fernández(IS-443)

    9. Hacer lo mismo para el privilegio “create session”.

     

    10.Crear dos tablespace llamados TS_NOMINA y TS_ACADEMO, que contendrán

    datos relativos a las aplicaciones de nómina y datos académicos de los empleados de

    una empresa, según las siguientes características:

    Localizados en la unidad D:/ BD/lab02

    PRIVILEGIOS SOBRE LOS OBJETOS

    grant privilegio_d _objeto on nombre_tabla to usuario;

    grant select on t1 to usuario;

    CREACION DE ROLES

    Los roles se crean usando esta sintaxis :

    CREATE ROLE nombre_rol [NOT IDENTIFIED |

    IDENTIFIED {BY password | EXTERNALLY |

  • 8/17/2019 segunda practica de seguridad de base de datos

    8/12

    UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGAFACULTAD DE ING. MINAS, GELOGIA Y CIVIL

    ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

    Lab. Administración de Base de Datos 8 Prof. Elvira Fernández(IS-443)

    GLOBALLY | USING package}]; 

    La opción IDENTIFIED funciona igual que las formas de identificar un usuario, salvo laopción PACKAGE que hace que el rol sólo se pueda utilizar para el paquete de

    aplicaciones indicado. Por defecto un ROL no requiere identificación.

    La instrucción ALTER ROLE  permite modificar la configuración del rol (tiene las mismasopciones que CREATE ROLE)

    INFORMACIÓN SOBRE ROLES

    Buscar en la documentación en línea y en bd el contenido de las vistas:

    SQL> DESC DBA_PROFILES

    SQL> DESC DBA_ROLES

    SQL> DESC DBA_USERS

    SQL> DESC DBA_ROLE_PRIVS

    SQL> desc DBA_TAB_PRIVS

    SQL> DESC DBA_SYS_PRIVS

    11.probar a crear un rol llamado “Perfil_administrador”,  para que permita realizar

    consultas y actualizar los datos de la bd. Asígnele estos permisos solo para las

    tablas regiones y clientes al usuario HR..

    Ejecutar :

    SQL>

    12.Comprobar en el diccionario de datos los usuarios o roles que poseen el privilegio

    “CRE TE ROLE”.

     

    SQL> select * from dba_sys_privs where privilege ='CREATE ROLE';  

  • 8/17/2019 segunda practica de seguridad de base de datos

    9/12

    UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGAFACULTAD DE ING. MINAS, GELOGIA Y CIVIL

    ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

    Lab. Administración de Base de Datos 9 Prof. Elvira Fernández(IS-443)

    Crear un rol llamado conectarse que incluya los roles connect y resource, y asignar

    ese rol a Scott

    SQL>create role conectarse;

    SQL>grant connect, resource to conectarse;SQL>grant conectarse to scott;

    13

    .Crear un rol llamado “ DMIN”, asignarle los privilegios “create session”, “create

    user” y “CRE TE ROLE”. signarlo al usuario administrador.

     

    14.Consultar los privilegios de sistema que tiene asignados de forma directa el

    usuario “administrador”, revocarlos y asignarle el rol “admin.”.

     

    SQL> select * from dba_sys_privs where grantee ='ADMINISTRADOR'  

    15.- Asignarle privilegios de objeto que usted cree por conveniente, para ello tendrá

    que crear sus objetos.

    PROFILE

    Ver la configuracion del profile 

      Para ver los profiles asignados a los usuarios:  Select username, profile from dba_users;  Select * from dba_profiles where profile=‘DEFAULT’; 

    Creando un nuevo profile   Create profile dba_profile limit sessions_per_user unlimited

     password_life_time 7 password_grace_time 1;

      Alter user sys profile dba_profile;  Alter user system profile dba_profile;  Alter user Juancito profile dba_profile;

    16.Averiguar que usuarios de base de datos o que roles tienen asignadoel privilegio “CREATE PROFILE”. 

    SQL> select * from dba_sys_privs where privilege='CREATE PROFILE';

    17.Asignar el permiso “CREATE PROFILE” al rol Perfil_administrador.

    SQL> grant create profile to Perfil_administrador;

    18.Consultar que perfiles tiene asignados cada usuario de la base dedatos.

    SQL> select username, profile from dba_users order by username; 

  • 8/17/2019 segunda practica de seguridad de base de datos

    10/12

    UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGAFACULTAD DE ING. MINAS, GELOGIA Y CIVIL

    ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

    Lab. Administración de Base de Datos 10 Prof. Elvira Fernández(IS-443)

    21.Crear un perfil llamado “DESARROLLO” con las siguientesespecificaciones: 

    Límites aplicables a perfiles

    COMPOSITE_LIMIT 

    Suma del máximo de CPU_PER_SESSION, CONNECT_TIME, LOGICAL_READS_PER_SESSION y

    PRIVATE_SGA. Si este limite es excedido, Oracle aborta la sesión y regresa un error.

    CONNECT_TIME :Tiempo permitido de conexión por sesión en minutos.

    CPU_PER_CALL: Máximo tiempo de CPU por llamada en centésimas de segundo.

    CPU_PER_SESSION: Máximo tiempo de CPU por sesión en centésimas de segundo.

    IDLE_TIME: Tiempo máximo permitido sin actividad por el usuario antes de ser desconectado. Se

    expresa en minutos.

    LOGICAL_READS_PER_CALL: Máximo número de bloques de base de datos leídos por llamada.

    LOGICAL_READS_PER_SESSION :Máximo numero de bloques de base de datos leídos por sesión.

    PRIVATE_SGA: Máxima cantidad de bytes de espacio privado reservado en la SGA. Se puede expresar

    en el formato enteroK para kilobytes o enteroM para megabytes.

    SESSIONS_PER_USER: Máximo número de sesiones concurrentes permitidas por usuario.

    FAILED_LOGIN_ATTEMPTS :  Número de intentos fallidos de conexión de un usuario, antes de que

    Oracle ponga la cuenta bloqueada.

    PASSWORD_GRACE_TIME 

    Número de días de gracia para realizar un cambio de password de nuestra cuenta. Si en el periodo de

    tiempo delimitado no fue cambiado el password, el password expira.

    PASSWORD_LIFE_TIME: Número de días de vida de un password.

    PASSWORD_LOCK_TIME: Número de días que permanecerá bloqueado un usuario después de rebasar

    el límite FAILED_LOGIN_ATTEMPTS.

    PASSWORD_REUSE_MAX: Número de veces que debe cambiar una contraseña antes de poder ser re-

    usada la original.

    PASSWORD_REUSE_TIME: Número de días que tienen que pasar para poder re-usar un password.PASSWORD_VERIFY_FUNCTION:  En este parámetro, se puede especificar un script para validar el

    password. Por ejemplo, que tenga una determinada cantidad de caracteres, que tenga letras y números,

    etcétera.

    SQL> create profile desarrollo limit sessions_per_user 2 cpu_per_sessionunlimited cpu_per_call 6000 connect_time 480 idle_time 2failed_login_attempts 2 password_life_time 120; 

    22. Asignar el perfil anterior al usuario “administrador

    ”. 

  • 8/17/2019 segunda practica de seguridad de base de datos

    11/12

    UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGAFACULTAD DE ING. MINAS, GELOGIA Y CIVIL

    ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

    Lab. Administración de Base de Datos 11 Prof. Elvira Fernández(IS-443)

    SQL> alter user administrador profile desarrollo;

    23.Intentar la conexión dos veces como usuario “administrador”. fallando

    la contraseña, ¿qué sucede?. Comprobar si la cuenta ha sido bloqueadaen la vista de base de datos correspondiente.

    CONSULTA A LA VISTA DE BD

    SQL> select username, lock_date from dba_users where username like

    '  administrador %';

    MOSTRAR RESULTADO

    Para casa:

    1.- modificar el usuario Scott y cambiarle el pasword por tiger, crear como

    tablespace por defecto hr_data  y como tablespace temporal hr_temp; asignaruna cuota de 1000K on users, el pasword expire y desbloquear la cuenta.

    2. Abrir una sesión sqlplus e intentar conectarse como usuario

    “administrador

    01

    ”, ¿qué sucede?, ¿por qué?.

     

    3. Averiguar qué privilegios de sistema, roles y privilegios sobre objetos tiene

    concedidos el usuario “administrador”.

     

    4 Crear dos tablespace temporales, manejados de forma local, llamados

    TEMP_NOMINA y TEMP_ACADEMO con las siguientes características:

    Por codigo ydesde la base de datos control

  • 8/17/2019 segunda practica de seguridad de base de datos

    12/12

    UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGAFACULTAD DE ING. MINAS, GELOGIA Y CIVIL

    ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

    Lab. Administración de Base de Datos 12 Prof. Elvira Fernández(IS-443)

    Localizados en la unidad D:/ BD/lab02

    Por codigo:

    SQL> create temporary tablespace temp_academo

    tempfile 'd:\bd\lab02\temp_academo01.dbf'

    size 500k autoextend on next 50k maxsize 600k

    extent management local uniform size 100k;  

    Por codigo: temp_nomina ydesde la base de datos control

    5. como usuario administrador, intente crear una Tabla: tabla Alumno ( código

    int,Nombre varchar 15 )..que sucede, solucione le problema

    6.como usuario administrador, conceda privilegios de objeto sobre la nueva

    Tabla..y demuestre tales privilegios.

    7.Crear un usuario y asignarle un perfil, con los recursos que crea conveniente. Ver

    resultados