microsoft sql server

25
Características y generalidades

Upload: gustavo-leonardo-castaneda-martinez

Post on 22-Oct-2015

97 views

Category:

Documents


5 download

TRANSCRIPT

Características y generalidades

Aspectos de la seguridad

• Autentificación o Verifica la identidad del usuario

• Autorización o Dependiendo de la identidad del usuario accede o no a un recurso o

realiza una determinada acción

• Integridado Se asegura que la información no ha sido modificada en tránsito (Firma

digital).

• Privacidado La información sólo puede ser leída por el destinatario (Cifrado).

Tipos de autentificación

• Windows (integrada)o SQL Server delega en Windows para realizar la autentificación.o Sujetas a las directivas de Windows.

• SQL Server (estándar)o Nombre de usuario y contraseña guardada en SQL Server.o Se requieren en cada establecimiento de conexión.

Configuración de la autentificación

• SQL Server permite dos modos:

• Establecido en la instalación

• Puede cambiarse posteriormente:o Administrador corporativo.o Valor LoginMode en el registro.o Requiere reinicio del servicio.

• Cómo saber el modo actualo SERVERPROPERTY(‘lslntegratedSecurityOnly’)

Seguridad

Protección de datos

• Criptografía integrada.

• Cifrado transparente.• Clave extensible.• Firma de módulos de

códigos.• Certificados a partir

de bytes.• Claves de seguridad

usando AES256.• Soporte para hashes

SHA512 y SHA2 (256 y 512 bits).

Control de acceso

• Flexibilidad mediante reparto de responsabilidades y roles anidados.

• Evasión del acceso de Administrador del Sistema.

• Mayor cumplimiento de las normas utilizando Windows Group.

• Usuarios individuales.• Seguridad de usuarios

con controles de TI integrados.

Garantía de cumplimiento

• Optimización mejorada y capacidades enriquecidas con respecto a versiones anteriores.

• Mayor flexibilidad para filtrar eventos no deseados en el log de la auditoría.

• Permite que las aplicaciones escriban código personalizado dentro de log de la auditoría

Seguridad de la Plataforma y la Red

• Incluye el hardware físico y los sistemas de redes que conectan los clientes con los servidores de bases de dato.

Seguridad física

• Limitan de forma estricta el acceso al servidor físico y a los componentes de hardware.

• Uso de salas cerradas de acceso restringido.

• Limitación de copias de seguridad.

• Mantener a los usuarios no autorizados fuera de la red.

Seguridad del sistema operativo

• Incluyen los Service Packs y las actualizaciones del sistema operativo.

• Los firewalls también proporcionan formas eficaces de implementar la seguridad.

Integridad de datos

• La información almacenada en las tablas debe ser válida, coherente y exacta.

• SQL Server ofrece más alternativas para restringir y validar los datos.

• Hay varios tipos de restricciones. La integridad de datos pertenece a una de las siguientes categorías:

• Integridad de entidad• Integridad de dominio• Integridad referencial• Integridad definida por el usuario

“La exigencia de integridad de los datos garantiza la calidad de los datos de la base de datos.”

Integridad de entidad

• La integridad de entidad define una fila como entidad única para una tabla determinada mediante índices y restricciones UNIQUE, o restricciones PRIMARY KEY.

UNIQUE• Impide la duplicación de claves alternas (no

primarias), es decir, especifica que dos registros no puedan tener el mismo valor en un campo.

• La sintaxis general es la siguiente:

alter table NOMBRETABLA add constraint NOMBRERESTRICCION unique (CAMPO);

PRIMARY KEY• Con esta restricción, si intentamos ingresar un

registro con un valor para el campo "codigo" que ya existe o el valor "null", aparece un mensaje de error, porque no se permiten valores duplicados ni nulos. Igualmente, si actualizamos.

• Podemos agregar una restricción "primary key" a una tabla existente con la sintaxis básica siguiente:

  alter table NOMBRETABLA add constraint NOMBRECONSTRAINT primary key (CAMPO,...);

 

Integridad de dominio

• La integridad de dominio viene dada por la validez de las entradas para una columna determinada.

• Puede exigir la integridad de dominio para restringir el tipo mediante reglas y restricciones:

• CHECK, • FOREIGN KEY• DEFAULT• NOT NULL

FOREIGN KEY y CHECK

• Las restricciones CHECK exigen la integridad del dominio mediante la limitación de los valores que puede aceptar una columna. Son similares a las restricciones FOREIGN KEY porque controlan los valores que se colocan en una columna. La diferencia reside en la forma en que determinan qué valores son válidos: las restricciones FOREIGN KEY obtienen la lista de valores válidos de otra tabla, mientras que las restricciones CHECK determinan los valores válidos a partir de una expresión lógica que no se basa en datos de otra columna.

•  • La sintaxis básica es la siguiente:

  alter table NOMBRETABLA add constraint NOMBRECONSTRAINT check CONDICION;

DEFAULT• Cada columna de un registro debe contener un

valor, aunque sea un valor NULL• Podemos agregar una restricción "default" a una

tabla existente con la sintaxis básica siguiente:  alter table NOMBRETABLA add constraint NOMBRECONSTRAINT default VALORPORDEFECTO for CAMPO;

Integridad referencial

• La integridad referencial protege las relaciones definidas entre las tablas cuando se crean o se eliminan filas. En SQL Server la integridad referencial se basa en las relaciones entre claves externas y claves principales o entre claves externas y claves exclusivas, mediante restricciones FOREIGN KEY y CHECK.

Integridad referencial

• Cuando se exige la integridad referencial, SQL Server impide a los usuarios:o Agregar o cambiar filas en una tabla relacionada si no

hay ninguna fila asociada en la tabla principal.o Cambiar valores en una tabla principal que crea filas

huérfanas en una tabla relacionada.o Eliminar filas de una tabla principal cuando hay filas

relacionadas coincidentes.

Integridad definida por el usuario

• SQL Server proporciona distintos tipos de datos del sistema (char, varchar, int, decimal, datetime, etc.) y permite tipos de datos definidos por el usuario siempre que se basen en los tipos de datos existentes.

• Para crear un tipo de datos definido por el usuario se emplea el procedimiento almacenado del sistema "sp_addtype". Sintaxis básica:

•   exec sp_addtype NOMBRENUEVOTIPO, 'TIPODEDATODELSISTEMA', 'OPCIONNULL';

Concurrencia• La concurrencia hace referencia al acceso por parte de

distintos usuarios a una misma información en este tema en cuestión a una base de datos.

 • Un usuario “A” lee una fila de datos que desea editar.• Mientras que el usuario “A” aún trabaja en la edición de los

datos, un usuario “B” lee los mismos datos, modifica un o algunos campos y los actualiza.

• Él usuario “A” al terminar su edición actualiza los datos, sin notar los cambios realizados por el usuario “B”, los cambios del usuario “B” se pierden.

• SQL Server permite que varios clientes usen la misma base de datos al mismo tiempo controlando el acceso simultaneo mediante 2 modos de control de concurrencia:o Pessimistic concurrency: Uso de bloqueos exclusivos y compartidos.o Optimistic concurrency: Permite la creación de una nueva fila cada vez

que ésta se actualiza, almacenando las “versiones anteriores” de la fila en una tabla temporal junto con el ID de la transacción mediante la cual fueron actualizadas.

Timestamp

• Él timestamp es una de las mejores opciones en términos de rendimiento, fiabilidad y facilidad de implementación. Un timestamp es una secuencia de actividad de SQL Server en una fila, representado como un número en un formato binario. El valor de timestamp se actualiza automáticamente cada vez que una fila con una columna de timestamp se inserta o se actualiza.

• CREATE TABLE MyTest (myKey int PRIMARY KEY, myValue int, TS timestamp)• GO• INSERT INTO MyTest (myKey, myValue) VALUES (1, 0)• GO• INSERT INTO MyTest (mykey, myValue) VALUES (2, 0)• GO

•  • DECLARE @t TABLE (myKey int)• UPDATE MyTest SET myValue = 2• OUTPUT inserted.myKey into @t(myKey)• WHERE myKey = 1 and TS = TSValue• IF (SELECT COUNT(*) FROM @t) = 0• BEGIN• RAISERROR ('error changing row with myKey = %d',• 16, -- Severity.• 1, -- State.• 1) -- myKey that was changed• END

TSValue es el valor de la columna timestamp la última vez que se leyó. Este valor debe ser reemplazado por el valor real de timestamp . Un ejemplo del valor de timestamp real es 0x00000000000007D3

Commit:• Principalmente su uso marca el final de una transacción

correcta, implícita o explícita.• En el siguiente ejemplo se confirma la eliminación de un

candidato a un puesto de trabajo:•  • USE AdventureWorks2012;• GO• BEGIN TRANSACTION;• GO• DELETE FROM HumanResources.JobCandidate• WHERE JobCandidateID = 13;• GO• COMMIT TRANSACTION;• GO

Rollback:• Esta instrucción devuelve a la base de datos a

algún estado previo, los Rollbacks son importantes para la integridad de la base de datos, son cruciales para la recuperación de crashes de un servidor de base de datos; realizando rollback(devuelto) en cualquier transacción que estuviera activa en el tiempo del crash.

• begin transaction• // execute SQL code here• rollback transaction

Concurrencia (Cloud concurrency)

Recuperación• Microsoft SQL Server 2012 cuenta con 3 formas

diferentes de respaldo y recuperación de bases de datos:

o SQL Server Management Studio (Herramienta gráfica de administración para SQL Server 2005 y posteriores) (nivel de dificultad: fácil)

o PowerShell (Interfaz de consola avanzada disponible para Microsoft Windows con posibilidad de interactuar con SQL Server) (nivel de dificultad: medio)

o Transact-SQL (Lenguaje propio de SQL Server) (nivel de dificultad: avanzado)

Conclusiones• SQL Server es un completo DBMS que permite 3

niveles de seguridad: básico, intermedio y avanzado que se ajustan a nuestras necesidades.

• En cuanto a la instalación es fácil para un usuario intermedio.