Академический Документы
Профессиональный Документы
Культура Документы
Consultas
select * from dba_roles
select * from dba_profiles
select * from dba_users
select * from dba_sys_privs where grantee=’USUARIO’;
select * from dba_role_privs where grantee=' USUARIO ';
select * from dba_tab_privs where grantee=' USUARIO ';
10. Para Quitar Privilegios: REVOKE INSERT ON TABLA FROM USUARIO, REVOKE ALL PRIVI
2. Privilegios
Los privilegios de una base de datos Oracle se pueden clasificar en privilegios de sistema y privilegios sobre objetos.
• Privilegios de sistema. Permiten a los usuarios realizar una acción en el sistema. Por ejemplo, conectarse a la base de datos (crear sesión),
crear o modificar las estructuras de memoria, procesos y archivos de la base de datos, crear un tablespace o para eliminar una tabla de la base
de datos son privilegios de sistema. Estos privilegios suelen estar asignados sólo a administradores y a programadores.
• Privilegios sobre objetos. Permiten a los usuarios realizar acciones concretas sobre un objeto específico del esquema. Por ejemplo, el
privilegio de insertar, actualizar o borrar filas de una tabla. Los privilegios sobre objetos se asignan a los usuarios finales de forma que puedan
realizar sus acciones permitidas sobre la base de datos.
4. Perfiles
Se utilizan para restringir el uso de recursos del sistema. Cada usuario está asignado a un perfil que especifica las limitaciones sobre distintos
recursos del sistema disponibles para el usuario incluyendo:
• número de sesiones concurrentes
• tiempo de CPU
o Por sesión
o Por sentencias SQL
• Cantidad de operaciones E/S lógicas
o Por sesión
o Por sentencias SQL
• Cantidad de tiempo inactivo por sesión
• Cantidad de tiempo de conexión
• Restricciones de contraseña
SESSIONS_PER_USER 3
CONNECT_TIME 480
IDLE_TIME 10
FAILED_LOGIN_ATTEMPTS 2
PASSWORD_LIFE_TIME 120;
f) actualizar un perfil: alter profile PERFIL_BASICO limit password_life_time 100;
g) Consultar un perfil: select * from dba_profiles where profile = 'PERFIL_BASICO' order by resource_name;
h) borrar un perfil: drop profile PERFIL_BASICO;
i) ASIGNAR UN PERFIL AL USUARIO: ALTER USER USU_CARLOS PROFILE PERFIL_BASICO;
5. Vistas de Consulta
Para Consultar los roles, perfiles y usuarios que existen en la BD. Adicional consultar qué privilegios del sistema, roles y privilegios sobre
objetos tiene concedidos un usuario específico.
1. Creación de Usuarios
El objetivo de la creación de usuarios es establecer una cuenta segura y útil, que tenga los privilegios adecuados y los valores por defecto apropiados.
En Oracle se puede especificar todo lo necesario para abrir una cuenta con el comando CREATE USER. Los parámetros que se le pueden pasar son:
Parámetro Significado
Asigna un perfil al usuario. Los perfiles se utilizan para restringir el uso de recursos
Profile
como el tiempo de CPU, el número de sesiones concurrentes. Si no se especifica
se asigna DEFAULT y tiene asignados todos los límites a UNLIMITED.
Identified by Nos permite especificar su contraseña
Espacio de tablas por defecto en el que los objetos de este usuario serán creados.
Default Tablespace Esto no da al usuario derechos de crear objetos. Si no se especifica se asigna el
tablespace USERS
ACCONT (LOCK/ UNLOCK) Indica si el usuario tendrá la cuenta bloqueada o no de forma inicial
Ejemplo No. 1:
CREATE USER aitor
IDENTIFIED BY P@ss
DEFAULT TABLESPACE sis2TS
TEMPORARY TALESPACE sis2TMP
QUOTA 50M ON sis2TS
PASSWORD EXPIRE
ACCOUNT UNLOCK;
Ejemplo No. 2:
Una vez hemos creado un usuario podemos hacer ciertas modificaciones. La sintaxis es muy parecida a la vista anteriormente en
la creación de usuarios.
Ejemplo:
CASCADE nos indica que vamos a borrar también TODOS sus objetos antes de proceder a la eliminación del usuario evitando posibles errores. Si el
usuario posee algún objeto solo podremos eliminarlo con CASCADE
2. Privilegios
2.1. Privilegios sobre Objetos
Podemos conceder diferentes permisos a nuestros usuarios y así controlar exactamente qué acciones queremos que puedan realizar y
que acciones no van a ser permitidas. La sintaxis es la siguiente:
Donde:
Ejemplo:
Podemos también asignar ciertos permisos sobre el sistema a los usuarios que tengamos creados en nuestra base de datos. Los
privilegios del sistema no se asignan sobre objetos concretos sino que especifican que acciones se podrán realizar sobre el sistema
gestor de base de datos. La sintaxis:
GRANT permiso1[,permiso2,...]
TO nombreUsuario[,nombreUsuario2,...] | nombreRol;
Ejemplo:
Ejemplo:
REVOKE INSERT on employees FROM luisa;
Nota: En los privilegios sobre objetos, si se quita el permiso de insert sobre employees a luisa, automáticamente se quita el permiso a todos
los usuarios a los que luisa les ha concedido dicho permiso.
Ejemplo:
Nota: En los privilegios de sistema, se quita el permiso de crear vistas a luisa pero no a los usuarios a los que éste haya concedido el privilegio
A continuación un listado de los privilegios más usados: Para más información acceder al link:
http://docs.oracle.com/cd/E11882_01/timesten.112/e21642/privileges.htm#TTSQL338
Privilegio Capacidades
CREATE [PUBLIC]
Crear sinónimos [públicos].
SYNONYM
Crear tablas. El usuario debe tener cuota en el espacio de tablas, o ha de tener asignado el
CREATE [ANY] TABLE
privilegio UNLIMITED TABLESPACE.
DELETE ANY TABLE Borrar filas de cualquier tabla o vista, y también truncar.
Gestión de la BD ...
CREATE ROLLBACK
Creación de segmentos de rollback.
SEGMENT
ALTER ROLLBACK
Alterar segmentos de rollback.
SEGMENT
DROP ROLLBACK
Borrar un segmento de rollback existente.
SEGMENT
Un rol es una agrupación de permisos. Gracias a los roles, podemos juntar ciertos permisos en un solo rol y concederlo a un usuario o grupo de
usuarios. En la instalación se crea un rol llamado OSOPER que sirve para los operarios de la máquina donde está la BD y permite realizar copias
de seguridad en frio y en caliente. Los privilegios de OSOPER son STARTUP, SHUTDOWN, ALTER DATABASE OPEN/MOUNT, ALTER DATABASE
BACKUP, ARCHIVE LOG, RECOVER y RESTRICTED SESSION.
Se pueden crear nuevos roles. Por ejemplo, podemos crear un rol llamado creadorCuentas que sólo pueda crear usuarios y no pueda realizar ninguna
otra operación de DBA. Las sentencias que permiten hacer esto son las siguientes:
Oracle por defecto tienen tres roles de sistema: CONNECT, RESOURCE y DBA, cuyos privilegios son:
Rol Privilegios
alter session, create session, create cluster, create table, create view, create synonym, create sequence, create database
CONNECT
link
RESOURCE create cluster, create table, create procedure, create sequence, create trigger
DBA todos los privilegios de sistema con la opcion with admin option
GRANT permiso1[,permiso2,...]
ON [usuario.]objeto
TO nombreRole;
Ejemplo:
3.4 Asignar un rol a un usuario: GRANT nombreRol TO nomreUsuario. Ejemplo: GRANT miRole TO aitor;
4. Perfiles de Usuario
Los perfiles se utilizan para limitar la cantidad de recursos del sistema y de la BD disponibles para un usuario. Si no se definen perfiles para un usuario
se utiliza el perfil por defecto, que especifica recursos ilimitados. Los perfiles se crean con el comando CREATE PROFILE y se pueden modificar con
la sentencia ALTER PROFILE.
Los recursos que pueden ser limitados por perfil son los siguientes:
• número de sesiones concurrentes
• tiempo de CPU
o Por sesión
o Por sentencias SQL
• Cantidad de operaciones E/S lógicas
o Por sesión
o Por sentencias SQL
• Cantidad de tiempo inactivo por sesión
• Cantidad de tiempo de conexión
• Restricciones de contraseña
COMPOSITE_LIMIT
Suma del máximo de CPU_PER_SESSION, CONNECT_TIME, LOGICAL_READS_PER_SESSION y PRIVATE_SGA. Si este límite es excedido, Oracle aborta
la sesión y regresa un error.
CONNECT_TIME
Tiempo permitido de conexión por sesión en minutos.
CPU_PER_CALL
Máximo tiempo de CPU por llamada en centésimas de segundo.
CPU_PER_SESSION
Máximo tiempo de CPU por sesión en centésimas de segundo.
IDLE_TIME
Tiempo máximo permitido sin actividad por el usuario antes de ser desconectado. Se expresa en minutos.
LOGICAL_READS_PER_CALL
Máximo número de bloques de base de datos leídos por llamada.
LOGICAL_READS_PER_SESSION
Máximo número de bloques de base de datos leídos por sesión.
PRIVATE_SGA
Máxima cantidad de bytes de espacio privado reservado en la SGA. Se puede expresar en el formato enteroK para kilobytes o enteroM para
megabytes.
SESSIONS_PER_USER
Máximo número de sesiones concurrentes permitidas por usuario.
FAILED_LOGIN_ATTEMPTS
Número de intentos fallidos de conexión de un usuario, antes de que Oracle ponga la cuenta bloqueada.
PASSWORD_GRACE_TIME
Número de días de gracia para realizar un cambio de password de nuestra cuenta. Si en el periodo de tiempo delimitado no fue cambiado el password,
el password expira.
PASSWORD_LIFE_TIME
Número de días de vida de un password.
PASSWORD_LOCK_TIME
Número de días que permanecerá bloqueado un usuario después de rebasar el límite FAILED_LOGIN_ATTEMPTS.
PASSWORD_REUSE_MAX
Número de veces que debe cambiar una contraseña antes de poder ser re-usada la original.
PASSWORD_REUSE_TIME
Número de días que tienen que pasar para poder re-usar un password.
PASSWORD_VERIFY_FUNCTION
En este parámetro, se puede especificar un script para validar el password. Por ejemplo, que tenga una determinada cantidad de caracteres, que
tenga letras y números, etcétera.