> Manuales > Tutorial de Oracle

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:


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:
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:


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.

Russvell Oblitas Valenzuela

Bch. Sistemas e Informática

Manual