Cómo reordenar scripts para evitar errores basados en dependencias

Tener una base de datos codificada a una carpeta de script o a un control de fuente permite usar estos scripts DDL para recrearla. De todos modos, puede que no vaya todo tan bien debido a algunas dependencias perdidas.

Cuando se crea un objeto de base de datos desde cero, los objetos necesarios son creados sobre la marcha. Los objetos que pueden estar atados en relaciones y restricciones que los hacen dependientes uno del otro.

noviembre 14, 2015

Cómo restaurar tablas específicas desde una copia de seguridad SQL Server

Si la restauración de una base de datos original a un estado previo no es una opción, en el caso de datos accidentalmente actualizados, eliminados, borrados o dañados, aún es posible restaurar estas tablas si la copia de seguridad de la base de datos fue creada previamente al accidente.

noviembre 14, 2015

Cómo asegurar procedimientos almacenados contra inyecciones SQL

Aunque los procedimientos almacenados de SQL Server ayudan con la seguridad el código ocultando la implementación de lógica de negocios e incluso protegiendo contra algunos tipos de ataques de inyección SQL – primariamente aquellos que usan operadores como AND o OR para enviar comandos a un valor de parámetros de entrada válido, simplemente envolver el código en un procedimiento almacenado no significa que las aplicaciones, bases de datos y Servidores SQL están a salvo de todo tipo de ataques de inyección SQL. Así que, ¡cómo crear procedimientos almacenados a prueba de inyecciones SQL?

noviembre 14, 2015

Refactorización de código SQL – maneras de mejorar el desempeño de la base de datos (parte I) – Encapsular código como un procedimiento almacenado

El desempeño de la base de datos es un desafío para cada desarrollador y DBA. Incluso cuando algunas mejoras son hechas, siempre hay una pregunta – ¿hay algo más que se pueda hacer?

Puede haber algunas cosas. Algunas de las técnicas de mejoramiento de desempeño no están relacionadas con el código – una estrategia de indexación adecuada, añadir memoria, usar diferentes discos para archivos de datos, archivos de registros y copias de seguridad de bases de datos, usar discos más rápidos, optimizar el desempeño de tempdb.

noviembre 14, 2015

Transferir inicios de sesión SQL para usuarios con un gran número de inicios de sesión autenticados SQL

Los inicios de sesión SQL Server son las credenciales que permiten a los usuarios conectarse con la instancia del Motor de la Base de Datos. Los inicios de sesión SQL se distinguen basados en el tipo del método de autenticación: autenticación Windows, autenticación SQL Server, Certificados y Claves Asimétricas. Un inicio de sesión SQL puede ser mapeado a sólo un usuario en cada base de datos.

octubre 27, 2015

Rastrear cambios de seguridad en una base de datos SQL Server

Configurar un ambiente seguro y a salvo para su instancia SQL Server es una tarea compleja. La seguridad de SQL Server debe ser configurada en la instancia SQL Server, en el sistema operativo, cortafuegos, el programa antivirus, etc. Pero fallar en configurar la seguridad apropiadamente puede traer muchos dolores de cabeza e incluso daños irreversibles.

octubre 27, 2015

Recuperar datos perdidos debido a operaciones TRUNCATE sin copias de seguridad

Si usted accidentalmente ejecutó una sentencia TRUNCATE y tiene una copia de seguridad completa de la base de datos, dado que ningún cambio ocurrió después de que la tabla fue truncada, usted simplemente puede recuperar los datos sobrescribiendo la base de datos original con la copia de seguridad. Sin embargo, si ese no es el caso, ya sea porque los objetos de la base de datos y los datos han sido cambiados después de que la sentencia SQL TRUNCATE.

octubre 27, 2015

Cómo visualizar dependencias de objetos de bases de datos SQL

ApexSQL Search es un complemento gratis para SQL Server Management Studio y Visual Studio que, entre otras características, provee un diagrama de dependencias de base de datos.

La característica View Dependencies tiene la habilidad de visualizar todas las relaciones de los objetos de una base de datos SQL, incluyendo aquellos entre encriptados y objetos del sistema, objetos específicos SQL Server 2012 y objetos almacenados en bases de datos encriptadas con Encriptación de Datos Transparente (TDE, por sus siglas en inglés). Miremos más de cerca esta característica.

octubre 27, 2015

Compare esquemas de bases de datos SQL Server automáticamente

Es de conocimiento general que ejecutar cambios directamente a una base de datos en producción, sin efectuar pruebas en profundidad primero, debería evitarse.

Si hay suficientes recursos en el ambiente, habría al menos una instancia SQL Server de pruebas y otra de producción. De todos modos, eso introduce otro desafío. Cuando todo está configurado en la prueba y corre sin problemas y como se esperaba, ¿cómo puede ser aplicado fácilmente a la instancia de producción?

octubre 25, 2015

Cómo recuperar una tabla individual de una copia de seguridad de base de datos SQL Server

Cuando usted pregunta a un Administrador de Base de Datos (DBA, por sus siglas en inglés) qué característica le gustaría ver que se añada a la funcionalidad de recuperación de SQL Server, él indudablemente dirá: “La habilidad de recuperar una tabla individual de una copia de seguridad de base de datos”.

Por supuesto, es posible recuperar datos de una tabla específica de una copia de seguridad, pero usted no puede hacerlo sin restaurar la copia de seguridad entera.

¿Por qué los DBAs quieren esto? Bien, las razones son simples:

octubre 25, 2015

Cómo documentar el flujo de datos de un paquete SSIS

El elemento de flujo de datos es una parte de un paquete SSIS que contiene diferentes tipos de componentes de flujo de datos:

  • Componentes fuente – vuelven disponibles datos de diferentes tipos de fuentes para un flujo de datos
  • Componentes transformacionales – agregan, combinan, distribuyen y modifican los datos dentro de una corriente de datos y
  • Componentes destino – cargan los datos desde un flujo de datos en diferentes tipos de fuentes de datos o crean datos en conjuntos de datos en memoria
octubre 25, 2015

Cómo crear documentación de paquetes SSIS

ApexSQL Doc es una herramienta de desarrollo de bases de datos para documentar múltiples paquetes SQL Server Integration Service (SSIS). La herramienta permite especificar los objetos exactos del servidor, los objetos de la base de datos, los atributos, e incluso instancias de objetos específicas que serán incluidas en la documentación.

octubre 25, 2015

Técnicas de auditoría de bases de datos SQL Server

La auditoría de bases de datos SQL Server no es usada solamente para cumplir con requerimientos de conformidad. Se ha vuelto necesaria para el análisis de acciones de bases de datos, soluciones de problemas y la investigación de actividades sospechosas y maliciosas. La auditoría también puede ayudar a evitar acciones inapropiadas de parte de los usuarios – como si tuviera un sistema CCTV en sus bases de datos.

Hay muchas técnicas de auditoría de SQL Server:

agosto 12, 2015

Seguridad y cumplimiento de normas para bases de datos SQL Server

Cuando se discute la seguridad de SQL Server, uno de los términos más importantes es entidad de seguridad. Las entidades de seguridad son entidades de SQL Server, organizadas en una jerarquía, la cual puede requerir recursos de SQL Server específicos. Hay varias entidades de seguridad en SQL Server, y en este artículo nos enfocaremos en un entidad de usuario de una base de datos. A diferencia de las entidades login de SQL Server, las cuales son usadas para acceder a una instancia SQL Server (una entidad de seguridad a nivel de servidor), una entidad de usuario de base de datos (una entidad de seguridad a nivel de base de datos) es usada para definir el acceso a una base de datos particular que pertenece a la instancia de SQL Server.

junio 19, 2015

Estándares de formato SQL – Mayúsculas y minúsculas, Sangría, Comentarios, Paréntesis

A nadie le gusta leer una pared de texto, incluso si es solamente texto plano. Cuando se trata de leer código, el problema es aún mayor. El código puede tener diferentes estilos de formato, lo cual puede hacer su trabajo o más fácil o más difícil. Puede hacer al código difícil de descifrar y entender. Un SQL limpio y ordenado es más rápido que un SQL inconsistentemente escrito; la revisión y resolución de problemas de SQL es más eficiente; los esfuerzos de desarrollo unidos son más efectivos; pasar proyectos de un equipo a otro es más fluido.

junio 19, 2015

Codifique objetos encriptados de bases de datos SQL

Una de las maneras de mantener su procedimiento almacenado, función o vista ocultos del esquema es usar WITH ENCRYPTION. De esta forma usted puede bloquear el acceso al script DDL de los objetos de manera que los usuarios no autorizados no puedan verlos:

CREATE FUNCTION [dbo].[ufnGetAccountingEndDateEnc]()
RETURNS [datetime] 
with encryption 
AS 
BEGIN
    RETURN DATEADD(millisecond, -2, CONVERT(datetime, '20040701', 112));
END;
GO

junio 18, 2015