Powered By Blogger

lunes, 16 de diciembre de 2013

SQL SERVER AUTENTICACIÓN CON KERBEROS


Kerberos es un protocolo de autenticación de redes de computadores creado por MIT, que le permite a dos computadores de redes inseguras demostrar su identidad mutuamente de manera segura, se diseño para el modelo cliente servidor. Los mensajes de autenticación están protegidos para evitar eavesdropping (escuchar secretamente) y ataques de replay (una transmisión de datos fraudulenta o maliciosamente repetida).
Este protocolo se basa en claves de criptografia simétrica (criptografia de una clave, se usa la misma clave para cifrar y descifrar mensajes).

VENTAJAS DE LA AUTENTICACIÓN KERBEROS:
  • Autenticación mutua: el cliente puede validar el servidor y el servidor valida el cliente.
  • Vales de autenticación seguros: solo se utilizan vales cifrados y la clave no se incluye en los vales.
  • Autenticación Integrada: el usuario no necesita autenticarse nuevamente amenos que haya expirado la vigencia del vale.

KERBEROS CON WINDOWS SERVER 2008 R2
Se tiene previsto utilizar AD RMS (Active Directory Rights Managements Services) que es una tecnología de protección de la información.
El cliente de autenticación de Kerberos se implementa como un proveedor de soporte de seguridad (SSP), que se puede acceder a través de la interfaz del proveedor de compatibilidad con seguridad (SSPI).
El uso de autenticación Kerberos con SQL Server  requiere que se cumplan las siguientes condiciones:

  • Los equipos cliente y servidor deben hacer parte del mismo dominio de Windows o estar en dominios de confianza.
  • Se debe registrar un nombre principal de servicio (SPN) en Active directory, suponiendo que la función del centro de distribución de claves se encuentra en un dominio de Windows. Una vez registrado el SPN se asigna a la cuenta de Windows de la instancia de SQL Server.





REFERENCIA BIBLIOGRÁFICA:
http://es.wikipedia.org/wiki/Kerberos
http://technet.microsoft.com/en-us/library/hh831747.aspx
http://technet.microsoft.com/es-es/library/cc280744(v=sql.105).aspx

jueves, 12 de diciembre de 2013

MICROSOFT SQL SERVER PREREQUISITOS, CARACTERÍSTICAS Y REQUERIMIENTOS DE LAS VERSIONES


El primer requisito previo para Microsoft SQL Server es tener instalado .NET Framework y cada versión de SQL Server requiere una versión diferentes de .NET Framework, como se muestra en la siguiente tabla:

Otro prerequisito es Microsoft Power Shell
  • Flexibilidad
  • Programación
  • Integración e Interoperatividad
  • Business Intelligence (Inteligencia empresarial)
ESCALABILIDAD Y RENDIMIENTO

ALTA DISPONIBILIDAD

SEGURIDAD



CARACTERÍSTICAS DE ADMINISTRACIÓN DE LAS BASES DE DATOS
  • Copia espejo de base de datos
  • Operación de indexación On line
  • Nuevas herramientas integradas
  • Aislamiento de imágenes SI
  • Particionado de datos
  • Backup duplicados
  • Restauración Online
  • Recuperación rápida
  • Conexión de administrador dedicada
  • Mejoras en la replicación

viernes, 6 de diciembre de 2013

MICROSOFT SQL SERVER CREACIÓN Y ADMINISTRACIÓN DE TABLAS


Las tablas son objetos de las bases de datos diseñados para contener los datos. Una tabla esta conformada por un conjunto de campos identificados comúnmente como columnas. Los datos a su vez se organizan en las tablas como filas y se conocen como registros, es decir, cada registro esta integrado por el numero de campos de la tabla constituyéndose un arreglo o matriz.
Cuando queremos crear una tabla es necesario definir que tipo de valores o de datos sera contenido en cada uno de los campos.

TIPOS DE DATOS:
  • datos binarios: datos que toman valores uno (1) o cero (0) y componen numeros hexadecimales, se almacenan utilizando los tipos binary o varbinary e image 
  • datos carácter: puede contener letras, símbolos y caracteres numéricos, se almacenan utilizando el tipo de datos char, varchar o text.
  • datos Unicode: cualquier caracter definido por el standard unicode
  • datos de fecha y hora: combinaciones validas de fecha y hora, se almacena utilizando los tipos de datos datatime y samlldatatime.
  • datos numéricos: pueden ser números negativos, positivos, decimales, fracciones, y números enteros, los datos enteros se almacenan utilizando el tipo de datos bigint, int, smallint y tinyint, los datos decimales se almacenan utilizando el tipo de datos decimal o numeric, y los de punto flotante con float o real.
  • datos de moneda: representa cantidades positivas o negativas de dinero, se almacenan utilizando los tipos de datos money o smallmoney.
  • datos especiales: no se ajusta a ninguna de las categorías de datos anteriores, los tipos de datos son timestamp o rowversion, bit, uniqueidentifier, sql_variant, table.
  • datos definidos por el usuario: como su nombre lo indica es un tipo definido por el usuario.
Otro aspecto no menos importante al crear una tabla es el uso de restricciones, valores predeterminados y valores NULL.

RESTRICCIONES DE INTEGRIDAD
  • PRIMARY KEY: una tabla solo puede tener una restricción primary key y la columna o columnas a la(s) que se le aplique esta restricción no puede aceptar valores NULL, cuando esta compuesta por más de una columna la combinación de las dos columnas debe ser única dentro de la tabla. Un ejemplo puede ser el numero de identificación de un paciente o la combinación de tipo de documento y numero de identificación.














  • FOREIGN KEY: esta restricción en una columna de una tabla suele estar asociada a la PRIMARY KEY de otra tabla y exigir un vinculo y se convierte en una clave externa para la segunda tabla, aunque tambien puede definirse para que haga referencia a las columnas con restricción UNIQUE de otras tablas.Un ejemplo puede ser el numero de identificación del paciente en la tabla pacientes como una llave foranea en la tabla de factura
    • UNIQUE: Se puede utilizar esta restricción para asegurar que no se escriban valores duplicados en columnas específicas que no formen parte de una clave principal.
    • CHECK: esta restricción limita el conjunto de valores que pueden ser capturados e un campo a partir de una expresión lógica. Por ejemplo salario >= 650000 y <= 5000000
    • DEFAULT: Cada columan debe tener un valor, aunque sea un valor NULL. Por ejemplo para un campo numérico se puede definir el calor por defecto 0, o N/D para un campo string.
    • NULL: define si una columna o campo de una tabla puede aceptar valores NULL, un valor NULL es diferente de un valor 0, en blanco o una cadena de caracteres de longitud 0. Un campo PRIMARY KEY no puede aceptar valore NULL.
    Sintaxis básica de la instrucción CREATE TABLE:



    <definición de columna>

    <restricción de columna>






    PUNTO DE COMPROBACIÓN DE BASES DE DATOS SQL (CHECK POINT)

    El punto de comprobación en una base de datos SQL permite que el motor de la base de datos de SQL Server pueda empezar a aplicar cambios incluidos en el registro durante la recuperación después de un cierre inesperado o bloqueo de sistema.
    Por motivos de rendimiento el motor de base de datos SQL Server realiza modificaciones en las páginas en la memoria cache del buffer, y no escribe en el disco después de cada cambio. En su lugar, el motor de base de datos emite periódicamente un punto de comprobación en cada base de datos. Un punto de comprobación escribe las páginas modificadas en memoria (denominadas páginas desfasadas) hasta el momento en que se da el punto de comprobación, también escribe la información del registro de transacciones de la memoria del disco y además registra información del registro de transacciones.

    TIPOS DE PUNTOS DE COMPROBACIÓN

    Automático: EXEC sp_configure 'recovery interval','seconds'
         Se inicia automáticamente en segundo plano para cumplir el limite superior que sugiere la opción de configuración de servidor recovery interval. Los puntos de comprobación automáticos se ejecutan hasta completarse y están limitados según el numero de operaciones de escritura pendientes en caso que el motor de base de datos detecta un aumento de la latencia superior a 20 milisegundos.

    Indirecto: ALTER DATABASE … SET
                   TARGET_RECOVERY_TIME =target_recovery_time
                   { SECONDS | MINUTES }
         Se realiza en segundo plano para cumplir un tiempo de recuperación de destino especificado por el usuario para una determinada base de datos.

    Manual: CHECK  POINT [checkpoint_duration]
         Se inicia cuando se ejecuta el comando CHECKPOINT de T-SQL.

    Interno: Se inicia por operaciones del servidor como copia de seguridad y creación de instantáneas de la base de datos.

    PUNTOS DE COMPROBACIÓN AUTOMÁTICOS
    Se produce cada vez que el número de entradas del registro alcanza el numero que el motor de bases de datos cree que puede procesar en la opción de configuración del servidor recovery interval. La frecuencia de los puntos de comprobación automáticos depende de la opción avanzada recovery interval, que determina el tiempo máximo que una determinada instancia de servidor debe utilizar para recuperar una base de datos durante un reinicio del sistema.
    Según el modelo de recuperación simple, un punto de comprobación automático se pone en cola cuando el registro se llena al 70%.

    El registro de transacciones se utiliza para garantizar la integridad de los datos de la base de datos y para la recuperación de datos. El registro de transacciones es un mapa de los archivos físicos.



    REFERENCIA BIBLIOGRAFICA:
    http://technet.microsoft.com/en-us/library/ms179355.aspx

    miércoles, 4 de diciembre de 2013

    El REGISTRO DE TRANSACCIONES EN UNA BASE DE DATOS DE SQL SERVER

    El registro de transacciones esta formado por una serie de registros de todas las modificaciones de la base de datos y de las transacciones que ha realizado cada modificación. En el registro de transacciones figura el inicio de cada transacción y también registra los cambios de los datos facilitando suficiente información que permita deshace las modificaciones en cada una de las transacciones en caso de ser necesario. El registro de transacciones, cada cierto volumen de información, graba un punto de comprobación denominado chek point. En un punto de comprobación SQL Server se asegura de que todos los registros del registro de transacciones y las páginas de la base de datos modificadas se graben en el disco. La copia de seguridad del registro de transacciones permite recuperar la base de datos en un momento determinado. Para aumentar al máximo el rendimiento, cree archivos o grupos de archivos en tantos discos físicos como estén disponibles y distribuya en grupos de archivos diferentes los objetos que compitan intensamente por el espacio. No coloque el archivo de registro en el mismo disco físico con los demás archivos del grupo de archivos y distribuya en grupos diferentes las tablas de acceso frecuente y los indices no agrupados que pertenezcan esa tabla. De este modo, el rendimiento aumentará debido a las opciones de E/S en paralelo que realizan los archivos que se encuentran en discos diferentes.

    OPERACIONES QUE PERMITE EL REGISTRO DE TRANSACCIONES

    • Recuperar las transacciones individuales
    • Recuperar las transacciones incompletas cuando se inicia SQL server.
    • Poner al día una base de datos, un archivo, un grupo de archivos o una página restaurados hasta el momento del error.
    • Permitir replicación transaccional.
    • Compatibilidad con soluciones de alta disponibilidad y recuperación ante desastres: Grupos de disponibilidad AllwaysOn, creación de reflejo de base de datos y trasvase de registros.
    TRUNCAMIENTO DEL REGISTRO DE TRANSACCIONES
    Se realiza para liberar espacio para que pueda ser reutilizado por el registro de transacciones. Esta operación es necesaria para evitar que se llene el archivo de registro. El truncamiento sucedera automáticamente en cualquiera de los siguientes casos:

    • En el modelo de recuperación simple, después de un punto de recuperación (check point)
    • En el modelo de recuperación completa o recuperación masiva, si se ha producido un punto de recuperación desde la copia de seguridad anterior, el truncamiento sucede despues de cuna copia de seguridad de registros.
    FACTORES QUE PUEDEN RALENTIZAR EL TRUNCAMIENTO DEL REGISTRO
    Cuando las entradas de registro permanecen activas durante una transacción de larga duración, a continuación presento una lista de los valores de prevención de truncamiento:





    REFERENCIAS BIBLIOGRÁFICAS:
    http://msdn.microsoft.com/es-es/library/ms190925.aspx

    martes, 3 de diciembre de 2013

    BASES DE DATOS RELACIONALES

    Una base de datos conformada por varias tablas tiene un problema fundamental y es la repetición de datos o redundancia de datos en diferentes tablas lo que dificulta la gestión de la base de datos, es decir las tareas de actualización, inserción, modificación, eliminación, consulta, etc.
    El concepto matemático de la relación se debe a E. F. Codd y las ventajas de la utilización de bases relacionales son:
    • Actúa sobre las tablas de datos en su conjunto y no sobre los registros.
    • Se pueden formular consultas complejas que involucran diferentes tablas de una manera sencilla.
    • La facilidad de utilizar debido a que la ubicación física de los datos es independiente de su tratamiento lógico.
    En las bases de datos relacionales las tablas tienen estructura de matriz o tabla bidimensional, donde las filas son registros y las columnas campos.

    CARACTERÍSTICAS DE LAS BASES DE DATOS RELACIONALES

    • Todos los registros de la tabla deben tener el mismo número de campos, aunque algún campo pueda estar vacío, deben ser registros de longitud fija.
    • Cada campo esta identificado por una etiqueta y dentro de una tabla cada etiqueta es única, el número de campos puede ser modificado una vez creado el fichero.
    • La base de datos esta formada por múltiples tablas, una por cada tipo de registro.
    • Los registros de una misma tabla deben ser todos diferentes, no pueden coexistir dos absolutamente idénticos, mínimo deben diferenciarse por un campo.
    • Los registros de una tabla pueden estar organizados en cualquier orden.
    • El contenido de cada campo esta delimitado por un conjunto  de valores posibles.
    • Permite la creación de nuevas tablas a partir de las existentes.
    OPERACIONES RELACIONALES BÁSICAS

    • SELECCIÓN: obtención de una nueva tabla formada por filas o registros seleccionados de otra tabla previamente existente.
    • PROYECCIÓN: obtención de una nueva tabla formada por algunos campos de otras tablas previamente existentes.
    • CONCATENACIÓN: obtención de una nueva tabla uniendo dos tablas previamente existentes.
    OTRAS OPERACIONES RELACIONALES Y OPERADORES BOOLEANOS

    • UNIÓN: el resultado es la obtención de una nueva tabla a partir de la agregación de dos tablas que ya existen, en este caso se requiere que las dos tablas tengan la misma estructura y las mismas etiquetas de campos.
    • INTERSECCIÓN: el resultado es la obtención de una nueva tabla a partir de los registros en común de dos tablas previamente existentes, en este caso se requiere que las dos tablas tengan la misma estructura y las mismas etiquetas de campos.
    • DIFERENCIA: el resultado es una nueva tabla con los registros de una tabla ya creada y diferentes a los de otra tabla previamente creada.
    CREACIÓN DE LAS TABLAS DE UNA BASE DE DATOS RELACIONAL
    El comando T-SQL de Microsoft SQL es CREATE TABLE que nos crea una base de datos vacía a la que posteriormente le podemos ALMACENAR registros  a través de comandos como INSERT o asistentes proporcionados por la base de datos. También podemos realizar actualizaciones con los comandos UPDATE, DELETE y otros.

    CREACIÓN DE UNA BASE DE DATOS CON SQL SERVER
     Una base de datos de Microsoft SQL Server está formada por un conjunto de tablas en las que se almacenan los datos estructurados. Una tabla contiene una colección de filas tambien se conocen como tuplas o registros, también esta conformada por columnas denominadas atributos. Cada atributo identifica un determinado tipo de información por ejemplo fechas, nombres, direcciones, correos, teléfonos. Las tablas contienen diversos tipos de controles que podemos identificar como restricciones, reglas, desencadenadores, valores predeterminados y tipos de datos personalizados por el usuario que garantizan la validez de los datos. Se pueden agregar restricciones de integridad referencial declarativa a las tablas con el fin de asegurar la coherencia de los datos interrelacionados que se encuentran almacenados en las diferentes tablas. Además es posible que una base de datos almacene procedimientos que utilicen código de programación de T-SQL para realizar operaciones con los datos que contiene la base de datos.
    En el proceso de creación de una nueva base de datos es muy necesaria la configuración de la estructura de almacenamiento de datos, en Microsoft SQL la información de la base de datos se distribuye en diversos archivos de datos y registros de transacciones así:

    • Archivo de datos principal o primario: archivo con extensión .mdf que contiene la información de inicio para la base de datos y se utiliza para almacenar datos.
    • Archivos de datos secundarios: archivos con extensión .ndf que contiene todos los datos que no caben el archivo principal, estos archivos solo se necesitan si la base de datos es muy grande y los datos no caben en el archivo principal.
    • Archivo de registro de transacciones: archivo con extensión .ldf que contiene la información de registro que se utiliza para recuperar la base de datos.

    lunes, 2 de diciembre de 2013

    SQL: CREAR UNA BASE DE DATOS

    Comando: CREATE DATABASE

    Crea la base de datos y el archivo principal y el archivo de registro o log.

    Sintaxis: CREATE DATABASE database_name;

    Ejemplo 1:

    USE MASTER
    GO
    CREATE DATABASE Ejemplo1;
    GO

    Debido a que la instrucción no tiene elementos <filespec>, el archivo de base de datos principal tiene el tamaño de la base de datos model (4.160 KB) y el archivo de registro tiene el 25% del tamaño del archivo de la base de datos principal (1.040 KB), como no se especifico el parámetro MAXSIZE  los archivos pueden crecer hasta ocupar todo el espacio en el disco.

    Ejemplo 2:

    USE MASTER
    GO
         CREATE DATABASE Ejemplo2
         ON
         (NAME = ejemplo2_DAT,
              FILENAME = 'C:\SQL\EJEMPLOS\EJEMPLO2\ejemplo2dat.mdf',
              SIZE = 10,
              MAXSIZE = 50,
              FILEGROWTH = 5)
         LOG ON
         (NAME = ejemplo2_LOG,
             FILENAME = 'C:\SQL\EJEMPLOS\EJEMPLO2\ejemplo2log.ldf',
             SIZE = 5,
             MAXSIZE = 25,
             FILEGROWTH = 5);
    GO

    La instrucción anterior crea la base de datos Ejemplo2 y el archivo principal ejemplo2dat.mdf con un tamaño de 10.240 KB y su tamaño máximo sera de 50 MB y el archivo de registro ejemplo2log.ldf con un tamaño de 5.120 KB y un maximo de 25 MB.

    Ejemplo 3:

    USE MASTER
    GO
         CREATE DATABASE basedatos
         ON
         PRIMARY
         (NAME = basedatos1,
              FILENAME = 'C:\SQL\EJEMPLOS\EJEMPLO2\dbdat1.mdf',
              SIZE = 100MB,
              MAXSIZE = 200,
              FILEGROWTH = 20),
         ( NAME = basedatos2,
              FILENAME = 'C:\SQL\EJEMPLOS\EJEMPLO2\dbdat2.ndf',
              SIZE = 100MB,
              MAXSIZE = 200,
              FILEGROWTH = 20),
         ( NAME = basedatos3,
              FILENAME = 'C:\SQL\EJEMPLOS\EJEMPLO2\dbdat3.ndf',
              SIZE = 100MB,
              MAXSIZE = 200,
              FILEGROWTH = 20)
         LOG ON
         (NAME = basedatoslog1,
             FILENAME = 'C:\SQL\EJEMPLOS\EJEMPLO2\basedatoslog1.ldf',
             SIZE = 100,
             MAXSIZE = 200,
             FILEGROWTH = 20),
         (NAME = basedatoslog2,
             FILENAME = 'C:\SQL\EJEMPLOS\EJEMPLO2\basedatoslog2.ldf',
             SIZE = 100,
             MAXSIZE = 200,
             FILEGROWTH = 20);
    GO

    La instrucción anterior crea una base de datos con tres archivos de datos de 100MB cada uno, el principal se crea con la exención .mdf y los secundarios con .ndf, con un tamaño máximo de 200MB, también se crean dos archivos de registro o LOGS de 100MB cada uno y con un tamaño máximo de 200 MB.

    REFERENCIA: