Continuamos con los conceptos básicos en la gestión de seguridad de una base de datos. Seguridad de los datos en Oracle.
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];
- 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
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.
Russvell Oblitas Valenzuela
Bch. Sistemas e Informática