Está en la página 1de 9

ADMINSTRACION DE USUARIOS Creacin de usuarios La sentencia para crear un usuario con contrasea es: CREATE USER Nombre_usuario IDENTIFIED

BY Contrasea; Ejemplo: CREATE USER yo IDENTIFIED BY hola; Si queremos que el sistema operative instalado sea el que gestione la seguridad del acceso tambien a la base de datos haremos: CREATE USER Nombre_usuario_sistema_opertivo IDENTIFIED EXTERNALY; Ejemplo: CREATE USER alumno IDENTIFIED EXTERNALY; Para asignarle a un usuario un espacio de Oracle por defeto (puede incluir varios ficheros distribuidos en varias mquinas) donde pueda crear sus objetos como tablas, vistas, secuencias etcc. CREATE USER yo IDENTIFIED BY hola DEFAULT TABLESPACE Users; El usuario yo, puede utilizar otro tablespace diferente al users, pero si no se le indica nada utilizar ese tablespace. Si el tablespace es compartido por varios usuarios puede limitarse el espacio de los usuarios que lo usen mediante la clausula QUOTA CREATE USER yo IDENTIFIED BY hola DEFAULT TABLESPACE Users QUOTA 10M ON Users; De esta forma, el usuario no podra utilizara ms de 10 megabytes del tablespace Users. CREATE USER yo IDENTIFIED BY hola DEFAULT TABLESPACE Users QUOTA UNLIMITED ON Users;

De esta forma, el usuario podra utilizar todo el tablespace Users sin ninguna limitacin. Los objetos temporales, resultados de las consultas por ejemplo que no se guardan, pueden guardarse en otro tablespace, y establecerse de nuevo una cuota de espacio. CREATE USER yo IDENTIFIED BY hola DEFAULT TABLESPACE Users QUOTA UNLIMITED ON Users TEMPORARY TABLESPACE temp QUOTA 8M ON temp; Puede limitarse ms de un tablespace, porque el tablespace por defecto no implica de que se pueda forzar a escribir en otros tablespaces CREATE USER yo IDENTIFIED BY hola DEFAULT TABLESPACE Users QUOTA UNLIMITED ON Users QUOTA 5M ON Sytem TEMPORARY TABLESPACE temp QUOTA 8M ON temp; Se puede bloquear una cuenta de usuario sin borrarla: CREATE USER yo IDENTIFIED BY hola DEFAULT TABLESPACE Users QUOTA UNLIMITED ON Users TEMPORARY TABLESPACE temp QUOTA 8M ON temp ACCOUNT LOCK; Y crearla desbloqueada: CREATE USER yo IDENTIFIED BY hola DEFAULT TABLESPACE Users QUOTA UNLIMITED ON Users TEMPORARY TABLESPACE temp QUOTA 8M ON temp ACCOUNT UNLOCK; Se puede asignar un perfil (un perfil limita el nmero de recursos en la base de datos) CREATE USER yo IDENTIFIED BY hola DEFAULT TABLESPACE Users QUOTA UNLIMITED ON Users TEMPORARY TABLESPACE temp QUOTA 8M ON temp

PROFILE perfil_alumno; Se puede conseguir que la contrasea caduque una vez que el usuario la ha utilizado: CREATE USER yo IDENTIFIED BY hola DEFAULT TABLESPACE Users QUOTA UNLIMITED ON Users TEMPORARY TABLESPACE temp QUOTA 8M ON temp PASSWORD EXPIRE; Modificacin de usuarios Para modificar el Ususario basta con: ALTER USER nombre de usuario . Por ejemplo para cambiar la contrasea: ALTER USER yo IDENTIFIED BY jaja; Para bloquear la cuenta: ALTER USER yo ACCOUNT LOCK; Para cambiar el tablespace por defecto, la cuota de uso del tablespace users y desbloquear la cuenta: ALTER USER yo DEFAULT TABLESPACE system QUOTA 100M ON users ACCOUNT UNLOCK; La nica accon nueva que puede hacerse solo modificando el usuario y no en el momento de la creacin del mismo, es la asignacin de un rol o conjunto de privilegios por defecto que veremos ms adelante. Borrar usuarios DROP USER yo; Si el usuario tiene objetos (TABLAS, VISTAS, SECUENCIAS, etc), no deja borrar el usuario, para borrarlo con todos sus objetos: DROP USER yo CASCADE; Concesin de privilegios Los usuarios creados no tendran privilegios para hacer nada en principio. A continuacin de crearlos, debemos darle privilegios para que puedan hacer cosas.

Los privilegios pueden ser Privilegios del Sistema que se refieren a cualquier operacin que afecte al sistema, y Privilegios de objetos que se refieren a lo que se puede hacer sobre los objetos (tablas, vistas, secuencias, indices, etc) Los privilegios posibles son:
Privilegios del sistema ALTER ANY CLUSTER ALTER ANY INDEX ALTER ANY PROCEDURE ALTER ANY ROLE ALTER ANY SEQUENCE ALTER ANY SNAPSHOT ALTER ANY TABLE ALTER ANY TYPE ALTER ANY TRIGGER ALTER DATABASE ALTER PROFILE ALTER RESOURCE COST ALTER ROLLBACK SEGMENT ALTER SESSION ALTER SYSTEM ALTER TABLESPACE ALTER USER ANALYZE ANY AUDIT ANY AUDIT SYSTEM BACKUP ANY TABLE BECOME USER COMMENT ANY TABLE CREATE ANY CLUSTER CREATE ANY DIRECTORY CREATE ANY INDEX CREATE ANY LIBRARY CREATE ANY PROCEDURE CREATE ANY SEQUENCE CREATE ANY SNAPSHOT CREATE ANY SYNONYM CREATE ANY TABLE CREATE ANY TRIGGER CREATE ANY TYPE

CREATE ANY VIEW CREATE CLUSTER CREATE DATABASE LINK CREATE ANY LIBRARY CREATE PROCEDURE CREATE PROFILE CREATE PUBLIC DATABASE LINK CREATE PUBLIC SYNONYM CREATE ROLE CREATE ROLLBACK SEGMENT CREATE SEQUENCE CREATE SESSION CREATE SNAPSHOT CREATE SYNONYM CREATE TABLE CREATE TABLESPACE CREATE TRIGGER CREATE TYPE CREATE USER CREATE VIEW DELETE ANY TABLE DROP ANY CLUSTER DROP ANY DIRECTORY DROP ANY INDEX DROP ANY LIBRARY DROP ANY PROCEDURE DROP ANY ROLE DROP ANY SEQUENCE DROP ANY SNAPSHOT DROP ANY SYNONYM DROP ANY TABLE DROP ANY TRIGGER DROP ANY TYPE DROP ANY VIEW DROP LIBRARY DROP PROFILE DROP PUBLIC DATABASE LINK

DROP PUBLIC SYNONYM DROP ROLLBACK SEGMENT DROP TABLESPACE DROP USER EXECUTE ANY PROCEDURE EXECUTE ANY TYPE FORCE ANY TRANSACTION FORCE TRANSACTION GRANT ANY PRIVILEGE GRANT ANY ROLE INSERT ANY TABLE LOCK ANY TABLE MANAGE TABLESPACE RESTRICTED SESSION SELECT ANY SEQUENCE SELECT ANY TABLE SYSDBA SYSOPER UNLIMITED TABLESPACE UPDATE ANY TABLE Privilegios sobre objetos ALTER EXECUTE INDEX INSERT READ REFERENCES SELECT UPDATE ALL ALL PRIVILEGES DELETE

Para otorgar dichos privilegios se utiliza la clasula GRANT.TO Ejemplo: El usuario yo , debe poder conectarse al servidor de una base de datos y crear tablas pero solo en su esquema de usuario GRANT CREATE SESSION CREATE TABLE

TO yo; El usuario yo , debe poder conectarse al servidor de una base de datos y crear tablas en el esquema de cualquier usuario; GRANT CREATE SESSION, CREATE ANY TABLE TO yo; El usuario debe poder crear y seleccionar cualquier tabla, de cualquier usuario: GRANT CREATE SESSION, CREATE ANY TABLE, SELECT ANY TABLE, TO yo; Vamos a delimitar ms , para cada objeto: Creamos un usuario llamado cliente_empresa, que queremos que utilice algunos objetos del usuario ya creado empresa pero con limitaciones. El cliente_empresa, debe poder ver los datos la tabla productos, insertar nuevos registros en la tabla pedidos, y modificar y ver los datos de la tabla clientes. CREATE USER Cliente_empresa IDENTIFIED BY ciclo; GRANT CREATE SESSION, SELECT ON empresa.productos, INSERT ON empresa.pedidos, UPDATE, SELECT ON empresa.clientes TO cliente_empresa; Si queremos que el usuario pueda conceder a su vez los privilegios que el tiene , se aade WITH ADMIN OPTION De forma que si queremos que cliente_empresapueda conceder a otros usuarios los privilegios que l posee: GRANT CREATE SESSION, SELECT ON empresa.productos, INSERT ON empresa.pedidos, UPDATE, SELECT ON empresa.clientes TO cliente_empresa

WITH ADMIN OPTION; Para otorgar los mismos privilegios a varios usuarios: GRANT CREATE SESSION, CREATE ANY TABLE TO usuario1, usuario2 Creacin de roles Un rol es un conjunto de privilegios. A veces queremos otorgar los mismos privilegios a varios usuarios , pero todava desconocemos cuantos usuarios de este tipo queremos, aunque tenemos muy claro que privilegios tendran. Para esto se crea un rol y a continuacin se le otorgan los privilegios elegidos. Por ejemplo, quiero crear un rol, en el que los usuarios a los que se le otorguen, puedan crear cualquier tabla , borrar sus propias tablas, e insertar datos en las tabla pedidos de empresa CREATE ROLE rol_de_ejmplo; GRANT CREATE ANY TABLE, DROP TABLE, INSERT ON empresa.pedidos TO rol_de_ejemplo; Ahora existen 4 usuarios llamados usuario1, usuario2, usuario3 y usuario4 , a los que quiero otorgar esos privilegios: GRANT rol_de_ejemplo TO Usuario1, usuario2, usuario3, usuario4; Los roles predefinidos mas importantes de Oracle son: Rol
CONNECT RESOURCE DBA

Privilegios
alter session, create session, create cluster, create table, create view, create synonym, create sequence, create database link create cluster, create table, create procedure, create sequence, create trigger

todos los privilegios de sistema con la opcion with admin option

Los usuarios normales deben de tener el rol CONNECT,los programadores RESOURCE y los adminitradores DBA. Por ejemplo si creamos tres usuarios: CREATE USER usuario IDENTIFIED BY Usuario; Para que pueda crear tables, vistas etc, y luego maenjar sus propias tables,basta con

GRANT CONNECT TO usuario; Los roles pueden atizarse como privilegios (puesto que son un conjunto de privilegios) y como usuarios ( en el sentido que pueden ampliarse o quitarse privilegios). Por ejemplo, quiero dar al usuario yo, lo privilegios para que pueda crear sus propias tablas y ademas poseer todos los privilegios del rol_de_ejemplo, y adems que pueda crear cualquier vista GRANT CONNECT, Rol_de_ejemplo, CREATE ANY VIEW TO yo; Creo un rol llamado seguridad1 que pueda hacer cualquier cosa sobre la tabla pedidos de empresa , y el rol CONNECT, y adems pueda conceder sus privilegios a otros CREATE ROL seguridad1; GRANT CONNECT, ALL ON empresa.pedidos TO seguridad1 WITH ADMIN OPTION; Eliminar privilegios Para revocar privilegios: REVOKE CREATE VIEW FROM yo; REVOKE INSERT ON empresa.pedidos FROM rol_de_ejemplo;