Curso de Oracle Rapido Usuarios

download Curso de Oracle Rapido Usuarios

of 65

Transcript of Curso de Oracle Rapido Usuarios

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    1/65

    Gestin de seguridad

    La gestin de seguridad tiene mucho que ver con lagestin de usuarios y con la concesin y supresinde privilegios a los usuarios.

    El administrador de la base de datos es elresponsable de permitir o denegar el acceso a losusuarios a determinados objetos o recursos de labase de datos.

    Podemos clasificar la seguridad de la base de datosen dos categoras: seguridad del sistemayseguridadde los datos.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    2/65

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    3/65

    Gestin de seguridad

    La seguridad de los datos incluye los mecanismosque controlan el acceso y uso de la base de datos anivel de objetos.

    Por ejemplo: cada vez que se conecta un usuario aun objeto (una tabla, una vista, etc.), losmecanismos de seguridad comprobarn si elusuario puede acceder a ese objeto y qu tipo de

    operacin puede hacer con l (SELECT, INSERT,etc.).

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    4/65

    Gestin de seguridad

    USUARIOS

    Un usuario es un nombre definido en la base dedatos que se puede conectar a ella y acceder a

    determinados objetos segn ciertas condicionesque define el administrador.

    Para acceder a la base de datos, los usuarios debenejecutar la aplicacin de base de datos, como

    SQL*Plus, Oracle Forms y conectarse usando elnombre definido en la base de datos.

    Tambin pueden acceder a travs de un navegadorweb.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    5/65

    Gestin de seguridad

    USUARIOS

    Asociado con cada usuario de la base de datos hayun esquema con el mismo nombre.

    Un esquema es una coleccin lgica de objetos(tablas, vistas, secuencias, sinnimos, ndices,clusters, procedures, funciones, paquetes, etc.)

    Por defecto, cada usuario tiene acceso a todos los

    objetos de su esquema correspondiente, y puedeacceder a los objetos de otro usuario siempre ycuando ste otro le haya concedido el privilegio dehacerlo.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    6/65

    Gestin de seguridad

    USUARIOS Creacin de usuarios

    Al instalar Oracle se crean automticamente dos

    usuarios con privilegio de administrador (DBA): Elusuario SYS y SYSTEM.

    El usuario SYS es el propietario de las tablas deldiccionario de datos

    En ellas se almacena informacin sobre el resto de lasestructuras de la base de datos.

    Oracle maneja las tablas del usuario SYS y ningnusuario, ni el administrador, puede modificarlas.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    7/65

    Gestin de seguridad

    USUARIOS Creacin de usuarios

    Slo nos conectamos como usuario SYS cuando las

    instrucciones de Oracle lo exijan. El diccionario de datos est formado por un conjunto

    de tablas y vistas en el tablespace SYSTEM.

    Los usuarios tienen acceso de slo lectura a las vistas

    de este diccionario, el cual se crea a la vez que la basede datos y es propiedad del usuario SYS.

    Contiene objetos de la base de datos, nombres deusuario, derechos y autorizaciones, restricciones,informacin sobre el espacio libre, exportacin y

    otros objetos.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    8/65

    Gestin de seguridad

    USUARIOS Creacin de usuarios

    Los objetos del diccionario de datos a los que un

    usuario puede acceder se encuentran en la vistaDICTIONARY, que es propiedad del usuario SYS.

    Con la siguiente orden se visualizan los objetos deldiccionario de datos a los que se puede acceder.

    SQL> SELECT TABLE_NAME FROM DICTIONARY

    El prefijo de una vista del diccionario indica el nivelde acceso a l:

    Vistas USER y ALL Accesibles para todos los usuarios

    Vistas DBA Slo el administrador puede usarlas.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    9/65

    Gestin de seguridad

    USUARIOS Creacin de usuarios

    El usuario SYSTEM es creado por Oracle para

    realizar las tareas de administracin de la base dedatos.

    No se suelen crear tablas de usuario en el esquemaSYSTEM.

    Para crear otros usuarios es preciso conectarse comousuario SYSTEM, ya que ste posee el correspondienteprivilegio.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    10/65

    Gestin de seguridad

    USUARIOS Creacin de usuarios

    El administrador de la base de datos ha de crearse un

    usuario para s mismo con los derechos deadministrador y realizar todas las tareas deadministracin con este nombre de usuario.

    Para crear usuarios se necesita el privilegio CREATEUSER.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    11/65

    Gestin de seguridad

    USUARIOS Creacin de usuarios

    El formato de la orden CREATE USER es:

    CREATE USER nombre_usuario

    IDENTIFIED BY clave_acceso

    [DEFAULT TABLESPACE espacio_tabla]

    [TEMPORARY TABLESPACE espacio_tabla][QUOTA {entero {K|M} | UNLIMITED} ON espacio_tabla]

    [PROFILE perfil];

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    12/65

    Gestin de seguridad

    USUARIOS Creacin de usuarios

    La primera opcin, CREATE USER, crea un nombre de

    usuario que ser identificado por el sistema. La segunda opcin, IDENTIFIED BY, permite dar una

    clave de acceso al usuario creado.

    DEFAULT TABLESPACE asigna a un usuario el

    tablespace por defecto para almacenar los objetos quecree. Si no se asigna, por defecto es USERS.

    TEMPORARY TABLESPACE especifica el nombre detablespace para trabajos temporales, por defecto TEMP.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    13/65

    Gestin de seguridad

    USUARIOS Creacin de usuarios

    QUOTA asigna un espacio en megabytes o en kilobytes

    en el tablespace asignado. Si no se establece esta clusula, el usuario no tiene

    cuota asignada y no podr crear objetos en eltablespace.

    Si un usuario dispone de acceso y de recursosilimitados a cualquier tablespace, se le debe dar elprivilegio UNLIMITED TABLESPACE con la ordenGRANT.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    14/65

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    15/65

    Gestin de seguridad

    USUARIOS Creacin de usuarios

    Vistas con informacin de usuarios:

    USER_USERS obtiene del usuario actual: la fecha decreacin, los tablespaces asignados, el identificador,etc.

    ALL_USERS obtiene informacin de todos losusuarios creados en la base de datos: el nombre, lafecha de creacin y su identificador.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    16/65

    Gestin de seguridad

    USUARIOS Modificacin de usuarios

    Las opciones dadas a un usuario en la orden CREATE

    USER se pueden modificar con la ordenALTER USER. El formato es el siguiente:

    ALTER USER nombre_usuario

    IDENTIFIED BY clave_acceso[DEFAULT TABLESPACE espacio_tabla]

    [TEMPORARY TABLESPACE espacio_tabla]

    [QUOTA {entero {K|M} | UNLIMITED} ON espacio_tabla]

    [PROFILE perfil];

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    17/65

    Gestin de seguridad

    USUARIOS Modificacin de usuarios

    Los parmetros de ALTER USER significan lo mismo

    que en la orden CREATE. Cada usuario puede cambiar nicamente su clave de

    acceso, no puede cambiar nada ms a no ser que tengael privilegio ALTER USER.

    Por ejemplo el USUARIO1 cambia su clave.

    ALTER USER USUARIO1 IDENTIFIED BY NUEVACLAVE;

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    18/65

    Gestin de seguridad

    USUARIOS Borrado de usuarios

    Podemos borrar un usuario de la base de datos,

    incluidos los objetos que contiene. Para borrar usuarios se usa la orden DROP USER:

    DROP USER usuario [CASCADE];

    La opcin CASCADE suprime todos los objetos delusuario antes de borrar el usuario.

    Para poder borrar usuarios es necesario tener elprivilegio DROP USER.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    19/65

    Gestin de seguridad

    PRIVILEGIOS Un privilegio es la capacidad de un usuario, dentro de

    la base de datos, de realizar determinadas operaciones

    o acceder a determinados objetos de otros usuarios. Ningn usuario puede llevar a cabo ninguna operacin

    si antes no se le ha concedido permiso.

    Mediante la asignacin de privilegios se permite orestringe el acceso a los datos o la realizacin de

    cambios en los datos, la creacin de funciones, etc.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    20/65

    Gestin de seguridad

    PRIVILEGIOS Cuando se crea un usuario es necesario darle

    privilegios para que pueda hacer algo.

    Oracle ofrece varios roles o funciones. Tres de ellos se aplican al entorno de desarrollo:

    CONNECT

    RESOURCE

    DBA

    El resto estn relacionados con la administracin de labase de datos.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    21/65

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    22/65

    Gestin de seguridad

    PRIVILEGIOS Hay dos tipos de privilegios que podemos definir en la

    base de datos:privilegios sobre los objetosyprivilegios

    del sistema. Privilegios sobre los objetos

    Estos privilegios nos permiten acceder y realizarcambios en los datos de los objetos de otros usuarios.

    Por ejemplo, el privilegio de consultar la tabla de otrousuario es un privilegio sobre objetos.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    23/65

    Gestin de seguridad

    PRIVILEGIOS Privilegios sobre los objetos

    Se dispone de los siguientes privilegios sobre los

    objetos tablas, vistas, secuencias y procedures:Privilegio Tabla Vista Secuencia Procedure

    ALTER X X

    DELETE X X

    EXECUTE X

    INDEX X

    INSERT X X

    REFERENCES X

    SELECT X X X

    UPDATE X X

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    24/65

    Gestin de seguridad

    PRIVILEGIOS Privilegios sobre los objetos La orden para dar privilegios sobre los objetos es GRANT, con el

    siguiente formato:GRANT {priv_objeto [,priv_objeto]...|ALL [PRIVILEGES]}

    *(columna *,columna+)+

    ON [usuario.]objeto}

    TO {usuario|rol|PUBLIC [,{usuario|rol|PUBLIC-+[WITH GRANT OPTION];

    Mediante GRANT se pueden conceder privilegios INSERT,UPDATE o REFERENCES sobre determinados campos de la tabla.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    25/65

    Gestin de seguridad

    PRIVILEGIOS Privilegios sobre los objetos

    ON especifica el objeto sobre el que se dan los privilegios.

    TO identifica a los usuarios o roles a los que se conceden losprivilegios.

    ALL concede todos los privilegios sobre el objetoespecificado.

    WITH GRANT OPTION permite que el receptor del

    privilegio o rol se lo asigne a otros usuarios o roles. PUBLIC asigna los privilegios a todos los usuarios actuales y

    futuros, de este modo se garantiza el acceso a determinadosobjetos a todos los usuarios de la base de datos.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    26/65

    Gestin de seguridad

    PRIVILEGIOS Privilegios sobre los objetos. Ejemplos

    Se concede al usuario FRANCISCO los privilegios de SELECT

    e INSERT en la TABLA1:GRANT SELECT, INSERT ON TABLA1 TO FRANCISCO;

    Se concede todos los privilegios sobre TABLA1 a todos losusuarios, incluyendo a los que se creen despus:

    GRANT ALL ON TABLA1 TO PUBLIC;

    Se concede privilegios al usuario JUAN sobre TABLA1 paraque pueda modificar slo el campo TEMPERATURA:

    GRANT UPDATE (TEMPERATURA) ON TABLA1 TO JUAN;

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    27/65

    Gestin de seguridad

    PRIVILEGIOS Privilegios del sistema

    Son los que dan derecho a ejecutar un tipo de comando

    SQL o a realizar alguna accin sobre objetos de un tipoespecificado.

    Por ejemplo, el privilegio para crear tablespaces es unprivilegio del sistema.

    Existen ms de 80 tipos de privilegios distintosdisponibles.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    28/65

    Gestin de seguridad

    PRIVILEGIOS Privilegios del sistema

    Privilegio Operaciones autorizadasINDEX

    CREATE ANY INDEX Crear un ndice en cualquier esquema, en

    cualquier tabla.

    ALTER ANY INDEX Modificar cualquier ndice de la base de

    datos.

    DROP ANY INDEX Borrar cualquier ndice de la base de datos.

    PRIVILEGE

    GRANT ANY PRIVILEGE Conceder cualquier privilegio de sistema.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    29/65

    Gestin de seguridad

    PRIVILEGIOS Privilegios del sistema

    Privilegio Operaciones autorizadas

    PROCEDURE

    CREATE ANY PROCEDURE Crear procedimientos almacenados, funciones y

    paquetes en cualquier esquema.

    CREATE PROCEDURE Crear procedimientos almacenados, funciones y

    paquetes en nuestro esquema.

    ALTER ANY PROCEDURE Modificar procedimientos almacenados, funciones

    y paquetes en cualquier esquema.

    DROP PROCEDURE Borrar procedimientos almacenados, funciones y

    paquetes en cualquier esquema.

    EXECUTE ANY PROCEDURE Ejecutar procedimientos, funciones o referencias a

    paquetes pblicos en cualquier esquema.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    30/65

    Gestin de seguridad

    PRIVILEGIOS Privilegios del sistema

    Privilegio Operaciones autorizadas

    PROFILE

    CREATE PROFILE Crear un perfil de usuario.

    ALTER PROFILE Modificar cualquier perfil.

    DROP PROFILE Borrar cualquier perfil.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    31/65

    Gestin de seguridad

    PRIVILEGIOS Privilegios del sistema

    Privilegio Operaciones autorizadas

    ROLE

    CREATE ROLE Crear roles.

    ALTER ANY ROLE Modificar roles.

    DROP ANY ROLE Borrar cualquier rol.

    GRANT ANY ROLE Dar permisos para cualquier rol de la base dedatos.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    32/65

    Gestin de seguridad

    PRIVILEGIOS Privilegios del sistema

    Privilegio Operaciones autorizadas

    SEQUENCE

    CREATE SEQUENCE Crear secuencias en nuestro esquema.

    ALTER ANY SEQUENCE Modificar cualquier secuencia de la base de datos.

    DROP ANY SEQUENCE Borrar secuencias de cualquier esquema.

    SELECT ANY SEQUENCE Referenciar secuencias de cualquier esquema.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    33/65

    Gestin de seguridad

    PRIVILEGIOS Privilegios del sistema

    Privilegio Operaciones autorizadas

    SESSION

    CREATE SESSION Conectarnos a la base de datos.

    ALTER SESSION Manejar la orden ALTER SESSION.

    RESTRICTED SESSION Conectarnos a la base de datos cuando se ha

    levantado con STARUP RESTRICT.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    34/65

    Gestin de seguridad

    PRIVILEGIOS Privilegios del sistema

    Privilegio Operaciones autorizadas

    SYNONYM

    CREATE SYNONYM Crear sinnimos en nuestro esquema.

    CREATE PUBLIC SYNONYM Crear sinnimos pblicos.

    DROP PUBLIC SYNONYM Borrar sinnimos pblicos.

    CREATE ANY SYNONYM Crear sinnimos en cualquier esquema.DROP ANY SYNONYM Borrar sinnimos en cualquier esquema.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    35/65

    Gestin de seguridad

    PRIVILEGIOS Privilegios del sistema

    Privilegio Operaciones autorizadas

    TABLECREATE TABLE Crear tablas en nuestro esquema.

    CREATE ANY TABLE Crear una tabla en cualquier esquema.

    ALTER ANY TABLE Modificar una tabla en cualquier esquema.

    DROP ANY TABLE Borrar una tabla en cualquier esquema.

    LOCK ANY TABLE Bloquear una tabla en cualquier esquema.

    SELECT ANY TABLE Hacer SELECT en cualquier tabla.

    INSERT ANY TABLE Insertar registros en cualquier tabla.

    UPDATE ANY TABLE Modificar registros en cualquier tabla.

    DELETE ANY TABLE Borrar registros de cualquier tabla.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    36/65

    Gestin de seguridad

    PRIVILEGIOS Privilegios del sistema

    Privilegio Operaciones autorizadas

    TABLESPACES

    CREATE TABLESPACE Crear espacios de tablas.

    ALTER TABLESPACE Modificar tablespaces.

    MANAGE TABLESPACE Poner on-line u off-line cualquier tablespace.

    DROP TABLESPACE Eliminar tablespaces.UNLIMITED TABLESPACE Utilizar cualquier espacio de cualquier tablespace.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    37/65

    Gestin de seguridad

    PRIVILEGIOS Privilegios del sistema

    Privilegio Operaciones autorizadas

    TYPECREATE TYPE Crea tipos de objeto y cuerpos de tipos de objeto en el

    propio esquema.

    CREATE ANY TYPE Crea tipos de objeto y cuerpos de tipos de objeto en

    cualquier esquema.

    ALTER ANY TYPE Modifica tipos de objeto en cualquier esquema.

    DROP ANY TYPE Elimina tipos de objeto y cuerpos de tipos de objeto

    en cualquier esquema.

    EXECUTE ANY TYPE Utiliza y hace referencia a tipos de objeto y tipos de

    coleccin en cualquier esquema.

    UNDER ANY TYPE Crea subtipos a partir de cualquier tipo de objeto.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    38/65

    Gestin de seguridad

    PRIVILEGIOS Privilegios del sistema

    Privilegio Operaciones autorizadas

    USERCREATE USER Crear usuarios y crear cuotas sobre cualquier espacio

    de tablas, establecer espacios de tablas por omisin y

    temporales

    ALTER USER Modificar cualquier usuario. Este privilegio autoriza al

    que lo recibe a cambiar la contrasea de otro usuario,a cambiar cuotas sobre cualquier espacio de tablas, a

    establecer espacios de tablas por omisin, etc

    DROP USER Eliminar usuarios.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    39/65

    Gestin de seguridad

    PRIVILEGIOS Privilegios del sistema

    Privilegio Operaciones autorizadas

    VIEWCREATE VIEW Crear vistas en el esquema propio.

    CREATE ANY VIEW Crear vistas en cualquier esquema.

    DROP ANY VIEW Borrar vistas en cualquier esquema.

    OTROS

    SYSDBA Ejecutar operaciones STARTUP y SHUTDOWN, ALTER

    DATABASE, CREATE DATABASE, ARCHIVELOG y

    RECOVERY, etc.

    SYSOPER Ejecutar operaciones STARTUP y SHUTDOWN, ALTER

    DATABASE, CREATE DATABASE, ARCHIVELOG y

    RECOVERY, etc.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    40/65

    Gestin de seguridad

    PRIVILEGIOS Privilegios del sistema

    El formato de la orden GRANT para asignar privilegios

    del sistema es:GRANT {privilegio|rol} [, {privilegio|rol- , +

    TO {usuario|rol|PUBLIC [,{usuario|rol|PUBLIC-+

    [WITH ADMIN OPTION];

    TO identifica a los usuario o roles a los que se conceden losprivilegios

    WITH ADMIN OPTION permite que se puedan concederesos mismos privilegios a otros usuarios o roles.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    41/65

    Gestin de seguridad

    PRIVILEGIOS Retirada de privilegios

    Al igual que se conceden privilegios, se pueden retirar.

    Para retirar privilegios se usa la orden REVOKE. El formato para retirar privilegios de objetos a los

    usuarios o roles es:

    REVOKE {priv_objeto [, {priv_objeto+ |ALL *PRIVILEGES+-

    ON [usuario.]objetoFROM {usuario|rol|PUBLIC} [,{usuario|rol|PUBLIC-+;

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    42/65

    Gestin de seguridad

    PRIVILEGIOS Retirada de privilegios

    El formato para retirar privilegios de sistema o roles a

    usuarios o para retirar privilegios de roles es:REVOKE {priv_sistema|rol} [, {priv_sistema|rol- +

    FROM {usuario|rol|PUBLIC} [,{usuario|rol|PUBLIC-+;

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    43/65

    Gestin de seguridad

    PRIVILEGIOS Retirada de privilegios. Ejemplos

    Retirar los privilegios SELECT y UPDATE sobre TABLA1

    a FRANCISCOREVOKE SELECT, UPDATE ON TABLA1 FROM FRANCISCO;

    Retirar todos los privilegios concedidos a FRANCISCOy a JUAN

    REVOKE ALL ON TABLA1 FROM FRANCISCO, JUAN;

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    44/65

    Gestin de seguridad

    PRIVILEGIOS Vistas con informacin de los privilegios

    Para conocer los privilegios que han concedido o

    recibido los usuarios sobre los objetos o a nivel desistema, podemos consultar las siguientes vistas deldiccionario de datos: SESSION_PRIVS: privilegios del usuario activo.

    USER_SYS_PRIVS: privilegios de sistema asignados al usuario.

    DBA_SYS_PRIVS: privilegios de sistema asignados a losusuarios o a los roles.

    USER_TAB_PRIVS: concesiones sobre objetos que sonpropiedad del usuario, concedidos o recibidos por ste.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    45/65

    Gestin de seguridad

    PRIVILEGIOS Vistas con informacin de los privilegios

    USER_TAB_PRIVS_MADE: concesiones sobre objetos querecibe el usuario.

    USER_COL_PRIVS: concesiones sobre campos (columnas) enlas que el usuario es el propietario, asigna el privilegio o lorecibe.

    USER_COL_PRIVS_MADE: todas las concesiones sobre campos(columnas) de objetos que son propiedad del usuario.

    USER_COL_PRIVS_RECD: concesiones sobre campos(columnas) recibidas por el usuario.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    46/65

    Gestin de seguridad

    ROLES Cuando necesitemos que un conjunto de usuarios

    tengan los mismos privilegios para trabajar con ciertos

    datos, podemos agrupar dicho conjunto de privilegiosen un rol.

    Un rol o funcin es un conjunto de privilegios querecibe un nombre comn para facilitar la tarea deasignacin de stos a los usuarios o a otros roles.

    Los privilegios de un rol pueden ser de sistema y a nivelde objeto.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    47/65

    Gestin de seguridad

    ROLES En primer lugar creamos el rol con la orden SQL CREATE

    ROLEy, a continuacin, asignamos privilegios con la

    ordenGRANT

    . El formato es:CREATE ROLE NombreRol;

    Para crear un rol se requiere el privilegio CREATEROLE.

    Por ejemplo, creamos un rol llamado ACCESO.

    CREATE ROLE ACCESO;

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    48/65

    Gestin de seguridad

    ROLES Conceder privilegios a los roles

    Una vez creado un rol tenemos que concederle

    privilegios usando la orden GRANT. Por ejemplo, asignamos los privilegios al rol ACCESO:

    GRANT SELECT, INSERT ON EMPLE TO ACCESO;

    GRANT INSERT ON DEPART TO ACCESO;

    GRANT CREATE SESSION TO ACCESO;

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    49/65

    Gestin de seguridad

    ROLES Conceder privilegios a los roles

    Para conceder el rol a un usuario escribimos:

    GRANT ACCESO TO USUARIO;

    El usuario podr conectarse a la base de datos y hacerSELECT e INSERT en la tabla EMPLE, e INSERT en latabla DEPART.

    Se pueden aadir privilegios al rol ejecutando otraorden GRANT.

    GRANT SELECT ON DEPART TO ACCESO;

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    50/65

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    51/65

    Gestin de seguridad

    ROLES Supresin de un rol

    La orden DROP ROLE permite eliminar un rol de la

    base de datos. Oracle retira el rol concedido a todos los usuarios y

    roles a los que se concedi.

    Para poder eliminar un rol es necesario seradministrador o tener el privilegio DROP ANY ROLE.

    El formato es:

    DROP ROLE NombreRol;

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    52/65

    Gestin de seguridad

    ROLES Establecer un rol por defecto

    Es posible establecer un rol por defecto a un usuario

    mediante la ordenALTER USER. El formato es:

    ALTER USER NombreUsuario DEFAULT ROLE NombreRol;

    Por ejemplo establecemos el rol ACCESO por defecto

    para el USUARIO creado anteriormente:

    ALTER USER USUARIO DEFAULT ROLE ACCESO;

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    53/65

    Gestin de seguridad

    ROLES Informacin sobre roles en el diccionario de datos

    Para saber a qu usuarios se ha concedido acceso a un

    rol, o los privilegios que se han concedido a un rol, sepueden consultar las vistas del diccionario de datos:

    ROLE_SYS_PRIVS: privilegios del sistema asignados a roles.

    ROLE_TAB_PRIVS: privilegios sobre tablas aplicados a roles.

    ROLE_ROLE_PRIVS: roles asignados a otros roles.

    SESSION_ROLES: roles activos para el usuario.

    USER_ROLE_PRIVS: roles asignados al usuario.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    54/65

    Gestin de seguridad

    PERFILES Un perfil es un conjunto de lmites a los recursos de la

    base de datos.

    Se pueden utilizar perfiles para poner lmites a lacantidad de recursos del sistema y de la base de datosdisponibles para un usuario y para gestionar lasrestricciones de contrasea.

    Por ejemplo, se puede crear un perfil que limite el

    tiempo de conexin a la BD; si se asigna ese perfil a unusuario y este rebasa el tiempo lmite, no podr utilizarla BD a menos que se realice de nuevo la conexin.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    55/65

    Gestin de seguridad

    PERFILES Si no se crean perfiles en una base de datos, entonces se

    utiliza el perfil por defecto (DEFAULT) que especificarecursos ilimitados para todos los usuarios.

    La sentencia SQL para crear un perfil es CREATEPROFILE, cuyo formato es:

    CREATE PROFILE NombrePerfil LIMIT

    {parmetros_recursos|parmetros_contrasea}{entero [K|M] | UNLIMITED | DEFAULT};

    UNLIMITED, significa que no hay lmite sobre un recurso particular.

    DEFAULT coge el lmite del perfil DEFAULT.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    56/65

    Gestin de seguridad

    PERFILES parmetros_recursos:

    SESSIONS_PER_USER, CPU_PER_SESSION, CPU_PER_CALL,

    CONNECT_TIME, IDLE_TIME, LOGICAL_READS_PER_SESSION,LOGICAL_READS_PER_CALL, PRIVATE_SGA,COMPOSITE_LIMIT

    parmetros_contrasea:

    FAILED_LOGING_ATTEMPTS, PASSWORD_LIFE_TIME,

    PASSWORD_REUSE_TIME, PASSWORD_REUSE_MAX,PASSWORD_LOCK_TIME, PASSWORD_GRACE_TIME,PASSWORD_VERIFY_FUNCTION

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    57/65

    Gestin de seguridad

    PERFILES

    Recursos a limitar

    RECURSO FUNCIN

    SESSIONS_PER_USER Nmero de sesiones mltiplesconcurrentes permitidas por nombre

    de usuario

    CONNECT_TIME Limita el tiempo de conexin

    permitida por sesin antes de que el

    usuario sea

    desconectado (minutos)

    IDLE_TIME Limita el tiempo de inactividad

    permitido antes de que el

    usuario sea desconectado

    (minutos)

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    58/65

    Gestin de seguridad

    PERFILES

    Recursos a limitar

    RECURSO FUNCIN

    CPU_PER_SESSION Limita el tiempo mximo de CPU porsesin. Este valor se

    expresa en centsimas de

    segundo.

    CPU_PER_CALL Limita el tiempo mximo por CPU por

    llamada (de anlisis, ejecucin o

    bsqueda). En centsimas de

    segundo.

    LOGICAL_READS_PER_SESSION Limita el nmero de bloque de datos

    ledos en una sesin

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    59/65

    Gestin de seguridad

    PERFILES

    Recursos a limitar

    RECURSO FUNCIN

    LOGICAL_READS_PER_CALL Limita el nmero de bloques de datosledos por llamada (de anlisis, ejecucin o

    bsqueda)

    PRIVATE_SGA Limita el nmero de bytes

    enteros de espacio privado en la SGA (til

    para sistemas que utilicen multi-threaded)

    COMPOSITE_LIMIT Limita el coste total de recursos para una

    sesin en unidades de servicio basadas en

    una suma de los siguientes recursos:

    CPU_PER_SESSION, CONNECT_TIME,

    LOGICAL_READS_PER_SESSION y

    PRIVATE_SGA

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    60/65

    Gestin de seguridad

    PERFILES

    Recursos a limitar

    RECURSO FUNCIN

    FAILED_LOGIN_ATTEMPS Nmero de intentos de acceso sin xitoconsecutivos que producir el bloqueo de

    la cuenta.

    PASSWORD_LIFE_TIME Nmero de das que puede utilizarse una

    contrasea antes de que caduque.

    PASSWORD_REUSE_TIME Nmero de das que deben pasar antes deque se pueda reutilizar una contrasea.

    PASSWORD_REUSE_MAX Nmero de veces que debe cambiarse una

    contrasea antes de poder reutilizarla.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    61/65

    Gestin de seguridad

    PERFILES

    Recursos a limitar

    RECURSO FUNCIN

    PASSWORD_LOCK_TIME Nmero de das que quedar bloqueadauna cuenta si se sobrepasa el valor del

    parmetro FAILED_LOGIN_ATTEMPTS.

    PASSWORD_GRACE_TIME Nmero de das del periodo de gracia

    durante el cual una contrasea puede

    cambiarse cuando ha alcanzado su valor

    PASSWORD_LIFE_TIME.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    62/65

    Gestin de seguridad

    PERFILES Para activar el uso de perfiles en el sistema, el

    administrador ha de ejecutar esta orden:

    ALTER SYSTEM SET RESOURCE_LIMIT=TRUE; FALSE desactiva la utilizacin de perfiles.

    Para asignar un perfil a un usuario se puede utilizar laorden ALTER USER:

    ALTER USER USUARIO PROFILE nombreperfil;

    O bien al crear el usuario se le puede asignar un perfil.

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    63/65

    Gestin de seguridad

    PERFILES. Ejemplos Creamos el perfil PERFIL1, en el que limitamos a uno el

    nmero de sesiones concurrentes por usuario ya dosminutos el tiempo de conexin permitido por sesin:

    CREATE PROFILE PERFIL1 LIMIT SESSIONS_PER_USER 1CONNECT_TIME 2;

    A continuacin se crea el usuario PRUEBA, se le asigna elPERFIL1y se le concede el rol CONNECT:

    SQL>CREATE USER PRUEBA IDENTIFIED BY PRUEBA

    QUOTA 100K ON USERS PROFILE PERFIL1;

    SQL>GRANT CONNECT TO PRUEBA;

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    64/65

    Gestin de seguridad

    PERFILES. Ejemplos Creamos el perfil PERFIL2, en el se permiten tres intentos

    de acceso fallidos para la cuenta, el cuarto producir elbloqueo de la cuenta:

    CREATE PROFILE PERFIL2 LIMIT FAILED_LOGIN_ATTEMPTS 3;

    Se asigna al usuario prueba

    ALTER USER PRUEBA PROFILE PERFIL2;

    Si hay 3 conexiones fallidas consecutivas en la cuentaPRUEBA quedar bloqueada por Oracle. Para desbloquearuna cuenta, el administrador tiene que ejecutar:

    ALTER USER PRUEBA ACCOUNT UNLOCK;

  • 7/31/2019 Curso de Oracle Rapido Usuarios

    65/65