TALLER DE BASE DE DATOS

GESTION DE USUARIOS EN ORACLE 10 G

M. C. Pilar del Rosario Ríos Campos

1

contraseña. puede autorizarse. • Usuarios y su autentificación. Normalmente sólo lo tiene el usuario administrador. USUARIOS USUARIOS Y SU AUTENTIFICACIÓN. asignación y borrado de perfiles. GESTIÓN DE USUARIOS Y RECURSOS. • Espacio de almacenamiento SYSAUX. Tras la autentificación. USUARIOS Y SU AUTENTIFICACIÓN. • En la autentificación externa la cuenta es mantenida por Oracle pero la administración de la contraseña y la autentificación de usuario es realizada externamente. El prefijo a usar viene determinado por el parámetro de inicialización. CREACIÓN DE USUARIOS. el acceso a determinados elementos y la ejecución de ciertas acciones. • Creación. o no. • Roles. Función de verificación. Otorgar y revocar. Roles predefinidos. que se guarda encriptada. Parámetros. fichero init. • Privilegios sobre objetos. .Por sistema operativo (autentificación externa).o. • Privilegios de sistema. modificación. Restricciones. • Creación. 2 . Activación y desactivación de roles.GESTIÓN DE USUARIOS Y RECURSOS. • Las formas más comunes de autentificar a un usuario son: . • Parámetro max_enabled_roles. OS_AUTHENT_PREFIX (define el prefijo a añadir al comienzo de toda cuenta de usuario identificado por s. • Vistas. y la autentificación es realizada por Oracle. • Privilegios. • Roles por defecto. Otorgar y revocar privilegios sobre objetos. modificación. Beneficios de los roles. • Creación. modificación y borrado de usuarios. El ejemplo más común de la autentificación por sistema operativo es los usuarios ops$ o “identified externally”. • Perfiles. Privilegios de sistema y sobre objetos. • En la autentificación por base de datos la administración de la cuenta de usuario. • Borrado de roles. asignación y deasignación de roles a usuarios. y su valor por defecto es OPS$). • Cada base de datos tiene una lista valida de usuarios.ora. • Grupos de espacios temporales.Por base de datos. • Necesario el privilegio de sistema CREATE USER. Para acceder a la misma un usuario debe ejecutar un aplicación y conectarse a la instancia usando un nombre valido previamente definido.

CREACIÓN DE USUARIOS.. Por defecto no se tiene cuota en ningún espacio de almacenamiento. por defecto de la bd (default user tablespace) que se indica mediante la sentencia: alter database default tablespace . • Nombre de usuario.si este no se ha especificado el espacio por defecto es SYSTEM.. Indica el espacio o grupo de espacios de almacenamiento para los segmentos temporales requeridos por el usuario.. Un usuario autentificado de forma externa se ha de crear con la cláusula “IDENTIFIED EXTERNALLY”. • Identificación. Puede indicarse cuota en múltiples espacios al tiempo. temporal por defecto (default temporary tablespace): alter database default temporary tablespace . es ilimitado el espacio a usar.. Cada usuario tiene asociado un esquema y dentro del mismo cada objeto debe tener un único nombre. los objetos se crean en el esp. Indica la cantidad máxima de espacio que un usuario puede utilizar en un determinado espacio de almacenamiento.. • QUOTA. alm.No debe indicarse cuota. El creador del usuario puede indicar cuota sobre espacios de almacenamiento aunque él no las posea. CREACIÓN DE USUARIOS. Pueden usarse 3 . Debe ser único respecto a otros nombres de usuario y roles. el espacio temporal por defecto es el SYSTEM (¡Error!) a menos que se haya fijado el valor del esp. • TEMPORARY TABLESPACE.• No es posible la conexión del usuario creado a menos que posea el privilegio de sistema CREATE SESSION. Indica aquel espacio de almacenamiento donde se crearán los objetos del esquema del usuario cuando al hacerlo no se indica ninguno en particular.. Indicando UNLIMITED. • Sintaxis: CREATE USER <usuario> IDENTIFIED BY <contraseña>/EXTERNALLY DEFAULT TABLESPACE <espacio> TEMPORARY TABLESPACE <espacio>/<grupo_espacios> QUOTA <xx>/UNLIMITED ON <espacio> PROFILE <perfil> PASSWORD EXPIRE ACCOUNT LOCK/UNLOCK. Si se omite la clausula. CREACIÓN DE USUARIOS. • DEFAULT TABLESPACE.. Si se omite la cláusula.

4 . terabytes (T). “ACCOUNT UNLOCK”. Los objetos ya creados permanecen pero no pueden crecer ni crearse ninguno más. • Creación de grupos: alter tablespace <nombre_temporal> tablespace group <nombre_grupo_temporales>. petabytes (P).. Fuerza al usuario a cambiar la clave antes de conectarse a la base de datos. al menos. por lo que. • PASSWORD EXPIRE.. Indica el perfil a asignar al usuario (especifica limitaciones en recursos del sistema y restricciones). create temporary tablespace <nombre_temporal> tempfile '/. desbloquea la cuenta de usuario y permite al acceso. el grupo deja de existir. • ACCOUNT../. o exabytes (E).distintas abreviaturas para indicar el tamaño: kilobytes (K). tiene un miembro).. • Eliminar un temporal de un grupo: alter tablespace <nombre_temporal> tablespace group ''. • Un grupo de espacios de alm. CREACIÓN DE USUARIOS. • Asignar grupos por defecto: alter database default temporary tablespace <nombre_grupo>. Puede revocarse el acceso a un espacio de almacenamiento asignando cuota cero en el mismo.dbf' size . • PROFILE. . tablespace group <nombre_grupo>. megabytes (M). GRUPOS ESPACIOS TEMPORALES.. GRUPOS ESPACIOS TEMPORALES. “ACCOUNT LOCK”. Si se omite se asigna el perfil DEFAULT. • El grupo se crea cuando se añade el primer espacio temporal al mismo (no puede estar vacio. bloquea la cuenta de usuario y deshabilita el acceso. gigabytes (G). Si se eliminan todos sus componentes.. temporales (“temporary tablespace group”) es un sinónimo que engloba a un conjunto de espacios de almacenamiento temporales.

Al crear el usuario los roles por defecto son todos los asignados. • No es posible eliminar un usuario que permanezca conectado a la base de datos. sin embargo para cambiar cualquier otro parámetro es necesario el privilegio “ALTER USER”. realiza un borrado de objetos previo. Se refiere a roles otorgados de forma directa al usuario (con la sentencia GRANT). – Se borran todos los disparadores. – Las vistas materializadas en otros esquemas basados en tablas pertenecientes al esquema borrado no podrán refrescarse. se limitan posteriormente mediante ALTER USER. 5 . • Sintaxis: ALTER USER <usuario> IDENTIFIED BY <contraseña>/EXTERNALLY DEFAULT TABLESPACE <espacio> TEMPORARY TABLESPACE <espacio>/<grupo_espacios> QUOTA <xx>/UNLIMITED ON <espacio> DEFAULT ROLE <role>/ALL/ALL EXCEPT <role>/NONE PROFILE <perfil> PASSWORD EXPIRE ACCOUNT LOCK/UNLOCK. funciones. • Los usuarios pueden cambiar sus propias claves. BORRADO DE USUARIOS. BORRADO DE USUARIOS. • Oracle no borra esquemas de usuario no vacios a menos que se indique CASCADE. Indica los roles otorgados por defecto al usuario en la conexión. • Sintaxis: DROP USER <usuario> <CASCADE>. “triggers”. • Es necesario tener el privilegio de sistemas “DROP USER”. Oracle activa los roles indicados sin necesidad de especificar sus contraseñas. con todos sus objetos. del esquema. Es conveniente estudiar las implicaciones que sobre otros esquemas tiene el borrado del usuario y de su esquema: – Se invalida vistas o sinónimos para objetos en el esquema borrado. MODIFICACIÓN DE USUARIOS. o se hayan eliminado con anterioridad los objetos. Debe esperarse a que concluya o forzar su terminación (ALTER SYSTEM KILL SESSION). • Al borrar un usuario el esquema asociado. – Se invalidan procedimientos almacenados. – No se eliminan roles creados por el usuario. desaparecen. o paquetes que consulten objetos pertenecientes al esquema eliminado. • DEFAULT ROLE. • Una posible solución para que permanezca el usuario y los objetos pero impedir la conexión es revocar el privilegio “CREATE SESSION”.MODIFICACIÓN DE USUARIOS.

• Es necesario el privilegio de sistema “CREATE PROFILE”. • Habilitar o deshabilitar la limitación de recursos mediante perfiles puede hacerse (no aplicable a los parámetros de contraseña que siempre están habilitados): . Diferentes perfiles pueden ser asignados a diferentes usuarios. Tiene las mismas características de almacenamiento que SYSTEM. – CONNECT_TIME. Inicialmente todos los recursos designados en él tienen valor UNLIMITED. – CPU_PER_SESSION. CREACIÓN DE PERFILES. Número de sesiones concurrentes. asignando valores TRUE o FALSE(por defecto). schema_name. • El espacio de almacenamiento SYSAUXacompaña a SYSTEM. CREACIÓN DE PERFILES. move_procedure from V$SYSAUX_OCCUPANTS. 6 . el espacio utilizado. • Existe un perfil por defecto o DEFAULT. • Un usuario al que no se le asigna perfil posee el perfilDEFAULT. el nombre del esquema propietario de la mismas y el nombre del procedimiento que debe emplearse para desplazar determinado contenido desde SYSAUXhasta otra lozalización: Select occupant_name.Mediante el parámetro de inicialización RESOURCE_LIMIT (init. por lo que es conveniente modificarlo (sentencia ALTER PROFILE). PARÁMETROS DE RECURSOS. – CPU_PER_CALL. las aplicaciones que usan SYSAUX.ora). • Parámetros de recursos: – SESSIONS_PER_USER. Tiempo de UCP por sesión (centésimas de segundo). PARÁMETROS DE RECURSOS. o fetch) en centésimas de segundo. CREACIÓN DE PERFILES. – IDLE_TIME. Tiempo de inactividad continua en una sesión (minutos). .Tiempo de UCP para una llamada (parse. o se ha indicado DEFAULT. execute.Tiempo total para una sesión (minutos). • Aquellos recursos para los que en el perfil asignado no se ha definido un valor.Mediante la sentencia ALTER SYSTEM SET RESOURCE_LIMIT = TRUE/FALSE. space_usage_kbytes. • Está constituido por un conjunto de límites de recursos de la base de datos.ESPACIO DE ALMACENAMIENTO SYSAUX. PERFILES. • La vista dinámica V$SYSAUX_OCCUPANTSindica. toman el valor designado en el perfil por defecto. ayudando a incrementar la disponibilidad de la bd al descargar datos de aplicaciones que utilizaban el espacio SYSTEM u otros con anterioridad a esta versión de bd. • Sintaxis: CREATE PROFILE <nombre_perfil> LIMIT <parámetros> <valor>/UNLIMITED/DEFAULT. entre otras cosas.

en bytes.Coste total en recursos por sesión expresado en unidades de servicio(CPU_PER_SESSION. Permite indicar como argumento un “script” PL/SQL que verifica la complejidad de la clave. en el caso de parámetros de contraseña que no ha sido fijado limite. – PASSWORD_GRACE_TIME. Si se indica un valor para PASSWORD_GRACE_TIME. PARÁMETROS DE CONTRASEÑA.– LOGICAL_READS_PER_SESSION. • Parámetros de contraseña: – FAILED_LOGIN_ATTEMPTS. CONNECT_TIME. CREACIÓN DE PERFILES. la clave expira si no se cambia en este periodo. • Valor UNLIMITED. nunca se podrá reutilizar la contraseña. para uso privado reservado en la “shared pool” de la SGA (se emplea K o M para indicar kilobytes o megabytes). 7 . execute. Número de días que la cuenta estará bloqueada después de un cierto número de fallos de conexión indicado. Si alguno de los dos tiene valor UNLIMITED. – PASSWORD_REUSE_MAX . se genera un aviso pero el usuario puede seguir conectándose. Si se indica NULL no se usa función alguna. Si ambos tiene valor UNLIMITED. Si se indica un entero para ambos parámetros. o fetch). la bd los ignora. Número de intentos fallidos de conexión antes del bloqueo. – PASSWORD_REUSE_TIME . Oracle proporciona una función por defecto: “verify_function”. Si es un parámetro de recurso indica que puede usarse una cantidad ilimitada del mismo. Número de cambios de clave necesarios antes de poder reutilizar la clave actual. – PASSWORD_LIFE_TIME. y PRIVATE_SGA). – PASSWORD_LOCK_TIME. Numero de bloques de datos leídos en una sesión (memoria o disco).Cantidad de espacio. – LOGICAL_READS_PER_CALL.Numero de bloques de datos para una llamada de una SQL (parse. PARÁMETROS DE CONTRASEÑA. – PASSWORD_VERIFY_FUNCTION. Periodo de gracia donde se permite la conexión pero se notifica la necesidad de cambiarla. Solo en “Shared Server”. por defecto UNLIMITED. el usuario no puede reutilizar la contraseña hasta que ha cambiado el número de veces indicado en PRM durante el periodo indicado por PRT. Número de días en los cuales la contraseña no puede reutilizarse. – COMPOSITE_LIMIT. Si no se indica valor para PASSWORD_GRACE_TIME. – PRIVATE_SGA. Número de días en que la clave es válida para autentificación. LOGICAL_READS_PER_SESSION. CREACIÓN DE PERFILES. CREACIÓN DE PERFILES. NOTA: PASSWORD_REUSE_TIME y PASSWORD_REUSE_MAX deben usarse conjuntamente.

• Los valores modificados no afectan a las sesiones en curso. al ser asignado a un usuario toma para dicho parámetro el valor indicado en el perfil DEFAULT. • Es necesario poseer el privilegio de sistema “ALTER PROFILE”. ASIGNACIÓN DE PERFILES. • Ejemplo de creación de perfil. El borrado de un perfil no afecta a las sesiones en curso. • Las asignaciones de perfiles no afectan a las sesiones activas. • Sintaxis: ALTER PROFILE <perfil> LIMIT <parámetros> <valor>/UNLIMITED/DEFAULT. a este se le asigna de forma automática el perfil DEFAULT. • Los perfiles no pueden asignarse a roles ni a otros perfiles. CREATE PROFILE perfil_2 LIMIT FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LIFE_TIME 60 PASSWORD_REUSE_TIME 60 PASSWORD_REUSE_MAX 5 PASSWORD_VERIFY_FUNCTION verify_function PASSWORD_LOCK_TIME 1/24 PASSWORD_GRACE_TIME 10. • Puede modificarse. DROP PROFILE <perfil> CASCADE. FUNCIÓN DE VERIFICACIÓN. Si se borra un perfil asociado a un usuario. Si se indica DEFAULT o se omite en el perfil algún parámetro. siempre en el esquema SYS y conectando como CONNECT SYS/password AS SYSDBA MODIFICACIÓN DE PERFILES. 8 . • Sintaxis: DROP PROFILE <perfil>. • Se puede realizar durante la creación del usuario (CREATE USER) o posteriormente (ALTER USER). • Para eliminar un perfil asignado a un usuario debe usarse la opción CASCADE. • Debe poseerse el privilegio de sistema DROP PROFILE. BORRADO DE PERFILES.• Valor DEFAULT. solo a usuarios. El perfil DEFAULTno puede borrarse. Realiza las comprobaciones: – La contraseña satisface un mínimo de longitud. • Un usuario sólo puede tener un perfil asignado a la vez. • La función de verificación de contraseña debe pertenecer al usuario SYS. – La contraseña no coincide con el nombre de usuario.

…) o en cualquier esquema. – ALTER DATABASE – ALTER SYSTEM – AUDIT SYSTEM • DATABASE LINKS – CREATE DATABASE LINK – CREATE PUBLIC DATABASE LINK – DROP PUBLIC DATABASE LINK • TABLAS – INDICES 9 . funciones o paquetes). USUARIOS Y PERFILES. • DATABASE. Usuarios visibles al usuario actual. Describe el usuario actual. Parámetros de contraseña asignados al usuario. vistas. Es importante no excederse en la concesión de privilegios. Parámetros de recursos asignados al usuario. preferiblemente.Sobre objetos: Permite a un usuario acceder y manipular o ejecutar objetos concretos (tablas. procedimientos. secuencias. PRIVILEGIOS • Derecho a ejecutar un tipo determinado de sentencia SQL o a acceder a un objeto de otro usuario.De sistema: Permite realizar determinadas acciones en la base de datos (Por ejemplo. Información sobre sesiones.VISTAS. crear espacios de almacenamiento. • Se distinguen dos tipos: . Parámetro DBA_USERS ALL_USERS USER_USERS DBA_TS_QUOTAS USER_TS_QUOTAS USER_PASSWORD _LIMITS USER_RESOURCE_ LIMITS V$SESSION V$SESSTAT Descripción Usuarios de la base de datos. Pueden asignarse a usuarios o. Cuotas de espacio para usuarios. Estadísticas de sesión (ver también V$STATNAME). a roles. PRIVILEGIOS DE SISTEMA. crear usuarios. .

• PROCEDURE – CREATE PROCEDURE – CREATE ANY PROCEDURE – ALTER ANY PROCEDURE – DROP ANY PROCEDURE – EXECUTE ANY PROCEDURE • PROFILES – CREATE PROFILE – ALTER PROFILE – DROP PROFILE • ROLES – CREATE ROLE – ALTER ANY ROLE – DROP ANY ROLE – GRANT ANY ROLE PRIVILEGIOS DE SISTEMA.– CREATE TABLE – CREATE ANY TABLE / CREATE ANY INDEX – ALTER ANY TABLE / ALTER ANY INDEX – DROP ANY TABLE / DROP ANY INDEX – DELETE ANY TABLE / DROP ANY TABLE / INSERT ANY TABLE / UPDATE ANY TABLES/ SELECT ANY TABLE PRIVILEGIOS DE SISTEMA. • ROLLBACK SEGMENTS – CREATE ROLLBACK SEGMENT – ALTER ROLLBACK SEGMENT – DROP ROLLBACK SEGMENT • SESSIONS – CREATE SESSION – ALTER SESSION • TABLESPACES – CREATE TABLESPACE – ALTER TABLESPACE – DROP TABLESPACE – MANAGE TABLESPACE – UNLIMITED TABLESPACE PRIVILEGIOS DE SISTEMA. • USUARIO – CREATE USER – ALTER USER – DROP USER • OTROS – ANALYZE ANY – AUDIT ANY 10 .

fichero init. • El parámetro de inicialización. • La cláusula PUBLICotorga el privilegio a todos los usuarios (¡Peligro!). GRANT <privilegio>/ALL_PRIVILEGES TO <usuario>/<rol>/PUBLIC WITH ADMIN OPTION.. • Sintaxis: GRANT <privilegio>/ALL_PRIVILEGES TO <usuario>/<rol>/PUBLIC. por ejemplo. . • Para que un usuario pueda otorgar un privilegio de sistema bien debe haberse otorgado con ADMIN OPTION. el acceso a objetos en este esquema está entonces restringido a SYS y aquellos usuarios que se conectan como SYSDBA. • Al especificar ALL PRIVILEGESse otorgan todos los privilegios de sistema (¡Peligro!).ora. • Si su valor es TRUE. PRIVILEGIOS DE SISTEMA.UNLIMITED TABLESPACEno puede otorgarse a un rol. Impide el acceso al esquema SYS a través de los privilegios que conceden acceso a cualquier esquema (privilegios ANY).CREATE TABLE incluye las sentencias CREATE INDEX y ANALYZE. SELECT ANY TABLE permite acceder a vistas y tablas en otros esquemas pero no seleccionar objetos del esquema SYS (diccionario de datos).Privilegios como CREATE TABLE o CREATE PROCEDURE incluyen el borrado de dichos objetos. • La cláusula ANY en cualquier privilegio indica que los usuarios a los que se les conceda tienen dicho privilegio en cualquier esquema. • Por defecto su valor es FALSE. OTORGAR PRIVILEGIOS DE SISTEMA. o haber sido concedido el privilegio GRANT ANY PRIVILEGE. permite a aquel a quien se le concede el privilegio poder otorgarlo (¡peligro!). Este privilegio permite usar una cantidad ilimitada de espacio en cualquier espacio de almacenamiento de la bd y se antepone a cualquier cuota explícita asignada al usuario. 11 . O7_DICTIONARY_ACCESSIBILITY permite restringir los privilegios de sistema. se permite el acceso a los objetos del esquema SYS. En este caso. Nota: Consultar “Oracle Database SQL Reference” para una lista completa de privilegios de sistema. .. RESTRICCIONES EN PRIVILEGIOS DE SISTEMA. .No existe el privilegio CREATE INDEX.– COMMENT ANY TABLE – . Notas: .

SELECT • FUNCIONES. • TABLAS – ALTER .objeto TO <usuario>/<rol>/PUBLIC WITH GRANT OPTION. estos siguen pudiendolo usar.FLASHBACK . • Sintaxis: REVOKE <privilegio>/ALL_PRIVILEGES FROM <usuario>/<rol>/PUBLIC.INSERT .FLASHBACK – INDEX . • Si se retira un privilegio de sistema de PUBLIC. • En el caso de ADMIN OPTION no hay un efecto en cascada cuando se retira un privilegio referente a operaciones DDL (por ej.UPDATE • VISTAS – DELETE . • Con PUBLICotorga el privilegio a todos los usuarios (¡Peligro!).REFERENCES – SELECT . • Con ALL PRIVILEGESse otorgan todos los privilegios sobre el objeto (¡Peligro!). • La cláusula GRANT OPTIONpermite a aquel a quien se le concede el privilegio poder otorgarlo (¡Peligro!). • Al retirar ciertos privilegios determinados objetos pueden quedar inconsistentes (procedimientos o vistas consultadas merced al privilegio SELECT ANY TABLE). CREATE TABLE). OTORGAR PRIVILEGIOS SOBRE OBJETOS. • Sintaxis: GRANT <privilegio>/ALL_PRIVILEGES <columna>/ON <esquema>. PAQUETES Y PROCEDIMIENTOS – EXECUTE Nota: Consultar “Oracle Dat. • Cualquier usuario con la opción ADMIN OPTION sobre un privilegio puede revocarlo.INSERT – REFERENCES . Quien lo hace no tiene porque ser el usuario que originalmente lo otorgo.objeto TO <usuario>/<rol>/PUBLIC. PRIVILEGIOS SOBRE OBJETOS. pero existen usuarios a los que se ha otorgado aquel directamente o a través de roles.UPDATE • SECUENCIAS – ALTER .REVOCAR PRIVILEGIOS DE SISTEMA.DELETE .SQL Reference” para lista completa privilegios sobre objetos.SELECT . 12 . si lo hay cuando se revoca un privilegio referente a operaciones DML (por ejemplo SELECT ANY TABLE). GRANT <privilegio>/ALL_PRIVILEGES ON <esquema>.

.objeto FROM <usuario>/<rol>/PUBLIC <CASCADE CONSTRAINTS>. BENEFICIOS.Pueden otorgarse a cualquier usuario o rol. . 13 . • Mejora aplicaciones. Los permisos pueden asignarse a un rol y este a los diferentes usuarios. GRANT REFERENCES (dni_empleado). El uso de roles disminuye el numero de “grants” almacenados en el diccionario de datos.retenciones TO gestor WITH GRANT OPTION. • En el caso de GRANT OPTION hay un efecto en cascada cuando se retira un privilegio.Su nombre es único en la bd. o desctivarse. Los roles también pueden protegerse con claves y estos activarse sólo si la aplicación suministra la correcta. Roles asignados a un usuario pueden ser activados o desactivados temporalmente. • Disponibilidad de privilegios selectiva. (dni_empleado. • Simplifican el manejo de privilegios. .OTORGAR PRIVILEGIOS SOBRE OBJETOS. ROLES. • Es un grupo de privilegios.empleados TO gestor. • Sintaxis: REVOKE <privilegio>/ALL_PRIVILEGES ON <esquema>. • Ejemplos: GRANT ALL_PRIVILEGES ON nomina. • CASCADE CONSTRAINTS elimina cualquier cláusula de integridad referencial que aquel a quien se retiran los permisos haya definido usando REFERENCES o ALL PRIVILEGES. Cuando un usuario ejecuta una determinada aplicación puede activarse. todos los usuarios que lo posean los adquieren de forma inmediata. • Quien otorgo privilegios solo puede revocarlos a aquellos usuarios a quienes se los ha concedido. Si se modifican los privilegios asociados al rol. • Características: . REVOCAR PRIVILEGIOS SOBRE OBJETOS.Pueden tener contraseña. distinto a cualquier otro nombre de usuario o rol. • Manejo de privilegios dinámico. UPDATE sueldo_base) ON nomina.No pertenecen a ningún esquema. • Mejora de la productividad. de sistema o sobre objetos. a los que se les da un nombre y pueden ser asignados a otros usuarios y roles. pero no a si mismo y tampoco de forma circular. selectivamente roles en función de nuestro interés. ROLES.

CREATE SEQUENCE. • Sintaxis: ALTER ROLE <rol> NOT IDENTIFIED/ IDENTIFIED BY <contraseña>. – DBA. • Debe poseerse el privilegio de sistema ALTER ANY ROLE o haber sido sido otorgado el rol con la opción ADMIN. Idem para importaciones completas. • No se ven afectadas las sesiones en las que el rol está ya activo. CREATE OPERATOR. ROLES PREDEFINIDOS. • Los roles CONNECT. – SELECT_CATALOG_ROLE. Privilegios para realizar exportaciones completas e incrementales de la base de datos. CREACIÓN DE ROLES. CREATE ROLE <rol> NOT IDENTIFIED/<>. – RESOURCE. – DELETE_CATALOG_ROLE. • Oracle proporciona roles predefinidos como ayuda a la administración de base de datos. 14 . RESOURCE y DBA se mantienen por compatibilidad con versiones anteriores de Oracle. CREATE TRIGGER y CREATE TYPE. Privilegio de borrado en la tabla de auditoría de sistema (AUD$). • Debe poseerse el privilegio CREATE ROLE. • Sintaxis: CREATE ROLE <rol> IDENTIFIED BY <contraseña>. Privilegio de ejecución sobre objetos en el diccionario de datos. – IMP_FULL_DATABASE. Todo privilegio de sistema WITH ADMIN OPTION.ROLES PREDEFINIDOS. • El nombre debe ser diferente a cualquier nombre de rol o usuario existente. No se asegura que sigan existiendo en un futuro. • Un rol solo puede modificarse para cambiar su método de autentificación. – EXP_FULL_DATABASE. con lo que no surgirán problemas si estos quedan obsoletos en futuras versiones. ASIGNAR ROLES A USUARIOS. Incluye CREATE CLUSTER. – EXECUTE_CATALOG_ROLE. evitando el uso de roles predefinidos. Incluye sólo el privilegio CREATE SESSION. CREATE INDEXTYPE. • La cláusula IDENTIFIED BY indica como debe ser autorizado antes de usarse por un usuario al que se la ha otorgado. entre los que se encuentran: – CONNECT. CREATE TABLE. MODIFICACIÓN DE ROLES. • Se recomienda crear roles específicos en cada bd y asignarles los permisos necesarios. Privilegio de consulta sobre objetos del diccionario de datos. CREATE PROCEDURE.

• Este parámetro está obsoleto y sólo se mantiene por compatibilidad.• Sintaxis: GRANT <rol> TO <usuario>/<rol>/PUBLIC. • Con PUBLICse deasigna el rol de todos los usuarios. o haberlo creado. poseer el privilegio GRANT ANY ROLE.. • Para que un usuario pueda otorgar un rol debe habérsele concedido con ADMIN OPTION.…<roln>/ ALL [EXCEPT rol1 [. también aquellos usuarios con el privilegio GRANT ANY ROLE(pueden revocar cualquier rol). • NONE hace que ninguno de los roles sea por defecto. ROLES POR DEFECTO. • Sintaxis: REVOKE <rol1>. <usuario>|<rol>} ]. • Puede hacerlo cualquier usuario con la opción ADMIN OPTION para un rol.. • Un usuario puede activar como máximo 2+MAX_ENABLED_ROLES puesto que cada usuario tiene dos roles adicionales (PUBLIC y y el propio rol del usuario). ] / NONE. • El usuario que crea el rol implícitamente lo tiene asignado con ADMIN OPTION. • Un rol por defecto es aquel que automáticamente se activa al conectarse. …<roln> FROM <usuario>|<rol>|PUBLIC [. • ALL hace que todos los roles sean por defecto excepto aquellos indicados en la cláusula EXCEPT. • Es un parámetro de inicialización que define el numero máximo de roles de base de datos activos concurrentemente. y los únicos privilegios al efectuarse la conexión serán aquellos asignados directamente.. La claúsula puede sólo indicar roles otorgados directamente al usuario con una sentencia GRANT. ROLES POR DEFECTO. • Sintaxis: ALTER USER <usuario> DEFAULT ROLE <rol1>. GRANT <rol> TO <usuario>/<rol>/PUBLIC WITH ADMIN OPTION. DEASIGNACIÓN DE ROLES. que un usuario puede poseer.role2]. • La cláusula DEFAULT ROLE se aplica solo a los roles otorgados de forma directa. PARÁMETRO MAX_ENABLED_ROLES. 15 . incluyendo aquellos contenidos dentro de otros roles. Es preferible NO usarlo. y no para roles no asignados al usuario o asignados a través de otros roles. • Con la sentencia ALTER USERse limitan los roles por defecto asignados a un usuario. • EXCEPT indica que los roles que le siguen no serán por defecto..

• Sintaxis: DROP ROLE <rol>. • Al borrar un rol se deasigna de todos los usuarios y roles... Permisos sobre objetos en la bd.. • La vista SESSION_ROLESinforma de aquellos roles que. Perfiles en la bd. para el usuario actual.. • Durante una sesión. … . a menos que se limite con ALTER USER. Roles existentes en la bd. • DBA_TABLESPACE_GROUPS. • NONEdesactiva todos los roles en la sesión (solo son activos los privilegios otorgados directamente). • DBA_TS_QUOTAS. <rol> [ IDENTIFIED BY <contraseña>]]…/ ALL [ EXCEPT <rol1> . Cuotas de espacio para usuarios. • DBA_COL_PRIVS. Privilegios de sistema a usuarios y roles.. Roles concedidos a usuarios y roles. Grupos de espacios temporales... • DBA_ROLE_PRIVS. están activos en un momento determinado. • Debe poseerse el privilegio DROP ANY ROLE o haber sido concedido el rol con ADMIN OPTION. • DBA_USERS.. • DBA_ROLES. VISTAS... Previamente los roles deben haber sido asignados al usuario. Al crear un usuario todos los roles asignados son por defecto. 16 . Las sesiones en las que el rol está activo no se ven afectadas. • DATABASE_PROPERTIES.] /NONE • IDENTIFIED BYindica la contraseña del rol al activarlo. • DBA_TAB_PRIVS.. Usuarios de la bd. • ALL activa todos los roles excepto los que aparecen en la cláusula EXCEPT(no puede usarse esta opción para activar roles con contraseña). pero ninguna otra lo podrá usar. los roles activos vuelven a ser los roles por defecto. • No podrá hacerse uso de los privilegios otorgados a través del rol inactivo a menos que también se hayan otorgado de forma directa o a través de otros roles. el usuario o una aplicación puede usar la sentencia SET ROLE para modificar los roles activos en la sesión.. ACTIVACIÓN Y DESACTIVACIÓN DE ROLES.<roln> ] ... Propiedades de la bd. • DBA_PROFILES. • Sintaxis: SET ROLE <rol> [ IDENTIFIED BY <contraseña>] [. • DBA_SYS_PRIVS. y se elimina de la base de datos.BORRADO DE ROLES... Permisos sobre columnas de objetos en bd.. VISTAS.. • En la siguiente sesión..... ACTIVACIÓN Y DESACTIVACIÓN DE ROLES.

. Roles concedidos a otros roles. • SESSION_ROLES.. Privilegios de sistema concedidos a roles.• ROLE_ROLE_PRIVS ... • USER_PASSWORD_LIMITS.. Información de sesión.... • ROLE_TAB_PRIVS . Límites de recursos por usuario... • SESSION_PRIVS..... Privilegios disponibles en la sesión. Privilegios sobre objetos concedidos a roles.. Roles activos en la sesión. Parámetros contraseña usuario. • DBA_CONNECT_ROLE_GRANTEES . • USER_RESOURCE_LIMITS... • ROLE_SYS_PRIVS. Usuarios con privilegio CONNECT. • V$SESSION. 17 ..