WindowsMacSoftwareConfiguraciónSeguridadProductividadLinuxAndroidRendimientoConfiguraciónApple Todo

Cómo configurar la seguridad en Microsoft SQL Server

Editado 2 Hace unas semanas por ExtremeHow Equipo Editorial

Microsoft SQL ServerSeguridadConfiguraciónBase de datosWindowsLinuxTIGestión de usuariosAutenticaciónServidor

Cómo configurar la seguridad en Microsoft SQL Server

Traducción actualizada 2 Hace unas semanas

Microsoft SQL Server es un sistema popular de gestión de bases de datos que permite el almacenamiento, recuperación y procesamiento de datos. Sin embargo, como cualquier sistema que maneja datos sensibles, la seguridad es extremadamente importante. El propósito de configurar la seguridad es proteger los datos del acceso no autorizado y garantizar que solo las personas adecuadas tengan la autoridad para gestionar los datos. Este artículo proporciona una guía completa sobre cómo configurar la seguridad en Microsoft SQL Server.

Modelo de seguridad de SQL Server

El modelo de seguridad en SQL Server se basa en una combinación de cuentas de inicio de sesión, usuarios y roles. Estos elementos trabajan juntos para garantizar que solo los usuarios autorizados puedan acceder a la base de datos y realizar ciertas operaciones. Veamos más de cerca cada uno de estos elementos.

Inicio de sesión

Un inicio de sesión es una cuenta utilizada para conectarse a una instancia de SQL Server. SQL Server admite varios tipos de inicios de sesión, incluidos la autenticación de SQL Server y la autenticación de Windows. Generalmente se prefiere la autenticación de Windows porque se integra con el modelo de seguridad de Windows y se considera más segura.

Para crear un nuevo inicio de sesión, siga estos pasos:

use master; CREATE LOGIN [TestLogin] WITH PASSWORD='YourStrongPassword123'; 

En este ejemplo, se crea un nuevo inicio de sesión autenticado por SQL Server llamado TestLogin. Siempre use una contraseña segura para su inicio de sesión.

Usuarios

Una vez que se crea un inicio de sesión para una instancia, puede crear un usuario en cada base de datos específica a la que este inicio de sesión puede acceder. Un usuario en la base de datos está asociado con el inicio de sesión, y esta asociación permite que el usuario sea autenticado al acceder a la base de datos.

Para crear un usuario de base de datos para el inicio de sesión que creamos anteriormente, use el siguiente comando:

use your database; CREATE USER [TestUser] FOR LOGIN [TestLogin]; 

Este comando crea un usuario asociado con el inicio de sesión TestLogin en la base de datos especificada (YourDatabase).

Roles

Los roles son una colección de permisos que puede asignar a un usuario o grupo de usuarios. Proporcionan una forma sencilla de gestionar permisos agrupándolos en un rol y luego asignando usuarios a ese rol.

SQL Server proporciona roles de servidor fijos y roles de base de datos fijos. Los roles de servidor fijos se aplican a toda la instancia de SQL Server, mientras que los roles de base de datos fijos se aplican solo a una base de datos en particular.

Aquí está cómo puede agregar un usuario a un cierto rol de base de datos:

use your database; EXECUTE sp_addrolemember 'db_datareader', 'TestUser'; 

Este comando agrega TestUser al rol db_datareader, otorgando al usuario permiso para leer todos los datos dentro de la base de datos especificada.

Permisos

Los permisos son derechos para realizar ciertas acciones sobre recursos de SQL Server, como tablas, vistas o procedimientos almacenados. SQL Server proporciona un amplio conjunto de permisos, y puede otorgar o denegar permisos a inicios de sesión o usuarios según sus necesidades de seguridad.

Suponga que desea permitir que un usuario inserte datos en una tabla específica. Puede ejecutar el siguiente comando:

use your database; GRANT INSERT ON [YourTable] TO TestUser; 

Este comando permite a TestUser insertar datos en la tabla especificada (YourTable) en YourDatabase.

Encriptación

SQL Server proporciona capacidades de encriptación para proteger datos sensibles que se almacenan, transmiten o intercambian entre instancias y aplicaciones de SQL Server. Esto incluye soporte para Encriptación de Datos Transparente (TDE) y Always Encrypted.

Encriptación de datos transparente

TDE ayuda a mantener los datos seguros porque encripta los datos, lo que significa que los archivos físicos en el disco también están encriptados. Sin embargo, los datos aún aparecen como texto plano para las aplicaciones que se conectan a la base de datos.

Para implementar TDE en una base de datos, siga estos pasos:

use master; Create master key encryption by password = 'YourStrongPassword123'; CREATE CERTIFICATE EncryptCert WITH SUBJECT = 'Database Encryption Certificate'; use your database; Create database encryption key with algorithm = AES_256 Encryption by server certificate EncryptCert; ALTER DATABASE YourDatabase SET ENCRYPTION ON; 

Esta serie de comandos configura la encriptación de la base de datos para YourDatabase utilizando un certificado.

Always Encrypted

Always Encrypted está diseñado para proteger datos sensibles dentro de una base de datos de SQL Server. Solo las aplicaciones cliente que tienen las claves de encriptación pueden acceder a los datos en texto claro. La encriptación ocurre a nivel del cliente, por lo que SQL Server nunca ve valores sin encriptar.

Configurar Always Encrypted requiere usar una clave maestra de columna y una clave de encriptación de columna. La clave maestra de columna se almacena fuera de SQL Server, mientras que la clave de encriptación de columna se almacena en SQL Server y se usa para encriptar columnas sensibles.

Típicamente, configurarlo requiere configurar claves de encriptación y usar SQL Server Management Studio (SSMS) o un script de PowerShell para cambiar las columnas de la tabla para usar encriptación.

Auditoría

La auditoría en SQL Server es una parte integral de la seguridad, ya que ayuda a rastrear y registrar eventos que ocurren en el sistema. Puede auditar eventos a nivel de servidor o eventos a nivel de base de datos, y SQL Server proporciona objetos de auditoría integrados para facilitar estas actividades.

Aquí hay un ejemplo básico de crear una auditoría y asociarla con un objeto a nivel de servidor:

Create a server audit ServerAudit in file(filepath = 'C:\AuditFiles\'); Change server audit ServerAudit with (status = on); Create a server audit specification ServerAuditSpec ServerAudit for server audits add(failed_login_group); Change server audit specification ServerAuditSpec with (status = on); 

Este script crea una auditoría que registra los intentos de inicio de sesión fallidos y envía el registro a la ubicación de archivo especificada.

Políticas de seguridad

SQL Server admite varias políticas de seguridad que ayudan a automatizar y gestionar prácticas de seguridad. Algunas políticas de seguridad notables incluyen la Seguridad a Nivel de Fila (RLS) y el Enmascaramiento Dinámico de Datos (DDM).

Seguridad a Nivel de Fila (RLS)

RLS permite la implementación de control de acceso granular sobre las filas de una tabla. Esto asegura que los usuarios solo tengan acceso a las filas para las que tienen autorización.

Puede crear RLS definiendo funciones de predicado y políticas de seguridad. La función de predicado define la lógica que se utiliza para filtrar filas.

CREATE FUNCTION dbo.fn_securitypredicate (@UserName AS sysname) Returns Table With SchemaBinding As select return 1 as result where @username = USER_NAME(); Create a security policy SecurityPolicy ADD FILTER PREDICATE dbo.fn_securitypredicate(username) on your table with (status = on); 

Este ejemplo filtra el acceso a YourTable según el nombre de usuario.

Enmascaramiento Dinámico de Datos (DDM)

DDM es una característica incorporada en SQL Server que promueve el proceso de ocultar datos sensibles al presentar datos a usuarios no autorizados. Los datos se almacenan por completo, pero se ocultan o anonimizan cuando se recuperan.

Aquí hay un ejemplo de configuración de DDM en una tabla:

ALTER TABLE YourTable ALTER COLUMN SensitiveColumn ADD MASKED WITH (FUNCTION = 'partial(2,"*",0)'); 

Esto enmascara la SensitiveColumn utilizando la función de máscara parcial, mostrando las primeras dos letras y enmascarando el resto de las letras.

Conclusión

Configurar la seguridad en Microsoft SQL Server implica varios pasos, desde configurar inicios de sesión, usuarios y roles hasta implementar estrategias de encriptación, auditorías y políticas de seguridad. Comprender las diversas herramientas y estrategias a su disposición le permitirá crear una arquitectura de seguridad sólida para su instancia de SQL Server. Las revisiones y actualizaciones regulares de su configuración aseguran que la seguridad de su SQL Server esté al ritmo de las amenazas emergentes.

Si encuentras algo incorrecto en el contenido del artículo, puedes


Comentarios