Codificar una base de datos para registros DML específicos solamente

A veces, los mejores datos son los que usted tiene en su base de datos SQL Server de producción. Ya que usar datos de producción no es muy a menudo una opción aceptable, esto requiere recuperar los datos desde una tabla de una base de datos en vivo e insertarlos en una nueva tabla. El desafío emerge si usted no desea insertar todos los registros de la tabla original, sino que sólo los registros que cumplen con ciertas condiciones.

Cómo crear un script INSERT INTO que mueve sólo datos específicos desde una tabla a otra.

noviembre 23, 2017

Cómo codificar usuarios de bases de datos SQL Server con roles

Introducción

Una solicitud es recibida desde el equipo de desarrollo pidiendo copiar una de las bases de datos de producción al servidor DEV SQL para simular escenarios de prueba en tiempo real. Una vez que la copia de seguridad de la base de datos de producción es restaurada a la instancia DEV SQL, reemplazando la copia antigua, los antiguos usuarios de la base de datos DEV serán reemplazados por usuarios en línea. Pero aún necesitamos los antiguos inicios de sesión de la base de datos DEV para la conexión del sitio DEV.

agosto 23, 2016

Cómo usar expresiones regulares (RegEx) en SQL Server para generar datos de prueba aleatorios

Una expresión regular (abreviada  regex o regexp por su acrónimo en inglés, a veces llamadas  expresiones racionales) es una secuencia de caracteres que forman un patrón de búsqueda, principalmente para usarse en funciones de coincidencia de caracteres y “buscar y reemplazar”. Ellos ueden ser usados también como generadores de datos, siguiendo el concepto de expresiones regulares reversas, y proveyendo datos de prueba aleatorios a usarse para probar bases de datos.

agosto 16, 2016

Cómo desplegar bases de datos SQL en muchas instancias y bases de datos SQL Server

Cuando el trabajo en una base de datos en un ambiente de desarrollo es completado, se requiere que los desarrolladores manden la nueva versión para pruebas. Si las pruebas son hechas en una o más máquinas – esto no es un problema. Sin embargo, si hay necesidad de probar la nueva versión en 10 o 15 máquinas (con diferentes sistemas operativos, versiones de SQL Server o paquetes de servicio instalados), esto puede ser tedioso.

Otra situación donde los scripts necesitan ser ejecutados en múltiples servidores es si hay muchas bases de datos de diferentes clientes que fueron todos derivados desde la misma base de datos y comparten muchos objetos comunes. Cualquier cambio hecho en desarrollo debe ser extendido a todos los usuarios.

noviembre 14, 2015

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

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

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