lunes, 26 de octubre de 2009

Privilegios, Roles y Perfiles

Privilegios

Es la capacidad de un usuario dentro de la base de datos a realizar determinadas operaciones o acceder a determinados objetos de otros usuarios.

Privilegios sobre los objetos

Nos permite acceder y realizar cambios en los datos de otros usuairo. Ejemplo: El privilegio de consultar la tabla de otro usuario es un privilegio sobre objetos.

  GRANT {PRIV_OBJETO [, PRIV_OBJETO]… | ALL [PRIVILEGES]}
   [(COL [,COL]…)]
  ON [USUARIO] OBJETO
  TO {USUARIO | ROL | PUBLIC} [,{USUARIO | ROL | PUBLIC}…]
  [WITH GRANT OPTION]; 



ON= Especifica el objeto sobre el que se dan los privilegios.
TO= Identifica a los usuarios o roles a los que se conceden los privilegios.
ALL= Concede todos los privilegios sobre el objeto especificado.
WITCH GRANT OPTION= Permite que el receptor del privilegio o rol se lo asigne a otros usuarios o roles.
PUBLIC= Asigna los privilegios a todos los usuarios actuales y futuros: El propósito principal del grupo PUBLIC es garantizar el acceso a determinados objetos a todos los usuarios de la base de datos.

Privilegios de sistema

Dan derecho a ejecutar un tipo de comando SQL o a realzar alguna acción sobre objetos de un tipo especificado. Por ejemplo, el privilegio para crear TABLESPACES es un privilegio de sistema. Formato:

  GRANT {PRIVILEGIO | ROL} [, {PRIVILEGIO | ROL}, …]
  TO {USUARIO | ROL | PUBLIC} [,{USUARIO | ROL | PUBLIC}]
  [WITH ADMIN OPTION];


WITH ADMIN OPTION= Permite que el receptor del privilegio o rol pueda conceder esos mismos privilegios a otros usuarios o roles.

Retirada de privilegios de objetos a los usuarios

  REVOKE {PRIV_OBJETO [,PRIV_OBJETO]… | ALL [PRIVILEGES]}
  ON [USUARIO.]OBJETO
  FROM {USUARIO | ROL | PUBLIC} [, {USUARIO | ROL | PUBLIC}]…;


Retirada de privilegios de sistema o roles a los usuarios

  REVOKE {PRIV_SISTEMA | ROL} [,{PRIV_SISTEMA | ROL}]…
  FROM {USUARIO | ROL | PUBLIC} [,{USUARIO | ROL | PUBLIC}]…;
 


 http://www.desarrolloweb.com/articulos/2065.php


Roles del Sistema
Los roles se pueden utilizar para gestionar los comandos de sistema disponibles para los usuarios. Estos incluyen comandos como CREATE TABLE o SELECT ANY TABLE. Todos los usuarios que quieran acceder a la BD deben tener el rol CONNECT; aquellos que necesiten crear segmentos necesitaran el rol RESOURCE. Un usuario con el rol DBA tiene derecho para ver y manejar todos los datos de la BD. En Oracle CONNECT, RESOURCE y DBA son roles de sistema. Las acciones contra cada tipo de objeto son autorizadas por privilegios separados. Así, un usuario puede tener concedido el privilegio CREATE TABLE, pero no el ALTER TABLE

http://www.infor.uva.es/~jvegas/cursos/bd/oraseg/oraseg.html#1.3


Generalmente cuando uno toma el curso de Workshop I de 10g, y llega a la parte de Roles (lección 6), se habla muy poco de cómo se pueden manejar los roles, e incluso no hay un ejemplo claro del mismo.

Las veces que me toca dar el curso a mi, me gusta explicar a fondo lo más que puedo acerca de roles.

Se nos dice que un rol, es asignado por default a un usuario. Un rol, puede ser asegurado de manera adicional, que por default, no trae seguridad alguna.

Entonces, partiendo de la teoría, un rol puede ser creado con la siguiente seguridad:

* Ninguna (Default)
* Password
* External
* Global

Por falta de hardware/software, no puedo demostrar la seguridad Global, pero las demás sí.


http://hugoracle.blogspot.com/2008/09/roles-en-oracle.html



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 recursos que pueden ser limitados via perfil son los siguientes:
Recurso Descripción
SESSIONES_PER_USER El número de sesiones concurrentes que un usuario puede tener en una instancia.
CPU_PER_SESSION El tiempo de CPU, en centenas de segundos, que una sesión puede utilizar.
CONNECT_TIME El número de minutos que una sesión puede permanecer activa.
IDLE_TIME El número de minutos que una sesión puede permanecer sin que sea utilizada de manera activa.
LOGICAL_READS_PER_SESSION El número de bloques de datos que se pueden leer en una sesión.
LOGICAL_READS_PER_CALL El número de bloques de datos que se pueden leer en una operación.
PRIVATE_SGA La cantidad de espacio privado que una sesión puede reservar en la zona de SQL compartido de la SGA.
COMPOSITE_LIMIT El número de total de recursos por sesión, en unidades de servicio. Esto resulta de un calculo ponderado de CPU_PER_SESSION, CONNECT_TIME, LOGICAL_READS_PER_SESSION y PRIVATE_SGA, cuyos pesos se pueden variar con el comando ALTER RESOURCE COST.
Los perfiles se pueden crear via el comando CREATE PROFILE, y se pueden modificar con la sentencia ALTER PROFILE.
En general, el perfil por defecto debe ser adecuado para los usuarios normales; los usuarios con requerimientos especiales deberían tener perfiles especiales.

http://www.infor.uva.es/~jvegas/cursos/bd/oraseg/oraseg.html#2.4






 

No hay comentarios:

Publicar un comentario