jueves, 6 de diciembre de 2018

Principios Básicos De Seguridad En Una Base De Datos



En líneas generales, seguridad de datos se refiere a medidas de protección de la privacidad digital que se aplican para evitar el acceso no autorizado a los datos, los cuales pueden encontrarse en ordenadores, bases de datos, sitios web, etc. La seguridad de datos también protege los datos de una posible corrupción.

Monitoreo
El monitoreo dinámico es también un elemento esencial de la evaluación de vulnerabilidad, le permite ir más allá de evaluaciones estáticas o forenses. Un ejemplo clásico lo vemos cuando múltiples usuarios comparten credenciales con privilegios o un número excesivo de inicios de sesión de base de datos.


Pistas De Auditoría
  • Su complejidad.
  • Altos costos operativos.
  • Problemas de rendimiento.
  • La falta de segregación de funciones.
  • La necesidad mayor capacidad de almacenamiento.
Autenticación, control de acceso, y Gestión de derechos
Implemente y revise periódicamente los informes sobre de derechos de usuarios, como parte de un proceso de formal de auditoría.


Endurecimiento
Como resultado de una evaluación de la vulnerabilidad a menudo se dan una serie de recomendaciones específicas. Otros elementos de endurecimiento implican la eliminación de todas las funciones y opciones que se no utilicen.



Audite
Automatice el control de la configuración de tal forma que se registre cualquier cambio en la misma. Implemente alertas sobre cambios en la configuración. Cada vez que un cambio se realice, este podría afectar a la seguridad de la base de datos.






Identifique su sensibilidad
Confeccione un buen catálogo de tablas o datos sensibles de sus instancias de base de datos.









Vulnerabilidad y Configuración
1.Limitar el acceso a los procedimientos a ciertos usuarios.

2.Delimitar el acceso a los datos para ciertos usuarios, procedimientos y/o datos.
3.Declinar la coincidencia de horarios entre usuarios que coincidan.

miércoles, 21 de noviembre de 2018

Commit y Rollback de Transact-SQL

¿QUÉ ES COMMIT?

El comando COMMIT define el final de una transacción ejecutada con éxito. Este comando asegura que todas las modificaciones efectuadas durante la transacción se vuelvan parte permanente de la base. También libera los recursos utilizados por la transacción. Recuerde que no puede utilizar el comando ROLLBACK después de un COMMIT ya que los cambios son permanentes. La palabra clave TRANSACTION es opcional.

¿PARA QUÉ SE UTILIZA COMMIT?

El COMMIT se utiliza para hacer permanentes los cambios en la base de datos. 
Hasta que no se ejecuta COMMIT el resto de usuarios no ve las actualizaciones realizadas; ven los datos tal y como estaban de iniciarse la transacción. COMMIT;




La sentencia COMMIT realiza las siguientes operaciones:
  • La sentencia COMMIT realiza las siguientes operaciones:
  • Hace permanentes los cambios realizados por la transacción en curso.
  • Hace visibles esos cambios para el resto de usuarios.
  • Borra todas las marcas realizadas por las sentencias SAVEPOINT.
  • Finaliza la transacción en curso.

Este ejemplo efectúa una selección al interior de una transacción:
START TRANSACTION;
SELECT * FROM suppliers
WHERE supplier_name LIKE '%bob%';
COMMIT TRANSACTION;

¿QUÉ ES EL  ROLLBACK?

El comando ROLLBACK cancela la transacción en curso y restaura los datos a su estado anterior al comienzo de la transacción. También libera todos los recursos utilizados por la transacción. La palabra clave TRANSACTION es opcional.

¿PARA QUÉ SE UTILIZA ROLLBACK?

La sentencia se utiliza para deshacer los cambios que realizaría la transacción en curso si ésta finalizara con éxito. De este modo la base de datos no queda en un estado inconsistente si se produce un error o un fallo en medio de una transacción. ROLLBACK;



La sentencia ROLLBACK realiza las siguientes operaciones:
  • Deshace todos los cambios realizados sobre la base de datos en la transacción en curso.
  • Borra las marcas.
  • Finaliza la transacción en curso.


Este ejemplo ilustra el empleo del comando ROLLBACK:
START TRANSACTION
SELECT * FROM suppliers
WHERE supplier_name like '%bob%';
ROLLBACK TRANSACTION;

¿QUÉ SON LAS TRANSACCIONES?

Una transacción es un conjunto de operaciones Transact SQL que se ejecutan como un único bloque, es decir, si falla una operación Transact SQL fallan todas. Si una transacción tiene éxito, todas las modificaciones de los datos realizadas durante la transacción se confirman y se convierten en una parte permanente de la base de datos. Si una transacción encuentra errores y debe cancelarse o revertirse, se borran todas las modificaciones de los datos.

El final de una transacción llega de uno de estos modos:
  • Mediante una sentencia COMMIT o una sentencia ROLLBACK (modo explícito)
  • Cuando se ejecuta una sentencia de definición de datos (por ejemplo CREATE), que realiza un COMMIT automático antes y después de llevarse a cabo la definición (modo implícito).
Un ejemplo
Trabajaremos con la base de datos Northwind en nuestros ejemplos. Vamos a realizar una transacción que modifica el precio de dos productos de la base de datos.

USE NorthWind
DECLARE @Error int
--Declaramos una variable que utilizaremos para almacenar un posible código de error

BEGIN TRAN
--Iniciamos la transacción
UPDATE Products SET UnitPrice=20 WHERE ProductName ='Chai'
--Ejecutamos la primera sentencia
SET @Error=@@ERROR
--Si ocurre un error almacenamos su código en @Error
--y saltamos al trozo de código que deshara la transacción. Si, eso de ahí es un 
--GOTO, el demonio de los programadores, pero no pasa nada por usarlo
--cuando es necesario
IF (@Error<>0) GOTO TratarError

--Si la primera sentencia se ejecuta con éxito, pasamos a la segunda
UPDATE Products SET UnitPrice=20 WHERE ProductName='Chang'
SET @Error=@@ERROR
--Y si hay un error hacemos como antes
IF (@Error<>0) GOTO TratarError

--Si llegamos hasta aquí es que los dos UPDATE se han completado con 
--éxito y podemos "guardar" la transacción en la base de datos
COMMIT TRAN

TratarError:
--Si ha ocurrido algún error llegamos hasta aquí
If @@Error<>0 THEN
 BEGIN
 PRINT 'Ha ecorrido un error. Abortamos la transacción'
 --Se lo comunicamos al usuario y deshacemos la transacción
 --todo volverá a estar como si nada hubiera ocurrido
 ROLLBACK TRAN
 END

¿QUÉ ES SAVEPOINT?

Esta sentencia establece una marca en un punto intermedio de la transacción. A esta marca se le debe dar un nombre:
SAVEPOINT Marca_uno;

Estas marcas nos permiten subdividir transacciones que tiene muchas sentencias, proporcionándonos un mayor control sobre las mismas. Por ejemplo, si una transacción realiza varias funciones podemos poner una marca en el principio de cada función. Entonces, si una de las funciones falla, podemos volver al estado en que nos encontrábamos antes de empezar la función.

Para deshacer parte de una transacción, utilizamos las marcas previamente con la sentencia ROLLBACK. En el siguiente ejemplo se borran todas las marcas creadas después de marca_uno, aunque esta marca no se borra.
ROLLBACK TO SAVEPOINT Marca_uno;

¿QUE ES ACID?

Una unidad lógica de trabajo debe exhibir cuatro propiedades, conocidas como propiedades ACID (atomicidad, coherencia, aislamiento y durabilidad), para ser calificacada como transacción.




miércoles, 14 de noviembre de 2018

Roles De Un Administrador De Base De Datos



Roles De Un Administrador De Base De Datos

Resultado de imagen para roles de un administrador de base de datos
Un administrador es el responsable de coordinar los recursos de productividad cubriendo un rol en la empresa en el que desarrolle la Planeación para precisar el futuro deseado de la empresa.

Entre sus roles podemos encontrar:

• Asegurar la Recuperabilidad – Asegurarse de la recuperación, como creando respaldos
• Integridad - Verificar o ayudar a la verificación de integridad de datos
• Seguridad - Definir y/o implementar control de acceso
• Disponibilidad – Esto es administrar la actividad de la base de datos
• Desempeño - Asegurarse del máximo desempeño incluso con las limitaciones
• Desarrollo y soporte a pruebas - Ayudar a los programadores e ingenieros a utilizar eficientemente la base de datos. Incluye administrar la estructura de la base de datos.
• Administrar el sistema manejador de base de datos
• Establecer el diccionario de datos
• Asegurar la confiabilidad de la base de datos


En este otro momento daremos una breve definición de cada Rol:


                                                      RECUPERABILIDAD

Resultado de imagen para roles de un administrador de base de datos
Esto significa que, si ocurre algún error en los datos, hay un bug de programa o de hardware, el DBA (Administrador de base de datos) puede traer de vuelta la base de datos al tiempo y estado en que se encontraba en estado consistente antes de que el daño se causara.
Resultado de imagen para integridad de una base de datos


INTEGRIDAD

La integridad de una base de datos significa que, la base de datos ó los programas que generaron su contenido, incorporen métodos que aseguren que el contenido de los datos del sistema no se rompan así como las reglas del negocio. Por ejemplo, un distribuidor puede tener una regla la cual permita que solo los clientes individuales puedan solicitar órdenes; a su vez cada orden identifique a uno y solo un proveedor.

DISPONIBILIDAD

El DBA debe mantener la disponibilidad, esto significa que los usuarios tengan acceso a los datos cuando lo necesiten para atender a las necesidades del negocio.        
SEGURIDAD

Se encarga de limitar a los usuarios a ejecutar únicamente las operaciones permitidas. A igual que otros metadatos, una DBMS relacional maneja la seguridad en forma de tablas. 
Resultado de imagen para administracion de bases de datos que es
DESEMPEñO

Imagen relacionada En sistemas muy complejos cliente/servidor y de tres capas, la base de datos es solo uno de los elementos que determinan la experiencia de los usuarios en línea y los programas desatendidos.  

                         
DESARROLLO Y SOPORTE A PRUEBAS

Resultado de imagen para administracion de bases de datos que es
Las actividades de soporte incluyen la colecta de datos de producción para llevar a cabo pruebas con ellos; consultar a los programadores respecto al desempeño; y hacer cambios a los diseños de tan;as de manera que se puedan proporcionar nuevos tipos de almacenamientos para las funciones de los programas. 

ADMINISTRAR EL SISTEMA MANEJADOR DE BASE DE DATOS

Resultado de imagen para administracion de bases de datos que esEl DBA debe procurar siempre que los estándares que serán aplicados beneficien también a los usuarios, privilegiando siempre la optimización en la operación del DBMS y el apego de las políticas de la empresa. Entre las funciones del DBA se encuentra la de revisar los estándares periódicamente para determinar su operatividad, ajustarlos, ampliarlos o cancelarlos y hacer que estos se cumplan. 


            ESTABLECER EL DICCIONARIO DE DATOS

Resultado de imagen para administracion de bases de datos confiabilidadEste metadato debe precisar información que nos indique con claridad el tipo de datos que serán utilizados, sus ámbitos de influencia y sus limitantes de seguridad.  

ASEGURAR LA CONFIABILIDAD DE LA BASE DE DATOS
Se deben utilizar gestores con las herramientas necesarias para la reparación de los posibles errores que las bases de datos pueden sufrir, por ejemplo tras un corte inesperado de luz.