Curso de IBM Informix
Seguridad en los datos
Seguridad en los datos
Seguridad en los datos: Protección de malintencionados intentos para
ver o modificar la información.
La seguridad en la base de datos es un aspecto importante en todo el
sistema. Se necesita conocer si un intento a acceder a datos
protegidos has ocurrido y también proteger los datos de acceso no
autorizado.
Seguridad en los datos
Si bien las técnicas para la seguridad en la información son demasiadas
( dependiendo del tipo de vulnerabilidad y ataque que se quiera cuidar ) aquí
se mencionarán las formas más genéricas de seguridad
• Autenticación de usuarios
• Autorización y control de usuarios
• Auditoría
• Contextos de seguridad
Seguridad en los datos
Si bien las técnicas para la seguridad en la información son demasiadas
( dependiendo del tipo de vulnerabilidad y ataque que se quiera cuidar ) aquí
se mencionarán las formas más genéricas de seguridad
• Autenticación de usuarios
• Autorización y control de usuarios
• Auditoría
• Contextos de seguridad
Autenticación de usuarios
Autenticación es el proceso de verificar la identidad de un usuario o aplicación
que deseé conectarse a la base de datos
Hola soy fernando
Pruébalo
$%^&*!@#@
Encrypted password
Seguridad en los datos
Autenticación por PAM
PAM (Pluggable authentication module) es un mecanismo genérico para
autenticar usuarios a los sistemas
Se puede utilizar para integrar servicios con diferentes tecnologías de acceso
RSA, DCE Kerberos, S/Key
Seguridad en los datos
• Si se desea la integración del servicio PAM en informix se tiene que realizar
la instalación de el plugin
• Posteriormente realizar la configuración entre el SQLHOSTS y la aplicación
externa
• Si se desea obtener más información más a detalle se puede verificar el
siguiente enlace oficial
[Link]
0704anbalagan/
Seguridad en los datos
Habilitación de otros métodos de autenticación
• Autenticaciones single-on
• [Link] /
• Protocolo Kerberos
[Link]
• Ldap (Protocolo de autenticación)
[Link]
Auditoria
• Informix tiene las utilidades ON-AUDIT y ON-SHOWAUDIT:
• Este tipo de herramientas permiten controlas las auditorias
• Además permite controlar como los resultados de la auditoría son
guardados
• Muestra los eventos ocurridos dentro de los objetos auditados
• Pueden ser controlados por diferentes ROLES
• DBSSO: Database Security Officer
• AAO: Audit analysis officer
USUARIOS
Con Informix no agrega se agregan usuarios , las cuentas de usuario se
establece o se crean a través del sistema operativo.
Todos los usuarios se ponen en el grupo "público".
A continuación, puede utilizar la GRANT y REVOKE para controlar los permisos
de los usuarios.
USUARIOS
USUARIOS
USUARIOS
USUARIOS
USUARIOS
USUARIOS
USUARIOS
USUARIOS
USUARIOS
USUARIOS
USUARIOS
USUARIOS
PERMISOS
Para mantener la seguridad de la base de datos existen permisos que
permiten:
• utilizar la B. D.
• utilizar tablas de la B. D.
• utilizar columnas de la B. D.
• utilizar roles
PERMISOS
Cuando se crea una Base de Datos, el usuario que ejecuta la sentencia
“CREATE DATABASE” queda automáticamente como el D. B. A. (Administrador)
de la Base de Datos.
B. D. No ANSI: Todos los Permisos son otorgados a todos los usuarios.
Exceptuando ALTER y REFERENCES.
B. D. ANSI: Sin permisos por defecto. Sólo el DBA puede utilizar la B. D.
InformiX es una B. D. ANSI
PERMISOS
A nivel de la Base de Datos:
CONNECT Abrir la base de datos Ejecutar INSERT, UPDATE, DELETE y SELECT en
todas las tablas de la BD.
RESOURCE Permiso CONNECT Crear nuevas tablas, modificarlas y eliminarlas
DBA Derechos Totales sobre la B. D.
PERMISOS
CONNECT
PERMISOS
RESOURCE
PERMISOS
DBA
PERMISOS
Usuario Informix tiene el privilegio necesario para alterar las tablas en el
catálogo del sistema, incluyendo el systables tabla.
Aunque el usuario informix y DBA s puede modificar la mayoría de las
tablas de catálogo del sistema (sólo el usuario informixpuede
modificar systables ), Informix recomienda encarecidamente que no
actualizar, eliminar o alterar ninguna fila en ellos. La modificación de las
tablas de catálogo del sistema puede destruir la integridad de la base
de datos
PERMISOS
A nivel de la Base de Datos:
GRANT Otorgar o asignar permisos
REVOKE Quitar permisos
Estas sentencias se ejecutan en la opción “Query-language” con la B. D.
abierta.
PERMISOS
PERMISOS
GRANT permiso TO usuario
Ejemplos: GRANT CONNECT TO PUBLIC se autoriza la conexión a todos los
usuarios.
GRANT DBA TO maria, jose se autoriza a los usuarios “maria” y “jose” a
realizar operaciones de administrador de la B. D.
PERMISOS
REVOKE permiso FROM usuario
REVOKE DBA FROM PUBLIC se quitan todos los permisos a todos los usuarios.
REVOKE CONNECT FROM jose se quita el permiso de conexión al usuario
“jose”.
PERMISOS
Cuando se crea una tabla con el CREATE TABLE declaración, usted es el
propietario de la tabla y recibe automáticamente todos los privilegios a
nivel de tabla. No se puede transferir la propiedad de la tabla a otro
usuario, pero se puede conceder privilegios a nivel de tabla a otro
usuario o para un rol.
Una persona con el nivel de base de datos DBA recibe automáticamente
todos los privilegios a nivel de tabla en cada tabla en esa base de
datos.
PERMISOS
PERMISOS
PERMISOS
GRANT ALL ON jugador TO PUBLIC Se otorgan todos los derechos a todos los
usuarios sobre la tabla jugador.
GRANT INSERT, DELETE ON partido TO maria, jose Se otorgan los derechos de
Insert y Delete a los usuarios “maria” y “jose” sobre la tabla partido.
PERMISOS
La siguiente declaración concede el privilegio de eliminar y seleccionar valores
de cualquier columna en la tabla de clientes a los usuarios
de María y Juan . También concede el privilegio de actualización, pero sólo
para las columnas customer_num , fname y lname
PERMISOS
REVOKE INSERT, DELETE ON partido FROM maria, jose Se quitan los derechos
de Insert y Delete a los usuarios “maria” y “jose” sobre la tabla jugador.
A nivel de los ATRIBUTOS
ALTER A. B. Y M. sobre columnas de una tabla.
UPDATE - Modificar valores.
REFERENCES- Referenciar una columna en una sentencia CONSTRAINT.
SELECT - Utilizar una columna dentro de una sentencia Select.
PERMISOS
Usted concede privilegios a nivel de tabla directamente por referencia al
nombre de tabla o un sinónimo existente. También puede conceder privilegios
a nivel de tabla en una vista.
PERMISOS
GRANT SELECT (nombre) ON jugador TO PUBLIC. Se otorga el derecho de
seleccionar el atributo nombre de la tabla jugador a todos los usuarios.
GRANT UPDATE(sueldo) ON empleado TO josecarlos Se otorga el derecho de
modificar los valores del atributo sueldo a el usuario “josecarlos”.
REVOKE SELECT(sueldo) ON empleado FROM PUBLIC Se quita el permiso de
seleccionar el sueldo de la tabla EMPLEADO a todos los usuarios.
PERMISOS
Se pueden especificar dos privilegios sobre los tipos de datos:
[Link] especificar el privilegio Uso en un tipo de datos definido por el
usuario.
[Link] especificar el privilegio Bajo en un tipo de fila con nombre.
PERMISOS
Puede identificar uno o más usuarios por un nombre que describe su función,
se crea un rol , puede conceder un rol a uno o más usuarios. También puede
conceder un rol a otro rol.
Después de crear y otorga un rol, puede otorgar ciertos privilegios a los uno o
más usuarios asociados con ese rol.
PERMISOS
El siguiente ejemplo muestra la secuencia requerida para conceder y
activar el rol pagar a un grupo de empleados que realizan funciones
de cuentas por pagar. En primer lugar el DBA crea el rol cuentas a
pagar , a continuación, le otorga el rol a maryf .
El DBA o maryf pueden activar el rol con la siguiente afirmación:
Usuario maryf tiene la opción WITH GRANT para conceder el rol cuentas a
pagar a otros empleados que pagan las cuentas.
PERMISOS
Si concede privilegios de un rol a otro rol , el rol destinatario tiene un conjunto
combinado de privilegios. En el siguiente ejemplo se concede el rol
petty_cash al rol porpagar :
PERMISOS
El uso de la opción WITH GRANT palabra clave especificada transmite el
privilegio de usuario junto con el derecho de otorgar los mismos
privilegios a otros usuarios. Se crea una cadena de privilegios que
comienza con usted y se extiende al usuario , así como a quien el
usuario transmite el derecho a conceder privilegios.
PERMISOS
Cuando concede privilegios, por defecto, usted es el único que puede
revocar los privilegios. La cláusula AS le permite establecer otro usuario
como la fuente de los privilegios de usuario garantiza.
Puede utilizar esta cláusula sólo si usted tiene los privilegios DBA en la
base de datos.
PERMISOS
Se pueden crear roles para agrupar a los usuarios según el rol que cumplen en
la B. D.:
CREATE ROLE administrador Crea el rol “administrador”
DROP ROLE administrador Elimina el rol “administrador”
PERMISOS
Una vez creado el rol se asignan los permisos de la misma forma que se
asignan permisos a los usuarios:
GRANT CONNECT TO administrador; No se pueden asignar permisos a nivel de
la B. D.
GRANT ALL ON jugador TO administrador; REVOKE DELETE ON jugador FROM
administrador;”
PERMISOS
Después de asignar los permisos al rol se indica el o los usuarios que
pertenecen al rol:
GRANT DEFAULT ROLE rol TO usuario
Ejemplo: GRANT CONNECT TO pepe; Se asigna permiso de conexión al usuario
“pepe” GRANT DEFAULT ROLE admin TO pepe; Se asigna el rol “admin” por
defecto a “pepe”
PERMISOS
PERMISOS
PERMISOS
Optimizador de consultas
Optimizador de consultas
Optimizador de consultas es el componente dentro de un sistema gestor de
base de datos que intenta determinar cual es el camino más eficiente para la
ejecución de una consulta de SQL con la información que se tiene.
Es decir el optimizador de consultas es ese componente que determina como
se debe ejecutar la consulta solicitada para que se pueda obtener la
información de una forma más sencilla.
Optimizador de consultas
Informix utiliza un optimizador que se encarga de decidir la mejor ruta antes
de realizar una consulta.
la salida de "SET EXPLAIN ON" nos da un explicación de cómo el optimizador
escoge el acceso a los datos. Con esta información disponible, se puede
decidir si el camino que el optimizador eligió consume mucho tiempo, y se
debe reestructurar la consulta.
El objetivo principal del optimizador es reducir la E/S limitando el tamaño de
los datos con el fin de obtenerlos en la forma más eficiente. el optimizador
toma las decisiones basadas en la información de los catálogos del sistema.
Optimizador de consultas
Esta información consiste en:
• El numero de columnas que son utilizadas para obtener información dentro
de la consulta.
• El numero de filas de cada tabla que será obtenida por la consulta.
• Cuantas páginas son usadas para los datos y cuantas páginas son usadas por
los índices.
• Determinar las páginas a accesar
• Se determinan los atributos especiales de las columnas (índices, llaves
primarias, llaves foraneas) .
• Cuáles son los valores más grandes y más pequeños de cada columna.
Optimizador de consultas
El optimizador utiliza los atributos antes mencionados para dar una idea del
rango de los valores.
Usando toda esta información, el optimizador de Informix puede determinar
todas las posibles rutas ( o al menos la mayoría ) y el peso que tiene cada
método con un costo estimado.
Posteriormente el optimizador elige el plan cree que es el más indicado en
relación con el costo, pasa a la ejecución de la consulta, y "SET EXPLAIN ON"
se encuentra en uso, el método será escrito en un archivo.
Actualización de estadísticas y la
distribución de los datos
Actualización de estadísticas
Informix guarda información (estadísticas) sobre la cantidad y la naturaleza de
los datos en una tabla de las tablas de catálogo del
sistema systables, syscolumns ysysindices.
Esta información almacenada en el servidor de bases de datos se puede
mostrar en los siguientes puntos:
• Valor de selectividad de los índices
• Número de filas que contiene actualmente la tabla
• Valores máximo y mínimo para cada una de las columnas
• Índices existentes sobre una tabla
• Relaciones foraneas
Actualización de estadísticas
El optimizador de consultas utiliza estas estadísticas pare determinar el coste de cada plan de
consulta posible.
UPDATE STATISTICS
• UPDATE STATISTICS: Cuando no se especifica ninguna cláusula adicional, el servidor de bases de
datos reoptimiza las sentencias SQL en todas las rutinas SPL y cambia las estadísticas para todas
las tablas.
• UPDATE STATISTICS FOR TABLE: Cuando se especifica la cláusula FOR TABLE sin un nombre de
tabla, el servidor de bases de datos cambia las estadísticas para todas las tablas y no reoptimiza
ninguna sentencia SQL en las rutinas SPL.
• UPDATE STATISTICS FOR TABLE nombre de tabla: Cuando se especifica un nombre de tabla en la
cláusula FOR TABLE, el servidor de bases de datos cambia las estadísticas para la tabla
especificada. El servidor de bases de datos no reoptimiza ninguna sentencia SQL en las rutinas SPL.
Actualización de estadísticas
• UPDATE STATISTICS (FOR ROUTINE | FOR PROCEDURE | FOR FUNCTION )
(nombre de la rutina): Cuando se especifica estas opciones informix
optimiza todas las sentencias SQL para el objeto solicitado.
Optimización de consultas
Optimización de consultas
Para poder realizar que una consulta se ejecute de forma más rápida se tienen
que considerar varios factores entre los cuales podemos mencionar los
siguientes:
• Buen diseño de una base de datos ( normalización)
• Siempre tener en cuenta el uso de los índices para la consulta
• Las sentencias join son muy tardadas en tiempos de ejecución.
• Siempre reducir la cantidad de información que se espera obtener de una
consulta
• Utilizar limit cada vez que se pueda
• Evitar hacer las tablas con muchos campos
Administrador de memoria
Memory Manager
El administrador de memoria es una utilidad dentro del software
OpenAdminTool (OAT), dentro de sus funcionalidades podemos encontrar las
Siguientes
• Poder visualizar la gestión de la memoria utilizada por la base de datos.
• Poder visualizar la memoria utilizada dentro del gestor.
• La posibilidad de cambiar la gestión de la memoria a un modo low.
• Determinar limitadores de memoria.
Memory Manager
Memory Manager
Particionado de tablas
Particionado de tablas
El particionado de una tabla es una de las formas para reducir el
tamaño de las mismas, en general las siguientes son las
estrategias más conocidas para realizarlo.
• Expresión
• Round robin
Particionado de tablas
Dentro de las ventajas encontradas al realizar el particionado son
las siguientes:
• Mayor velocidad de acceso a la información
• Mejor distribución de los datos
En sus desventajas tenemos
• Mayor administración de la información
dbspace
dbspace
dbspace
dbspace
Logs
Logs
Backups
BACKUPS
BACKUPS
BACKUPS
BACKUPS
BACKUPS
BACKUPS
BACKUPS
BACKUPS
BACKUPS
BACKUPS
BACKUPS
BACKUPS
BACKUPS
BACKUPS
BACKUPS
BACKUPS
BACKUPS