privilegios y usuarios en oracle

24
Privilegios y Usuarios en Oracle 1. Crear Usuarios y asignar privilegios en Oracle El siguiente es un resumen de algunas consideraciones al momento de crear un usuario o cuenta en Oracle, y los privilegios y roles que le podemos asignar.  El nombre de usuario no debe superar 30 caracteres, no debe tener caracteres especiales y debe iniciar con una letra.  Un método de autentificación. El mas común es una clave o password, pero Oracle 10g soporta otros métodos (como biometric, certificado y autentificación por medio de token).  Un Tablespace default, el cual es donde el usuario va a poder crear sus objetos por defecto, sin embargo, esto no significa que pueda crear objetos, o que tenga una cuota de espacio. Estos permisos se asignan de forma separada, salvo si utiliza el privilegio RESOURCE el que asigna una quota unlimited, incluso en el Tablespace SYSTEM! Sin embargo si esto ocurre, ud. puede posteriormente mover los objetos creados en el SYSTEM a otro Tablespace.  Un Tablespace temporal, donde el usuario crea sus objetos temporales y hace los sort u ordenamientos.  Un perfil o profile de usuario, que son las restricciones que puede tener su cuenta (opcional). Por ejemplo, conectado como el usuario SYS, creamos un usuario y su clave asi: SQL> CREATE USER ahernandez IDENTIFIED BY ahz DEFAULT TABLESPACE users; Si no se indica un Tablespace por defecto, el usuario toma el que está definido en la BD (generalmente el SYSTEM). Para modificar el Tablespace default de un usuario se hace de la siguiente manera: SQL> ALTER USER jperez DEFAULT TABLESPACE datos; También podemos asignar a los usuarios un Tablespace temporal donde se almacenan operaciones de ordenamiento. Estas incluyen las cláusulas ORDER BY, GROUP BY, SELECT DISTINCT, MERGE JOIN, o CREATE INDEX (también es utilizado cuando se crean Tablas temporales). SQL> CREATE USER jperez IDENTIFIED BY jpz DEFAULT TABLESPACE users

Upload: jhurtadok

Post on 12-Oct-2015

48 views

Category:

Documents


1 download

TRANSCRIPT

  • 5/21/2018 Privilegios y Usuarios en Oracle

    1/24

    Privilegios y Usuarios en Oracle

    1. Crear Usuarios y asignar privilegios en Oracle

    El siguiente es un resumen de algunas consideraciones al momento decrear un usuario o cuenta en Oracle, y los privilegios y roles que lepodemos asignar.

    El nombre de usuario no debe superar 30 caracteres, no debe tenercaracteres especiales y debe iniciar con una letra.

    Un mtodo de autentificacin. El mas comn es una clave opassword, pero Oracle 10g soporta otros mtodos (como biometric, certificadoy autentificacin por medio de token).

    Un Tablespace default, el cual es donde el usuario va a poder crearsus objetos por defecto, sin embargo, esto no significa que pueda crearobjetos, o que tenga una cuota de espacio. Estos permisos se asignan de

    forma separada, salvo si utiliza el privilegio RESOURCE el que asigna unaquota unlimited, incluso en el Tablespace SYSTEM! Sin embargo si estoocurre, ud. puede posteriormente mover los objetos creados en el SYSTEM aotro Tablespace.

    Un Tablespace temporal, donde el usuario crea sus objetostemporales y hace los sort u ordenamientos.

    Un perfil o profile de usuario, que son las restricciones que puedetener su cuenta (opcional).

    Por ejemplo, conectado como el usuario SYS, creamos un usuario y suclave asi:

    SQL> CREATE USER ahernandez IDENTIFIED BY ahzDEFAULT TABLESPACE users;

    Si no se indica un Tablespace por defecto, el usuario toma el que estdefinido en la BD (generalmente el SYSTEM). Para modificar el Tablespacedefault de un usuario se hace de la siguiente manera:

    SQL> ALTER USER jperez DEFAULT TABLESPACE datos;

    Tambin podemos asignar a los usuarios un Tablespace temporal donde sealmacenan operaciones de ordenamiento. Estas incluyen las clusulasORDER BY, GROUP BY, SELECT DISTINCT, MERGE JOIN, o CREATE INDEX(tambin es utilizado cuando se crean Tablas temporales).

    SQL> CREATE USER jperez IDENTIFIED BY jpzDEFAULT TABLESPACE users

  • 5/21/2018 Privilegios y Usuarios en Oracle

    2/24

    TEMPORARY TABLESPACE temp;

    Adicionalmente, a cada usuario se puede asignar a unprofileo perfil, quetiene dos propsitos principalmente:

    Limita el uso de recursos, lo que es recomendable, por ejemplo enambientes de Desarrollo.

    Garantiza y refuerza reglas de Seguridad a nivel de cuentas.

    Ejemplos, cuando se crea el usuario o asignar un perfil existente:

    SQL> CREATE USER jperez IDENTIFIED BY jpzDEFAULT TABLESPACE usersTEMPORARY TABLESPACE tempPROFILE resource_profile;

    SQL> ALTER USER jperezPROFILE perfil_desa;

    2. Modificar cuentas de Usuarios

    Para modificar un usuario creado, por ejemplo cambiar su clave, tenemosla sintxis:

    SQL> ALTER USER NOMBRE_USUARIOIDENTIFIED BY CLAVE_ACCESO[DEFAULT TABLESPACE ESPACIO_TABLA][TEMPORARY TABLESPACE ESPACIO_TABLA][QUOTA {ENTERO {K | M } | UNLIMITED } ON ESPACIO_TABLA[PROFILE PERFIL];

    3. Privilegios de Sistema y de Objetos

    En Oracle existen dos tipos de privilegios de usuario.

    3.1 System:Que permite al usuario hacer ciertas tareas sobre la BD, comopor ejemplo crear un Tablespace. Estos permisos son otorgados por eladministrador o por alguien que haya recibido el permiso para administrarese tipo de privilegio. Existen como 100 tipos distintos de privilegios deeste tipo.

    En general los permisos de sistema, permiten ejecutar comandos del tipoDDL (Data definition Language), como CREATE, ALTER y DROP o del tipoDML (Data Manipulation Language). Oracle 10g tiene mas de 170privilegios de sistema los cuales pueden ser vistos consultando la vista:SYSTEM_PRIVILEGE_MAP

  • 5/21/2018 Privilegios y Usuarios en Oracle

    3/24

    Entre todos los privilegios de sistema que existen, hay dos que son losimportantes: SYSDBA y SYSOPER. Estos son dados a otros usuarios quesern administradores de base de datos.

    Para otorgar varios permisos a la vez, se hace de la siguiente manera:

    SQL> GRANT CREATE USER, ALTER USER, DROP USER TO ahernandez;

    3.2 Object:Este tipo de permiso le permite al usuario realizar ciertasacciones en objetos de la BD, como una Tabla, Vista, un Procedure oFuncin, etc. Si a un usuario no se le dan estos permisos slo puedeacceder a sus propios objetos (vase USER_OBJECTS). Este tipo depermisos los da el owner o dueo del objeto, el administrador o alguien quehaya recibido este permiso explcitamente (con Grant Option).

    Por ejemplo, para otorgar permisos a una tabla Ventas para un usuarioparticular:

    SQL> GRANT SELECT,INSERT,UPDATE, ON analista.venta TO jperez;

    Adicionalmente, podemos restringir los DML a una columna de la tablamencionada. Si quisieramos que este usuario pueda dar permisos sobre latabla Factura a otros usuarios, utilizamos la clusula WITH GRANT OPTION.Ejemplo:

    SQL> GRANT SELECT,INSERT,UPDATE,DELETE ON venta TO mgarcia WITH

    GRANT OPTION;

    4. Asignar cuotas a Usuarios

    Por defecto ningun usuario tiene cuota en los Tablespaces y se tienen tresopciones para poder proveer a un usuario de una quota:

    4.1 Sin limite, que permite al usuario usar todo el espacio disponible de unTablespace.

    4.2Por medio de un valor, que puede ser en kilobytes o megabytes que el

    usuario puede usar. Este valor puede ser mayor o nenor que el tamao delTablespace asignado a l.

    4.3 Por medio del privilegio UNLIMITED TABLESPACE, se tiene prioridadsobre cualquier cuota dada en un Tablespace por lo que tienendisponibilidad de todo el espacio incluyendo en SYSTEM y SYSAUX.

  • 5/21/2018 Privilegios y Usuarios en Oracle

    4/24

    No se recomienda dar cuotas a los usuarios en los Tablespaces SYSTEM ySYSAUX, pues tipicamente slo los usuarios SYS y SYSTEM pueden crearobjetos en stos. Tampoco dar cuotas en los Tablespaces Temporal o deltipo Undo.

    5. Roles

    Finalmente los Roles, que son simplemente un conjunto de privilegios quese pueden otorgar a un usuario o a otro Rol. De esa forma se simplifica eltrabajo del DBA en esta tarea.

    Por default cuando creamos un usuario desde el Enterprise Manager se leasigna el permiso de connect, lo que permite al usuario conectarse a la BDy crear sus propios objetos en su propio esquema. De otra manera,debemos asignarlos en forma manual.

    Para crear un Rol y asignarlo a un usuario se hace de la siguiente manera:

    SQL> CREATE ROLE appl_dba;

    Opcionalmente, se puede asignar una clave al Rol:

    SQL> SET ROLE appl_dba IDENTIFIED BY app_pwd;

    Para asignar este Rol a un usuario:

    SQL> GRANT appl_dba TO jperez;

    Otro uso comn de los roles es asignarles privilegios a nivel de Objetos, porejemplo en una Tabla de Facturas en donde slo queremos que se puedanhacer 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;

    Nota: Existen algunos roles predefinidos, tales como:CONNECT, CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATESYNONYM, CREATE SEQUENCE, CREATE DATABASE LINK, CREATECLUSTER,ALTER SESSION, RESOURCE, CREATE PROCEDURE, CREATE SEQUENCE,CREATE TRIGGER, CREATE TYPE, CREATE CLUSTER, CREATE INDEXTYPE,

  • 5/21/2018 Privilegios y Usuarios en Oracle

    5/24

    CREATE OPERATOR SCHEDULER, CREATE ANY JOB, CREATE JOB, EXECUTEANY CLASS, EXECUTE ANY PROGRAM,MANAGE SCHEDULER, etc.

    DBA:Tiene la mayora de los privilegios, no es recomendable asignarlo a

    usuarios que no son administradores.

    SELECT_CATALOG_ROLE:No tiene privilegios de sistema, pero tienecerca de 1600 privilegios de objeto.

    Para consultar los roles definidos y los privilegios otorgados a travs deellos, utilize las vistas:

    SQL> select * from DBA_ROLES;SQL> select * from DBA_ROLE_PRIVS order by GRANTEE;1 comentariosEnviar por correo electrnicoEscribe un blogCompartir con TwitterCompartir conFacebookCompartir en Pinterest

    Conceptos de Almacenamiento en Oracle

    Conceptos de Almacenamiento en Oracle

    Concepto de Tablespace (espacio de tablas)Una base de datos se divide en unidades lgicas denominadasTABLESPACES. Un tablespace no es un fichero fsico en el disco,simplemente es el nombre que tiene un conjunto de propiedades dealmacenamiento que se aplican a los objetos (tablas, secuencias) que se

    van a crear en la base de datos bajo el tablespace indicado (tablas,secuencias).

    Un objeto en base de datos debe estar almacenado

    obligatoriamente dentro de un tablespace.

    Las propiedades que se asocian a un tablespace son: Localizacin de los ficheros de datos.

    Especificacin de mximas cuotas de consumo de disco.

    Control de la disponibilidad de los datos (en lnea o fuera de lnea).

    Backup de datos.

    Cuando un objeto se crea dentro de un cierto tablespace, este objetoadquiere todas las propiedades antes descritas del tablespace utilizado.

    http://epnbdd-oracle.blogspot.com/2012/05/privilegios-y-usuarios-en-oracle.html#comment-formhttp://epnbdd-oracle.blogspot.com/2012/05/privilegios-y-usuarios-en-oracle.html#comment-formhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=8748011406179519185&target=emailhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=8748011406179519185&target=twitterhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=8748011406179519185&target=facebookhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=8748011406179519185&target=facebookhttp://epnbdd-oracle.blogspot.com/2012/05/conceptos-de-almacenamiento-en-oracle.htmlhttp://epnbdd-oracle.blogspot.com/2012/05/conceptos-de-almacenamiento-en-oracle.htmlhttp://epnbdd-oracle.blogspot.com/2012/05/conceptos-de-almacenamiento-en-oracle.htmlhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=8748011406179519185&target=facebookhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=8748011406179519185&target=facebookhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=8748011406179519185&target=twitterhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=8748011406179519185&target=twitterhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=8748011406179519185&target=emailhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=8748011406179519185&target=emailhttp://epnbdd-oracle.blogspot.com/2012/05/privilegios-y-usuarios-en-oracle.html#comment-form
  • 5/21/2018 Privilegios y Usuarios en Oracle

    6/24

    En este esquema podemos ver que, por ejemplo, la tabla ARTICULO sealmacena dentro del tablespace A, y que por lo tanto tendr todas laspropiedades del tablespace A que pueden ser:

    Sus ficheros de datos estn en$ORACLE_HOME/datos/datos_tablespace_A

    Los objetos no pueden ocupar ms de 10Mb de espacio de base dedatos.

    En cualquier momento se puede poner fuera de lnea todos los objetode un cierto tablespace. -Se pueden hacer copiar de seguridad slo de ciertostablespaces.

    Si nos fijamos, se puede apreciar que es posible tener una tabla en untablespace, y los ndices de esa tabla en otro. Esto es debido a que losndices no son ms que objetos independientes dentro de la base de datos,como lo son las tablas. Y al ser objetos independientes, pueden ir entablespaces independientes. El tablespace SYSTEM es uno de los que secrear por defecto en todas las bases de datos Oracle. En l se almacenantodos los datos de sistema, el catlogo y todo el cdigo fuente y compilado

    de procedimientos PL/SQL. Tambin es posible utilizar el mismo tablespacepara guardar datos de usuario. En el esquema tambin vemos que hay untablespace Temporal (en gris oscuro). Este representa las propiedades quetendrn los objetos que la base de datos cree temporalmente para susclculos internos (normalmente para ordenaciones y agrupaciones). Sucreacin difiere en una de sus clusulas de creacin. El tablespace RO (engris claro) difiere de los dems en que es de solo lectura (Read Only), yque por lo tanto todos los objetos en l contenidos pueden recibir rdenesde consulta de datos, pero no de modificacin de datos. Estos puede residiren soportes de slo lectura, como pueden ser CDROMs, DVDs, etc. Cuandose crea un tablespace, ste se crea de lectura/escritura. Despus se puede

    modificar para que sea de solo lectura. Un tablespace puede estar en lneao fuera de ella (Online o OffLine), esto es que todos los objetos contenidosen l estn a disposicin de los usuarios o estn inhabilitados pararestringir su uso. Cualquier objeto almacenado dentro de un tablespace nopodr ser accedido si este est fuera de lnea.

    Concepto de Datafile (fichero de datos)

    http://2.bp.blogspot.com/-OI83BHHkc2E/TuEtOSK9FJI/AAAAAAAAAP8/TRvwxPgpSyk/s1600/01.JPG
  • 5/21/2018 Privilegios y Usuarios en Oracle

    7/24

    Un datafilees la representacin fsica de un tablespace. Son los "ficheros dedatos" donde se almacena la informacin fsicamente. Un datafile puedetener cualquier nombre y extensin (siempre dentro de las limitaciones delsistema operativo), y puede estar localizado en cualquier directorio deldisco duro, aunque su localizacin tpica suele ser

    $ORACLE_HOME/Database. Un datafile tiene un tamao predefinido en sucreacin (por ejemplo 100Mb) y este puede ser alterado en cualquiermomento. Cuando creemos un datafile, este ocupar tanto espacio en discocomo hayamos indicado en su creacin, aunque internamente est vaco.Oracle hace esto para reservar espacio continuo en disco y evitar as lafragmentacin. Conforme se vayan creando objetos en ese tablespace, seir ocupando el espacio que cre inicialmente.

    Un datafileest asociado a un solo tablespace y, a su vez, un tablespaceest asociado a uno o varios datafiles. Es decir, la relacin lgica entretablespaces y datafiles es de 1-N, maestro-detalle.

    En el esquema podemos ver como el Tablespace A est compuesto(fsicamente) por tres datafiles (DATOS_1.ORA, DATOS_2.ORA yDATOS_3.ORA). Estos tres datafilesson los ficheros fsicos que soportan losobjetos contenidos dentro del tablespace A. Aunque siempre se dice que losobjetos estn dentro del tablespace, en realidad las tablas estn dentrodel datafile, pero tienen la propiedades asociadas al tablespace.

    Cada uno de los datafilesutilizados est ocupando su tamao en disco (50Mb los dos primeros y 25 Mb el ltimo) aunque en realidad slo contengandos objetos y estos objetos no llenen el espacio que est asignado paralos datafiles.

    Los datafiles tienen una propiedad llamada AUTOEXTEND, que se si estactiva, se encarga de que el datafile crezca automticamente (segn untamao indicado) cada vez que se necesite espacio y no exista. Al igual quelos tablespaces, los datafiles tambin puede estar en lnea o fuera de ella.

    Concepto de Segment (segmento, trozo, seccin)

    http://4.bp.blogspot.com/-OOHNXF4sm50/TuEtLg9SdMI/AAAAAAAAAPw/1ShOIG6cPCM/s1600/02.JPG
  • 5/21/2018 Privilegios y Usuarios en Oracle

    8/24

    Un segment es aquel espacio reservado por la base de datos, dentro deun datafile, para ser utilizado por un solo objeto. As una tabla (o cualquierotro objeto) est dentro de su segmento, y nunca podr salir de l, ya quesi la tabla crece, el segmento tambin crece con ella. Fsicamente, todoobjeto en base de datos no es ms que un segmento (segmento, trozo,

    seccin) dentro de un datafile. Se puede decir que, un segmento es a unobjeto de base de datos, lo que un datafilea un tablespace: el segmento esla representacin fsica del objeto en base de datos (el objeto no es msque una definicin lgica).

    Podemos ver cmo el espacio que realmente se ocupa dentro del datafile esel segment y que cada segmento pertenece a un objeto.

    Existen cuatro tipos de segmentos (principalmente): Segmentos de TABLE: aquellos que contienen tablas

    Segmentos de INDEX: aquellos que contienen ndices

    Segmentos de ROLLBACK: aquellos se usan para almacenarinformacin de la transaccin activa.

    Segmentos TEMPORALES: aquellos que se usan para realizaroperaciones temporales que no pueden realizarse en memoria, tales comoordenaciones o agrupaciones de conjuntos grandes de datos.

    Concepto de Extent (extensin)

    Para cualquier objeto de base de datos que tenga cierta ocupacin en disco,

    es decir, cualquier objeto que tenga un segment relacionado, existe elconcepto de extent. Extent es un espacio de disco que se reserva de unasola vez, un segmento que se reserva en un momento determinado detiempo. El concepto de extent es un concepto fsico, unos estn separadosde otros dentro del disco. Ya dijimos que todo objeto tiene su segmentoasociado, pero lo que no dijimos es que este segmento, a su vez, secompone de distintas extensiones. Un segmento, puede ser reservado deuna sola vez (10 Mb de golpe), o de varias veces (5 Mb hoy y 5 Mb

    http://2.bp.blogspot.com/--QDBmmPiH-Y/TuEtJirI5kI/AAAAAAAAAPk/xO_mOAu8zaM/s1600/03.JPG
  • 5/21/2018 Privilegios y Usuarios en Oracle

    9/24

    maana). Cada una de las veces que se reserva espacio se denominaextensin.

    En el esquema vemos como el objeto (tabla) FACTURA tiene un segmentoen el datafile A-1, y este segmento est compuesto de 3 extensiones. Unade estas extensiones tiene un color distinto. Esto es porque existen dostipos de extensiones:

    INITIAL (extensiones iniciales): estas son las extensiones que sereservan durante la creacin del objeto. Una vez que un objeto est creado,

    no se puede modificar su extensin inicial.

    NEXT (siguientes o subsiguientes extensiones): toda extensinreservada despus de la creacin del objeto. Si el INITIAL EXTENT de unatabla est llena y se est intentando insertar ms filas, se intentar crear unNEXT EXTENT (siempre y cuando el datafile tenga espacio libre y tengamoscuota de ocupacin suficiente).

    Sabiendo que las extensiones se crean en momentos distintos de tiempo,es lgico pensar que unas extensiones pueden estar fragmentadas deotras. Un objeto de base de datos no reside todo junto dentro del bloque,sino que residir en tantos bloque como extensiones tenga. Por eso es

    crtico definir un buen tamao de extensin inicial, ya que, si es losuficientemente grande, el objeto nunca estar fragmentado.

    Si el objeto tiene muchas extensiones y stas estn muy separadas endisco, las consultas pueden retardarse considerablemente, ya que lascabezas lectoras tienes que dar saltos constantemente.

    El tamao de las extensiones (tanto las INITIAL como las NEXT), se definendurante la creacin del objeto y no puede ser modificado despus de lacreacin. Oracle recomienda que el tamao del INITIAL EXTENT sea igual altamao del NEXT EXTENT.

    La mejor solucin es calcular el tamao que tendr el objeto (tabla ondice), multiplicando el tamao de cada fila por una estimacin del nmerode filas. Cuando hemos hecho este clculo, debemos utilizar este tamaocomo extensin INITIAL y NEXT, y tendremos prcticamente la certeza deque no se va a producir fragmentacin en ese objeto. En caso de detectar

    http://2.bp.blogspot.com/-F1fKzV7fYDQ/TuEtAOPCYYI/AAAAAAAAAPY/AqpKyjOJh94/s1600/04.JPG
  • 5/21/2018 Privilegios y Usuarios en Oracle

    10/24

    ms de 10 extensiones en un objeto (consultando el catlogo de Oracle,como veremos), debemos recrear el objeto desde cero (aplicando el clculoanterior) e importar de nuevo los datos.

    Ciertas operaciones, necesitan de espacio en disco para poder realizarse. Elespacio reservado se denomina segmentos temporales. Se pueden crearsegmentos temporales cuando:

    Se crea un ndice

    Se utiliza ORDER BY, DISTINTC o GROUP BY en un SELECT.

    Se utilizan los operadores UNION, INTERSECT o MINUS.

    Se utilizan joins entre tablas.

    Se utilizan subconsultas.

    Concepto de Data block (bloque de datos)

    Un data blockes el ltimo eslabn dentro de la cadena de almacenamiento.El concepto de Data blockes un concepto fsico, ya que representa lamnima unidad de almacenamiento que es capaz de manejar Oracle. Igualque la mnima unidad de almacenamiento de un disco duro es la unidad deasignacin, la mnima unidad de almacenamiento de Oracle es el datablock. En un disco duro no es posible que un fichero pequeo ocupe menosde lo que indique la unidad de asignacin, as si la unidad de asignacin esde 4 Kb, un fichero que ocupe 1 Kb, en realidad ocupa 4 Kb.

    Siguiendo con la cadena, cada segmento (o cada extensin) se almacena

    en uno o varios bloques de datos, dependiendo del tamao definido para elextensin, y del tamao definido para el data block.

    (*) Espacio ocupado en el data block por la primera NEXT EXTENSION. (#)Espacio ocupado en unidades de asignacin del sistema operativo porlos data blocksanteriores.

    El esquema muestra toda la cadena de almacenamiento de Oracle.

    Desde el nivel ms fsico al ms lgico:

    http://1.bp.blogspot.com/-K-mNRlBsGv4/TuEs9-oahWI/AAAAAAAAAPM/5Gi55EtLxog/s1600/05.JPG
  • 5/21/2018 Privilegios y Usuarios en Oracle

    11/24

    Unidades de asignacin del sistema operativo (El ms fsico. Nodepende de Oracle)

    Data blocks de Oracle

    Extents Segments DataFiles Tablespaces(El ms lgico)

    El tamao de las unidades de asignacin del sistema operativo se definedurante el particionado del disco duro (FDISK, FIPS), y el espacio delos data blocks de Oracle se define durante la instalacin y no puede sercambiado.

    Como es lgico, el tamao de un data blocktiene que ser mltiplo deltamao de una unidad de asignacin, es decir, si cada unidad de asignacin

    ocupa 4 K, los data blockspueden ser de 4K, 8K, 12K para que en elsistema operativo ocupen 1, 2, 3 unidades de asignacin.

    Esquema extrado del Oracle8 Concepts

    Estructuras de memoria

    Todas las estructura que hemos visto se refieren a cmo se almacenan losdatos en el disco. Sin embargo, y como es lgico, Oracle tambin utiliza lamemoria del servidor para su funcionamiento. Oracle utiliza dos tipos dememoria

    http://3.bp.blogspot.com/-2yvat6MCJUI/TuEs70WYdLI/AAAAAAAAAPA/ArUZg17efFI/s1600/06.JPG
  • 5/21/2018 Privilegios y Usuarios en Oracle

    12/24

    Memoria local y privada para cada uno de los procesos: PGA (ProcessGlobal Area o Program Global Area).

    Memoria comn y compartida por todos los procesos SGA (SystemGlobal Area o Shared Global Area).

    Cada vez que se conecta un cliente al servidor, se ejecuta un subprocesoque atender sus peticiones (a travs del fork en Unix o con CreateThreaden el mundo Windows), y este subproceso crear un nuevo bloque dememoria de tipo PGA. El tamao de este bloque de memoria depender delsistema operativo, y permanece invariable, aunque se puede configurarcambiando el valor de la variable SORT_AREA_SIZE del archivo deinicializacin INIT.ORA.

    Por cada instancia de base de datos, tendremos una zona de memoriaglobal, el SGA, donde se almacenan aquellos datos y estructuras que debense compartidos entre distintos procesos de la base de datos, como los

    procesos propios de Oracle y cada uno de los subprocesos que gestionan laconexin. El tamao del SGA es uno de los puntos ms crticos a la hora demejorar el rendimiento de una base de datos, ya que, cuanto mayormemoria se reserve (mientras no sea memoria virtual), ms rpidas serealizarn ciertas operaciones. Por ejemplo, las ordenaciones (una de lasoperaciones que ms rpido deben hacerse) se realizan en el SGA si hayespacio suficiente. En caso contrario, se realizarn directamente en eldisco, utilizando segmentos temporales.

    El SGA se divide en cuatro grandes zonas:

    Database buffer cache:almacena los bloques que se han ledo delos datafiles. Cada vez que es necesario acceder a un bloque, se busca elbloque en esta zona, y en caso de no existir, se lee de nuevo del datafilecorrespondiente. Cuantos ms bloques quepan en esta zona de memoria,mejor ser el rendimiento.

    SQL Area:es la zona de memoria se almacenan compiladas lasltimas sentencias SQL (y bloques PL/SQL) ejecutadas. Adems se almacenanlas variables acopladas (bind), el rbol de parsing, los buffer de ejecucin y elplan de ejecucin. Es importante que siempre que se utilice la mismasentencia, sea exactamente igual, para poder aprovechar sentencias previas

    almacenadas en el SQL Area. Es decir, las siguientes sentencias:SELECT * FROM TABLA

    select * from tabla SELECT * FROM TABLA SELECT * FROM tabla

    Se consideran distintas y no se aprovecha el SQL Area. Debe coincidir eltexto exactamente, considerando maysculas y minsculas, espacios,retornos de carro, nombre de parmetros, etc. Esto es debido a que se

  • 5/21/2018 Privilegios y Usuarios en Oracle

    13/24

    buscan dentro del SQL Area utilizando un hash de la sentencia, y un simpleespacio (o cambiar una letra a maysculas) hace que el hash resultante seadistinto, por lo que no encontrar la sentencia dentro del SQL Area. Cuantomayor sea el espacio del SQL Area, se realizarn menos compilaciones,planes de ejecucin y anlisis lxicos, por lo que la ejecucin de las

    consultas ser ms rpida.

    Redo cache:almacena los registros de redo de las ltimasoperaciones realizadas. Estos registros se almacenan en los archivos de redo,que sirven para recomponer la base de datos en caso de error.

    Dictionary cache:almacena datos del diccionario de Oracle, parautilizarlos en los planes de ejecucin, optimizacin de consultas, etc. Cuantosms datos quepan en esta zona, mayor probabilidad habr de que el dato quenecesitamos ya est en memoria, y no sea necesario acceder a las tablas deldiccionario para leerlo.

    Archivos de inicializacin

    Adems de estructuras de disco y de memoria, un servidor Oracle necesitaciertos archivos para poder ejecutarse. Estos archivos se establecendurante la creacin de la base de datos, y se consultarn cada vez que searranque la base de datos, por lo que deben estar disponibles. Bsicamentepodemos diferencias los tipos de archivos:

    Control files:son archivos de control que se consultan cada vez quese arranca la base de datos. Indica datos como la localizacin de los datafiles,nombre de la base de datos.

    Init file:es el archivo que contiene los parmetro de inicio de la

    base de datos (tamao del bloque, tamao del SGA, etc.). Normalmente tieneel nombre INIT.ORA

    Redo logs:estos archivos contienen un historial de todas lasinstrucciones que han sido lanzadas a la base de datos, para poderrecuperarla en caso de fallo. No se utilizan durante la inicializacin, sinodurante toda la ejecucin de la base de datos.

    0 comentariosEnviar por correo electrnicoEscribe un blogCompartir con TwitterCompartir conFacebookCompartir en Pinterest

    Componentes de una Base de Datos

    Componentes de las Bases de Datos

    Una base de datos consta de varios componentes:

    a) Motor: el programa ejecutable que debe estar en memoria para manejarla base de datos. Cuando este programa est ejecutndose se dice que labase de datos est levantada (//startup//), en caso contrario se dice que labase de datos est bajada (//shutdown//).

    http://epnbdd-oracle.blogspot.com/2012/05/conceptos-de-almacenamiento-en-oracle.html#comment-formhttp://epnbdd-oracle.blogspot.com/2012/05/conceptos-de-almacenamiento-en-oracle.html#comment-formhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2004891278011687772&target=emailhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2004891278011687772&target=twitterhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2004891278011687772&target=facebookhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2004891278011687772&target=facebookhttp://epnbdd-oracle.blogspot.com/2012/05/componentes-de-una-base-de-datos.htmlhttp://epnbdd-oracle.blogspot.com/2012/05/componentes-de-una-base-de-datos.htmlhttp://epnbdd-oracle.blogspot.com/2012/05/componentes-de-una-base-de-datos.htmlhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2004891278011687772&target=facebookhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2004891278011687772&target=facebookhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2004891278011687772&target=twitterhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2004891278011687772&target=twitterhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2004891278011687772&target=emailhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2004891278011687772&target=emailhttp://epnbdd-oracle.blogspot.com/2012/05/conceptos-de-almacenamiento-en-oracle.html#comment-form
  • 5/21/2018 Privilegios y Usuarios en Oracle

    14/24

    b) Servicio de red:Es un programa que se encarga de establecer lasconexiones y transmitir datos entre cliente y servidor o entre servidores.

    c) //Listener// (escuchador):Es un programa residente en memoria que seencarga de recibir las llamadas que llegan a la base de datos desde la red,

    y de pasrselas a esta. Una base de datos que no tenga un //listener//cargado, no podr recibir llamadas remotas. El //listener// se comunica conel servicio de red.

    d) Utilidades:Programas de utilidad como pueden ser:

    Intrpretes de consultas.

    Programas de administracin de base de datos.

    Programas de copia de seguridad.

    Monitores de rendimiento.

    A todo el conjunto de la base de datos se le denomina RDBMS: RelationalDataBase Manager System, decir: Sistema de gestin de bases de datosrelacionales.

    El primer fabricante en disear un RDBMS fue IBM, aunque fue Oracle, en1979, la primera empresa hacer una implementacin comercial de unsistema de bases de datos relacionales.0 comentariosEnviar por correo electrnicoEscribe un blogCompartir con TwitterCompartir con

    FacebookCompartir en Pinterest

    Administracin de Usuarios en OracleAdministracin de Usuarios en Oracle

    1. Creacion de Usuarios

    Una de las ms bsicas tareas de un administrador de base de datos esidentificar los usuarios. Cada usuario que conecta en la base de datos debede tener una cuenta. En las cuentas compartidas son difciles de aplicar unaauditoria.

    Para crear un usuario utilizamos la sentencia CREATE USER. Cuando creasuna cuenta como mnimo tienes que asignar un nico nombre (username) yuna contrasea para poder autenticarse.Para cambiar alguno de los atributos que se le ha aadido al usuario creadose utiliza la sentenciaALTER USER.

    2. Autenticacin Oracle

    http://epnbdd-oracle.blogspot.com/2012/05/componentes-de-una-base-de-datos.html#comment-formhttp://epnbdd-oracle.blogspot.com/2012/05/componentes-de-una-base-de-datos.html#comment-formhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2691640717320754901&target=emailhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2691640717320754901&target=twitterhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2691640717320754901&target=facebookhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2691640717320754901&target=facebookhttp://epnbdd-oracle.blogspot.com/2012/05/administracion-de-usuarios-en-oracle.htmlhttp://epnbdd-oracle.blogspot.com/2012/05/administracion-de-usuarios-en-oracle.htmlhttp://epnbdd-oracle.blogspot.com/2012/05/administracion-de-usuarios-en-oracle.htmlhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2691640717320754901&target=facebookhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2691640717320754901&target=facebookhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2691640717320754901&target=twitterhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2691640717320754901&target=twitterhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2691640717320754901&target=emailhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=2691640717320754901&target=emailhttp://epnbdd-oracle.blogspot.com/2012/05/componentes-de-una-base-de-datos.html#comment-form
  • 5/21/2018 Privilegios y Usuarios en Oracle

    15/24

    Cuando uno se conecta con una instancia de una base de datos la cuentade usuario debe de estar autenticada. ORACLE provee tres mtodos deautenticacin para nuestra cuenta de usuario.

    AUTENTICACIN MEDIANTE PASSWORD

    Cuando un usuario conecta con una base de datos verifica que este usuarioy la contrasea introducida almacenada en la base de datos, sea correcta.Las contraseas se guardan encriptadas en la base de datos (en el datadictionary).

    SQL > CREATE USER david IDENTIFIED BY tititus;

    En este caso tititus es la contrasea de david que ser guardada encriptadaen la base de datos.

    2.1 Autenticacin Externa

    Cuando un usuario conecta con la base de datos se verifica que el nombrede usuario es el mismo que el nombre de usuario del sistema operativopara permitir la validacin.

    No se almacenan las cuentas en la base de datos de ninguna forma. Estascuentas estn siempre referidas con OPS$ .A partir de la versin 10g

    puedes configurar OS_AUTHENT_PREFIXen el spfile

    SQL > CREATE USER ops$david IDENTIFIED BY tititus;

    Mediante IDENTIFIED EXTERNALLYdecimos a la base de datos quenuestra cuenta es externa y tiene que ser validada con el sistemaoperativo.

    2.2 Autenticacin Global

    Cuando un usuario se conecta con la base de datos se verifica globalmentecuando la informacin pasa por una opcin avanzada de seguridad( ADVANCED SECURITY OPTION) para la autenticacin tal comoKerberos, RADIUS.Para las cuentas globales no se almacena tampoco nada en la base dedatos.

  • 5/21/2018 Privilegios y Usuarios en Oracle

    16/24

    SQL > CREATE USER david IDENTIFIED GLOBALLY ASCN=alumnos,OU=campus .

    Mediante IDENTIFIED GLOBALLYdecimos a la base de datos que nuestracuenta se autentica globalmente, mediante otra opcin de seguridad

    avanzada.

    3. Asignaciones a los Usuarios

    3.1 ASIGNACIN DE UN USUARIO A UN TABLESPACE ( DEFAULTTABLESPACE )

    Mediante esta sentencia asignamos un usuario a un tablespace, este sersu tablespace por defecto cuando creamos un usuario.

    SQL > CREATE USER david IDENTIFIED BY tititus DEFAULT TABLESPACEusers;

    Mediante esta sentencia, en caso de tener creado ya el usuario leasignamos un tablespace.

    SQL > ALTER USER david DEFAULT TABLESPACE users;

    La base de datos toma un tablespace por defecto, en caso de querercambiar este tablespace utilizamos la siguiente sentencia

    SQL > ALTER DATABASE DEFAULT TABLESPACE users;

    3.2 ASIGNACIN DE UN USUARIO A UN TABLESPACE TEMPORAL

    Un tablespace temporal se utiliza para almacenar segmentos temporalesque son creados durante operaciones como ORDER BY,SELECTDISTINCT, MERGE JOIN o CREATE INDEX.A veces a los usuarios se lesasocia un tablespace temporal para realizar este tipo de operaciones,cuando estas operaciones finalizan este segmento temporal que se hacreado exclusivamente para la operacin desaparece.

    SQL > CREATE USER david IDENTIFIED BY tititus DEFAULT TABLESPACEusersTEMPORARY TABLESPACE temp;

    Mediante TEMPORARY TABLESPACEasignamos como tablespacetemporal temp al usuario david.En caso de que el usuario est creado si queremos asignarle un tablespacetemporal utilizamosALTER USER

  • 5/21/2018 Privilegios y Usuarios en Oracle

    17/24

    SQL > ALTER USER david TEMPORARY TABLESPACE Temp;

    3.3 ASIGNACIN DE UN PERFIL A UN USUARIO

    Al igual que podemos asignar un tablespace a un usuario, tambinpodemos asignarle un perfil (profile). El principal perfil ( profile ) pordefecto se denomina default.Si el usuario no est lo podemos crear de la siguiente forma:

    SQL > CREATE USER david IDENTIFIED BY tititusDEFAULT TABLESPACE usersTEMPORARY TABLESPACE tempPROFILE resource_profile;

    En caso de que el usuario ya est creado al igual que en los anteriores

    casos utilizamos la sentencia ALTER USER.

    SQL > ALTER USER david PROFILE resource_profile;

    3.4 BORRADO DE UN USUARIO

    Para borrar un usuario utilizamos la sentencia DROP USER, podemosopcionalmente incluir la opcin CASCADE, se utiliza para borrarrecursivamente los objetos del usuario que se pretende borrar.

    SQL > DROP USER david CASCADE

    3.5 OTORGANDO PRIVILEGIOS (GRANTING)

    A un usuario podemos otorgarle una serie de privilegios. Un privilegiopermite a un usuario acceder a ciertos objetos o realizar ciertas acciones:

    Privilegios sobre Objetos ( Object privileges ) a permisos sobrevistas, tablas, secuencias, procedimientos, paquetes.

    Privilegios del Sistema ( System privileges ) a permisos sobreniveles de la base de datos como pueden ser conexin a la base de datos,creacin de usuarios, limitar cuentas.

    Privilegios sobre Roles ( Role privileges ) a muchos permisos sonotorgados mediante roles agrupando un conjunto de privilegios. Para otorgarprivilegios utilizamos la sentenciaGRANT, para quitar un privilegio o permisoa un usuario utilizamos la sentencia REVOKE

    EJEMPLOS

    Privilegio sobre una tabla:

  • 5/21/2018 Privilegios y Usuarios en Oracle

    18/24

    SQL > GRANT ALL ON tabla_alumnos TO david

    Siendo tabla_alumnos una tabla de nuestra base de datos y david unusuario de esta, hemos asignado mediante GRANT ALL,todos los permisosal usuario david sobre esta tabla.

    GRANT ALL = permisos SELECT, INSERT, UPDATE, DELETE

    Si queremos asignar slo uno de estos permisos utilizamos la mismasentencia pero con el permiso que queramos otorgar.

    SQL > GRANT SELECT ON tabla_alumnos TO davidSQL > GRANT SELECT,INSERT ON tabla_alumnos TO david

    Privilegio sobre una vista:

    Para el caso de las vistas podemos a un usuario otorgar permisos SELECT,INSERT, UPDATE, DELETE, DEBUG, REFERENCES.Siendo vista_alumnos una vista de nuestra base de datos y david unusuario de esta:Otorgamos al usuario david todos los permisos sobre la vistavista_alumnos.

    SQL > GRANT ALL ON vista_alumnos TO david

    Otorgamos al usuario david algunos permisos sobre la vista_alumnos

    SQL > GRANT SELECT ON vista_alumnos TO davidSQL > GRANT SELECT,INSERT ON vista_alumnos TO david

    Privilegio sobre una secuencia:

    Con las secuencias pasa lo mismo que con los anteriores objetos vistos,para otorgar permisos se utiliza GRANT. Los permisos que podemosotorgar a una secuencia es SELECTo ALTER.

    Privilegio sobre un paquete,funcin o procedimiento:

    Los permisos que podemos otorgar a las funciones, paquetes oprocedimientos almacenados en nuestra base de datos son lossiguientes: EXECUTE, DEBUG.

    3.6 QUITANDO PRIVILEGIOS

    Si queremos quitar un privilegio a uno de estos objetos haremos lo mismoque con GRANT pero utilizando la sentencia REVOKE.

  • 5/21/2018 Privilegios y Usuarios en Oracle

    19/24

    0 comentariosEnviar por correo electrnicoEscribe un blogCompartir con TwitterCompartir conFacebookCompartir en Pinterest

    Administracin Bsica y Seguridad en Oracle

    Administracin Bsica y Seguridad en Oracle

    ===== Concepto de usuario, privilegio y rol: =====

    A la hora de establecer una conexin con un servidor Oracle, es necesarioque utilicemos un modo de acceso, el cual describa de qu permisosdispondremos durante nuestra conexin. Estos permisos se definen sobreun nombre de usuario. Un usuario no es ms que un conjunto de permisosque se aplican a una conexin de base de datos. As mismo, el usuariotambin tiene otras funciones:

    Ser el propietario de ciertos objetos.

    Definicin del //tablespace //por defecto para los objetos de unusuario.

    Copias de seguridad.

    Cuotas de almacenamiento.

    Un privilegio no es ms que un permiso dado a un usuario para que realicecierta operacin. Estas operaciones pueden ser de dos tipos:

    Operacin de sistema: necesita el permiso de sistemacorrespondiente.

    Operacin sobre objeto: necesita el permiso sobre el objeto en

    cuestin.Y por ltimo un rol de base de datos no es ms que una agrupacin depermisos de sistema y de objeto.

    ===== Creacin de usuarios =====

    La creacin de usuarios se hace a travs de la sentencia SQL CREATE USERSu sintaxis bsica es:

    CREATE USER nombre_usuario IDENTIFIED [ BY clave | EXTERNALLY ] {

    DEFAULT TABLESPACE tablespace_por_defecto } { TEMPORARYTABLESPACE tablespace_temporal } { DEFAULT ROLE [ roles, ALL [EXCEPTroles], NONE ] };

    La clusula IDENTIFIED BY permite indicar el tipo de autorizacin que seutilizar: Interna de Oracle: una clave para cada usuario de base dedatos. Interna del SO: utilizando la seguridad del SO.

    http://epnbdd-oracle.blogspot.com/2012/05/administracion-de-usuarios-en-oracle.html#comment-formhttp://epnbdd-oracle.blogspot.com/2012/05/administracion-de-usuarios-en-oracle.html#comment-formhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=1637472779235119345&target=emailhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=1637472779235119345&target=twitterhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=1637472779235119345&target=facebookhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=1637472779235119345&target=facebookhttp://epnbdd-oracle.blogspot.com/2012/05/administracion-basica-y-seguridad-en.htmlhttp://epnbdd-oracle.blogspot.com/2012/05/administracion-basica-y-seguridad-en.htmlhttp://epnbdd-oracle.blogspot.com/2012/05/administracion-basica-y-seguridad-en.htmlhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=1637472779235119345&target=facebookhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=1637472779235119345&target=facebookhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=1637472779235119345&target=twitterhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=1637472779235119345&target=twitterhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=1637472779235119345&target=emailhttp://www.blogger.com/share-post.g?blogID=5055157954820132835&postID=1637472779235119345&target=emailhttp://epnbdd-oracle.blogspot.com/2012/05/administracion-de-usuarios-en-oracle.html#comment-form
  • 5/21/2018 Privilegios y Usuarios en Oracle

    20/24

    La clusula DEFAULT TABLESPACE ser el //tablespace //por defecto en lacreacin de objetos del usuario que estamos creando. Si se omite seutilizar el //tablespace// SYSTEM.

    La clusula TEMPORARY TABLESPACE indica el //tablespace //que se

    utilizar para la creacin de objetos temporales en la operaciones internasde Oracle. Si se omite se utilizar el //tablespace //SYSTEM.

    La clusula DEFAULT ROLE permite asignar roles de permisos durante lacreacin del usuario.

    Ejemplos:

    CREATE USER ADMINISTRADOR IDENTIFIED BY MANAGER DEFAULTTABLESPACE SYSTEM TEMPORARY TABLESPACE TEMPORARY_DATADEFAULT ROLE DBA;

    CREATE USER PEPOTE IDENTIFIED BY TORO;

    CREATE USER JUANCITO IDENTIFIED BY PEREZ DEFAULT TABLESPACEDATOS_CONTABILIDAD TEMPORARY TABLESPACE TEMPORARY_DATA;

    ===== Creacin de roles =====

    La creacin de roles permite asignar un grupo de permisos a un usuario, ypoder modificar este grupo de permisos sin tener que ir modificando todoslos usuarios. Si asignamos un rol con 10 permisos a 300 usuarios, y

    posteriormente aadimos un permiso nuevo al rol, no ser necesario iraadiendo este nuevo permiso a los 300 usuarios, ya que el rol se encargaautomticamente de propagarlo. La sintaxis bsica es:

    CREATE ROLE nombre_rol { [NOT IDENTIFIED | IDENTIFIED [BY clave |EXTERNALLY };

    Una vez que el rol ha sido creado ser necesario aadirle permisos a travsde instruccin GRANT.

    Inicialmente Oracle tiene predefinidos los siguiente roles (entre otros):

    || Rol predefinido || Descripcin |||| CONNECT || Todos los permisos necesarios para iniciar una sesin enOracle |||| RESOURCE || Todos los permisos necesarios para tener recursos para lacreacin |||| || de objetos ||

  • 5/21/2018 Privilegios y Usuarios en Oracle

    21/24

    || DBA || Todos los permisos para un administrador de base de datos(DBA) |||| EXP_FULL_DATABASE || Permisos para poder exportar toda la base dedatos. |||| IMP_FULL_DATABASE || Permisos para poder importar toda la base de

    datos. ||

    Podemos decir que un usuarios normal, debe tener al menos los permisosde CONNECT (para conectarse) y de RESOURCE (para poder crear objetos).

    Ejemplos:

    CREATE ROL CONTROL_TOTAL; CREATE ROL BASICO; CREATE ROLACCESO_CONTABILIDAD;

    Privilegios de sistema

    Ya hemos dicho que los privilegios de sistema son permisos para realizarciertas operaciones en la base de datos. El modo de asignar un privilegio esa travs de la instruccin GRANT y el modo de cancelar un privilegio es atravs de la instruccin REVOKE. La sintaxis bsica de ambas instruccioneses:

    ===== Instruccin GRANT =====

    GRANT [privilegios_de_sistema | roles] TO [usuarios | roles |PUBLIC] {WITH ADMIN OPTION };

    Es posible dar ms de un privilegio de sistema o rol, separndolos porcomas. Tambin es posible asignarle uno (o varios) privilegios a variosusuarios, separndolos por comas. Si se le asigna el privilegio a un rol, seasignar a todos los usuarios que tengan ese rol. Si se asigna el privilegio aPUBLIC, se asignar a todos los usuarios actuales y futuros de la base dedatos. La clusula WITH ADMIN OPTION permite que el privilegio/rol quehemos concedido, pueda ser concedido a otros usuarios por el usuario alque estamos asignando. La lista de los privilegios de sistema existentes sepuede encontrar en el //Oracle8 SQL Reference// en la seccin GRANT(System privileges and roles).

    Ejemplos:

    GRANT DBA TO ADMINISTRADOR;

    GRANT CREATE USER TO PEPOTE WITH ADMIN OPTION;

    GRANT DROP USER TO JUANCITO;

  • 5/21/2018 Privilegios y Usuarios en Oracle

    22/24

    GRANT CONNECT, RESOURCE TO PEPOTE, JUANCITO;

    GRANT CONNECT, RESOURCE, DBA, EXP_FULL_DATABASE,IMP_FULL_DATABASE TO CONTROL_TOTAL;

    GRANT CONTROL_TOTAL TO ADMINISTRADOR;

    ===== Instruccin REVOKE =====

    REVOKE [privilegios_de_sistema | roles] FROM [usuarios | roles |PUBLIC];

    Es posible eliminar ms de un privilegio de sistema o rol, separndolos porcomas. Tambin es posible eliminar uno (o varios) privilegios a variosusuarios, separndolos por comas. Si se le elimina el privilegio de un rol, seeliminar de todos los usuarios que tengan ese rol. Si se elimina el

    privilegio de PUBLIC, se eliminar de todos los usuarios actuales y futurosde la base de datos. La lista de los privilegios de sistema existentes sepuede encontrar en el //Oracle8 SQL Reference// en la seccin GRANT(System privileges and roles). Como es lgico, slo se podr eliminar unprivilegio/rol, si previamente ha sido concedido a travs de la instruccinGRANT.

    Ejemplos:

    REVOKE DBA FROM ADMINISTRADOR;

    REVOKE CREATE USER FROM PEPOTE;

    REVOKE DROP USER FROM JUANCITO;

    RECOKE CONNECT, RESOURCE FROM PEPOTE, JUANCITO;

    REVOKE CONNECT, RESOURCE, DBA, EXP_FULL_DATABASE,IMP_FULL_DATABASE FROM CONTROL_TOTAL;

    REVOKE CONTROL_TOTAL FROM ADMINISTRADOR;

    ===== Privilegios sobre objetos =====

    Los privilegios sobre objetos permiten que cierto objeto (creado por unusuario) pueda ser accedido por otros usuarios. El nivel de acceso dependedel permiso que le demos: podemos darle permiso de SELECT, de UPDATE,de DELETE, de INSERT o de todos ellos. La sintaxis bsica es:

  • 5/21/2018 Privilegios y Usuarios en Oracle

    23/24

    GRANT [ALL {PRIVILEGES} | SELECT | INSERT | UPDATE | DELETE] ONobjeto TO [usuario | rol | PUBLIC] {WITH ADMIN OPTION};

    Al igual que con los permisos de sistema, es posible asignar un permiso deobjeto sobre uno o varios (separados por comas) usuario y/o roles. Si se

    asigna a PUBLIC ser accesible en toda la base de datos.

    Si se incluye la clusula WITH ADMIN OPTION, este permiso podr serconcedido por el usuario al que se le ha asignado.

    Ejemplos:

    GRANT ALL ON FACTURA TO CONTROL_TOTAL;

    GRANT SELECT, UPDATE ON ALUMNO TO PEPOTE, JUANCITO WITH ADMINOPTION;

    GRANT SELECT ON PROFESOR TO PUBLIC;

    GRANT SELECT ON APUNTE TO ACCESO_CONTABILIDAD;

    El modo de eliminar permisos de objeto es con la instruccin REVOKE:

    REVOKE [ALL {PRIVILEGES} | SELECT | INSERT | UPDATE | DELETE] ONobjeto FROM [usuario | rol | PUBLIC] {WITH ADMIN OPTION};

    Al igual que con los permisos de sistema, es posible asignar un permiso de

    objeto sobre uno o varios (separados por comas) usuario y/o roles. Si seasigna a PUBLIC ser accesible en toda la base de datos.

    Si se incluye la clusula WITH ADMIN OPTION, este permiso podr serconcedido por el usuario al que se le ha asignado.

    Ejemplos:

    GRANT ALL ON FACTURA TO CONTROL_TOTAL;

    GRANT SELECT, UPDATE ON ALUMNO TO PEPOTE, JUANCITO

    WITH ADMIN OPTION;

    GRANT SELECT ON PROFESOR TO PUBLIC;

    GRANT SELECT ON APUNTE TO ACCESO_CONTABILIDAD;

    ===== Eliminacin de usuarios =====

  • 5/21/2018 Privilegios y Usuarios en Oracle

    24/24

    La eliminacin de usuarios se hace a travs de la instruccin DROP USER.Su sintaxis es:

    DROP USER usuario {CASCADE};

    La clusula CASCADE permite borrar el usuario y todos los objetos queposea.