Cómo encriptar bases de datos MSSQL con TDE

SQL Server desde su versión 2008 tiene la funcionalidad TDE (Transparent Data Encryption) la cual permite encriptar toda la base de datos de forma transparente.

Esta funcionalidad hasta MSSQL 2019 solo estaba disponible en la edición Enterprise pero a partir de 2019 ya se puede usar en la Standard.

En el siguiente video te muestro paso a paso como se configura TDE y funciona como así también algunos tips que seria bueno considerar.

Para poder descargar el material que utilice en el video lo podes hacer desde el siguiente link

Material TDE

Material charla tips de migraciones SQL Server

El pasado 1 de diciembre de 2021 en conjunto con el Grupo de Usuarios Microsoft Argentina (MUG) di una charla en donde te cuento en base a mi experiencia como deberías encarar un proyecto de migración de tu SQL Server ya sea hacia ambientes on-premise o la nube.

Comparto el video de la misma como así también la presentación y material

Presentación y ejemplos

Cómo evitar conexiones desde EXCEL , POWER BI u otra aplicación a MSSQL

En muchas ocasiones necesitamos controlar el acceso de nuestros usuarios a nuestro motor de bases de datos SQL Server.

Por ejemplo, que los mismos no puedan hacerlo desde EXCEL, POWER BI, Management Studio o cualquier otra aplicación que no sea la autorizada.

Para poder resolver esto vamos a usar Triggers DDL de SQL Server.

En el siguiente ejemplo te muestro como podemos controlar que un usuario de aplicación solo pueda ser accedido desde nuestro sistema y no así desde otra aplicación.

-- CREAMOS UN TRIGGER DDL LOGON 

CREATE TRIGGER [CONNECTION_LIMIT_TRIGGER]
ON ALL SERVER 
FOR LOGON
AS 
 SET NOCOUNT ON 
-- CON ESTE TRIGGER QUE EL LOGIN DEMOAPP SOLO PUEDA SER USADO DESDE NUESTRA APP
 BEGIN
 IF SUSER_SNAME() = 'DEMOAPP' AND APP_NAME() <> 'MIAPLICACION'
    ROLLBACK;
 END;
 GO 
GO 

SET QUOTED_IDENTIFIER OFF
GO 

ENABLE TRIGGER [CONNECTION_LIMIT_TRIGGER] ON ALL SERVER
GO 

Si deseas ver una explicación completa te paso el siguiente video en el cual comento como hacer esta implementación

SQL Server: Como mover la Tempdb paso a paso

En varias ocasiones hemos tenido la necesidad de mover nuestros archivos de la base de datos Tempdb a otra ubicación , por ejemplo si nos hemos quedado sin espacio, si la hemos alocado originalmente en un lugar inadecuado , etc.

En este post te muestro los pasos que debes seguir para mover tus archivos de Tempdb a otra unidad.

Paso 1: Conocer su ubicación actual y sus nombres

En este primer paso lo que haremos es buscar los nombres lógicos y su ubicación actual en nuestros discos , para ello ejecutaremos el siguiente script

SELECT NAME, PHYSICAL_NAME   
FROM SYS.MASTER_FILES  
WHERE DATABASE_ID = DB_ID(N'TEMPDB')

El cual arroja un resultado similar a la siguiente imagen

En este caso podemos ver que tenemos 8 archivos de data y 1 de log, todos están ubicados en el disco E:\mssql

Paso 2: Modificar la ubicación de los archivos

En este paso lo que haremos es modificar la ubicación del o los archivos que necesitamos mover a otra ubicación, para eso usaremos el siguiente script

USE MASTER;  
GO  
ALTER DATABASE TEMPDB   
MODIFY FILE (NAME = TEMPDEV, FILENAME = 'E:\SQLDATA\TEMPDB.MDF');  
GO  
ALTER DATABASE TEMPDB   
MODIFY FILE (NAME = TEMP2, FILENAME = 'E:\SQLDATA\TEMPDB2.NDF');  
GO  
ALTER DATABASE TEMPDB   
MODIFY FILE (NAME = TEMP3, FILENAME = 'E:\SQLDATA\TEMPDB3.NDF');  
GO  
ALTER DATABASE TEMPDB   
MODIFY FILE (NAME = TEMP4, FILENAME = 'E:\SQLDATA\TEMPDB4.NDF');  
GO  
ALTER DATABASE TEMPDB   
MODIFY FILE (NAME = TEMP5, FILENAME = 'E:\SQLDATA\TEMPDB5.NDF');  
GO  
ALTER DATABASE TEMPDB   
MODIFY FILE (NAME = TEMP6, FILENAME = 'E:\SQLDATA\TEMPDB6.NDF');  
GO  
ALTER DATABASE TEMPDB   
MODIFY FILE (NAME = TEMP7, FILENAME = 'E:\SQLDATA\TEMPDB7.NDF');  
GO  
ALTER DATABASE TEMPDB   
MODIFY FILE (NAME = TEMP8, FILENAME = 'E:\SQLDATA\TEMPDB8.NDF');  
GO  
ALTER DATABASE TEMPDB   
MODIFY FILE (NAME = TEMPLOG, FILENAME = 'F:\SQLLOG\TEMPLOG.LDF');  
GO  

Paso 3: Reiniciar el servicio de SQL Server

Para que se apliquen los cambios debemos hacer un reinicio de los servicios de SQL Server, luego de hacer este paso tendremos nuestro cambio realizado con exito.

Paso 4: Verificamos el cambio

Para verificar luego del reinicio que el cambio se ha aplicado simplemente debemos volver a ejecutar el script del paso 1

SELECT NAME, PHYSICAL_NAME   
FROM SYS.MASTER_FILES  
WHERE DATABASE_ID = DB_ID(N'TEMPDB');