Gestión de seguridad en Oracle II

08 de enero de 2009
Valoración del artículo:
Continuamos con los conceptos básicos en la gestión de seguridad de una base de datos. Seguridad de los datos en Oracle.
En el articulo anterior hablábamos de que existían dos tipos de seguridad en un sistema gestor de base de datos. El primero era el encaminado a la seguridad del sistema (enlace al articulo anterior) y el segundo el encaminado a la seguridad de los datos, tema que vamos a abarcar en este segundo articulo.

Lo que hace tener una cierta seguridad en nuestros datos es la utilización de usuarios.
Estos usuarios son nombres que definimos y a los cuales damos una contraseña para acceder a la base de datos.

En Oracle cada usuario esta asignado a un esquema. Siendo un esquema una colección lógica de objetos. Por defecto un usuario tiene acceso a todos los objectos de su esquema y podría acceder a los objetos de otros esquemas como los permisos necesarios.

Cuando instanciamos Oracle se crean por defecto dos usuarios importantes:

  • sys change_on_install: propietario del diccionario de datos de la base de datos
  • system manager: usuario para realizar las tareas de administración de la base de datos

La sintaxis para la creación de un usuario es la siguiente:

create user nombre_usuario
   identified by contraseñas
   [default tablespace nombre_tablespace]
   [temporary tablespace nombre_tablespace]
   [quota {entero {K|M} | unlimited} on nombre_tablespace]
   [profile nombre_perfil];

Para modificar el usuario cambiaremos el create por el alter y para borrarlo tan solo tendremos que poner drop user nombre_usuario cascade;

Cada usuario tiene ciertos privilegios, y dentro de esos privilegios podemos hablar de:
  • privilegios de sistema: son los que nos dan derecho a realizar ciertas operaciones sobre objetos de un tipo especificado.
  • privilegios sobre objetos: estos privilegios nos permiten realizar cambios en los datos de los objetos de otros usuarios
Cuando creamos un usuario es necesario darle privilegios, de lo contrario no podría realizar ninguna acción.

Roles de usuario

Un rol es un conjunto de permisos que recibe un nombre común y facilita la tarea de dar permisos a los usuarios. Para crear un rol tan solo tenemos que escribir lo siguiente:
create role nombre_role;

Oracle ofrece varios roles o funciones ya creadas que ofrecen ciertos privilegios. Esos roles son los siguientes:

  • connect: Todos los permisos necesarios para iniciar una sesión en Oracle
  • resource: Todos los permisos necesarios para tener recursos para la creación de objetos
  • dba: posee todos los privilegios del sistema

La sentencia para privilegios sobre los objetos es la siguiente:

grant {privilegio_objeto[,privilegio_objeto]...| all [privileges]}
    [(columna [,columna]...)]
on [usuario.]objeto}
to {usuario|rol| public [,{usuario|rol|public} ...]
[with grant option];

Mientras que la sentencia para crear privilegios de sistema es la siguiente:

grant {privilegio|rol} [,privilegio|rol}, ....]
to {usuario|rol| public [,{usuario|rol|public} ...]
[with admin option];

En ambos caso se utiliza la sentencia revoke para suprimir privilegios, cambiando la sintaxis.
Para los privilegios de sistema:

revoke {privilegio|rol} [,privilegio|rol}] ...
from {usuario|rol|public} [,usuario|rol|public}] ...;

para los privilegios de objetos:

revoke {privilegio[,privilegio] ... | all [privileges]}
on [usuario.]objeto
from {usuario|rol|public}[ ,{usuario|rol|public}]...;

Con esto podríamos empezar a gestionar una base de datos, siempre y cuando tengamos algunos conocimientos de pl/sql. Esto lo veremos en sucesivos artículos que iremos publicando.


Manuales relacionados
Categorias relacionadas
El autor
Russvell Oblitas Valenzuela
Bch. Sistemas e Informática


Últimas noticias
Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...