Sunteți pe pagina 1din 6

CARACTERÍSTICAS Y FUNCIONES DE SEGURIDAD DEL SMBD SQL SERVER

SISTEMAS OPERATIVOS QUE SOPORTAN EL SMBD SQL SERVER SISTEMA OPERATIVO

VERSION

HERRAMIENTAS DE ADMINISTRACION GUI

SMDBA

Windows Server 2016 Standard (64 bits)

2016

R2

Servicios de SQL Server Configuración de Red SQL Server Configuración de SQL Native Client

Windows Server 2016 R2 Standard, Enterprise y Datacenter (64 bits)

2016

R2

Servicios de SQL Server Configuración de Red SQL Server Configuración de SQL Native Client

Windows Server 2016 Standard, Enterprise y Datacenter (64 bits)

2016

R2

Servicios de SQL Server Configuración de Red SQL Server Configuración de SQL Native Client

CARACTERISTICAS DE SEGURIDAD El sistema manejador de bases de datos cuenta con las siguientes características.

Protección de datos:

Criptografía integrada.

Cifrado transparente.

Clave extensible.

Firma de módulos de códigos.

Certificados a partir de bytes.

Claves de seguridad usando AES256.

Soporte para hashes SHA512 y SHA2 (256 y 512 bits).

Control de Acceso:

Flexibilidad mediante reparto de responsabilidades y roles anidados.

Evasión del acceso de Administrador del Sistema.

Mayor cumplimiento de las normas utilizando Windows Group.

Usuarios individuales.

Seguridad de usuarios con controles de TI integrados.

Autorización y permisos en SQL Server

Al crear objetos de base de datos, se deben conceder permisos de forma explícita para que los usuarios tengan acceso a ellos. Cada objeto susceptible de protegerse tiene permisos que se pueden otorgar a una entidad de seguridad mediante instrucciones de permiso.

Permisos basados en roles

Otorgar permisos a roles en lugar de a usuarios simplifica la administración de la seguridad. Los conjuntos de permisos asignados a roles los heredan todos los miembros del rol. Es más fácil agregar o quitar usuarios de un rol que volver a crear conjuntos de permisos distintos para cada usuario. Las roles se pueden anidar. Sin embargo, la existencia de demasiados

niveles de anidamiento puede reducir el rendimiento. También puede agregar usuarios a roles fijos de bases de datos para simplificar los permisos de asignación.

1. Los conjuntos predeterminados de permisos en Microsoft SQL Server son los siguientes:

Permiso

Lectura y escritura

Sólo lectura

Sólo escritura

db_backupoperator

+

+

+

db_datareader

+

+

-

db_datawriter

+

-

+

db_ddladmin

+

-

+

Permisos a mediante código basado en procedimiento

El encapsulamiento del acceso a los datos a través de módulos tales como procedimientos almacenados y funciones definidas por el usuario brinda un nivel de protección adicional a la aplicación. Se puede evitar que los usuarios interactúen directamente con objetos de la base de datos otorgando permisos solo a procedimientos almacenados o funciones, y denegando permisos a objetos subyacentes tales como tablas. SQL Server lo consigue mediante encadenamiento de propiedad.

Instrucciones de permiso

En la siguiente tabla se describen las tres instrucciones de permiso de Transact-SQL.

Instrucción de

 

permiso

DESCRIPCIÓN

GRANT

Concede un permiso.

REVOKE

Revoca un permiso. Este es el estado predeterminado de un objeto nuevo. Un permiso revocado a un usuario o rol se puede heredar de otros grupos o roles a los que está asignada la entidad de seguridad.

DENY

DENY revoca un permiso de manera que no pueda ser heredado. DENY tiene prioridad sobre todos los permisos, pero no se aplica a propietarios de objeto o miembros de sysadmin. Si deniega permisos a un objeto en el rol public, se los deniega igualmente a todos los usuarios y roles excepto a los propietarios del objeto y a los miembros de sysadmin.

Garantía de Cumplimiento:

Optimización mejorada y capacidades enriquecidas con respecto a versiones anteriores.

Mayor flexibilidad para filtrar eventos no deseados en el log de la auditoría.

Permite que las aplicaciones escriban código personalizado dentro de log de la auditoría

INTEGRIDAD

Es importante, al diseñar una base de datos y las tablas que contiene, tener en cuenta la integridad de los datos, esto significa que la información almacenada en las tablas debe ser válida, coherente y exacta.

Hasta el momento, hemos controlado y restringido la entrada de valores a un campo mediante el tipo de dato que le definimos (cadena, numéricos, etc.), la aceptación o no de valores nulos, el valor por defecto. También hemos asegurado que cada registro de una tabla sea único definiendo una clave primaria y empleando la propiedad identity. SQL Server ofrece más alternativas, además de las aprendidas, para restringir y validar los datos, las veremos ordenadamente y al finalizar haremos un resumen de las mismas. Para asegurar la coherencia de los datos en la base de datos, es posible administrar a nivel del servidor, un conjunto de funcionalidades que permiten centralizar los controles y las reglas de funcionamiento que se especifican en el análisis.

La implementación de la integridad de los datos se puede hacer de manera procedimental usando triggers (TRIGGER) o declarativa, usando restricciones (CONSTRAINT). Cuando se construye la tabla, también es posible definir valores por defecto (DEFAULT) o especificar un contador asociado a una columna (IDENTITY). Estas 2 opciones no permiten garantizar la integridad de los datos, pero contribuyen de manera significativa a esta integridad.

La integridad de los datos traduce las reglas del modelo relacional, reglas de coherencia (integridad de dominio), existencia de valores nulos, regla de unicidad (integridad de entidad) y claves extranjeras (integridad referencial).

En la medida de lo posible, es preferible implementar la integridad usando restricciones, ya que la restricción forma parte integrante de la estructura de la tabla. El respeto de la restricción es efectivo para todos los registros y la comprobación es mucho más rápida.

Licencia de software. Es un contrato en donde se especifican todas las normas y cláusulas que rigen el uso de un determinado producto de software, teniendo en cuenta aspectos como: alcances de uso, instalación, reproducción y copia de estos productos.

• Log’s. Registro o datos de quién, qué, cuándo, dónde y por qué un evento ocurre para un dispositivo o sistema en particular.

MAC (Media Access Control): Es un identificador de 48 bits (3 bloques hexadecimales) que corresponde de forma única a una tarjeta o dispositivo de red. Es la identificación única de cualquier dispositivo físico que hace parte de la una red de datos.

Perfiles de usuario. Son grupos que concentran varios usuarios con similares necesidades de autorizaciones idénticas sobre los recursos tecnológicos o los sistemas de información a los cuales se les conceden acceso de acuerdo con las funciones realizadas. Las modificaciones sobre un perfil de usuario afectan a todos los usuarios que se encuentran dentro del mismo grupo.

Reasignación de derechos de acceso. Es la modificación de los privilegios con que cuenta un funcionario sobre recursos tecnológicos, la red de datos o los sistemas de información de la Institución por cambio de sus funciones.

FUNCIONES DE SEGURIDAD

CERTENCODED (Transact-SQL): Devuelve la parte pública de un certificado en formato binario. Esta función toma un identificador de certificado y devuelve el certificado codificado. El resultado binario se puede pasar a CREATE CERTIFICATE… WITH BINARY para crear un nuevo certificado.

PWDCOMPARE (Transact-SQL): Obtiene el valor hash de una contraseña y lo compara con el de otra existente.

CERTPRIVATEKEY (Transact-SQL): Devuelve la clave privada de un certificado en formato binario.

PWDENCRYPT (Transact-SQL): Devuelve el valor hash de la contraseña de SQL Server correspondiente al valor de entrada que usa la versión actual del algoritmo de hash de contraseñas.

CURRENT_USER (Transact-SQL): Devuelve el nombre de usuario actual.

SCHEMA_ID (Transact-SQL): Devuelve el identificador de esquema asociado a un nombre de esquema.

DATABASE_PRINCIPAL_ID (Transact-SQL): Devuelve el número de Id. de una entidad de seguridad de la base de datos actual.

SCHEMA_NAME (Transact-SQL): Devuelve el número de Id. de una entidad de seguridad de la base de datos actual.

SYS.FN_BUILTIN_PERMISSIONS (Transact-SQL): Devuelve una descripción de la jerarquía de permisos integrados del servidor.

SESSION_USER (Transact-SQL): SESSION_USER devuelve el nombre de usuario del contexto actual en la base de datos actual.

SYS.FN_GET_AUDIT_FILE (Transact-SQL): Devuelve información de un archivo de auditoría creado por una auditoría de servidor en SQL Server.

SUSER_ID (Transact-SQL): Devuelve el número de identificación de inicio de sesión del usuario

SYS.FN_MY_PERMISSIONS (Transact-SQL): Devuelve una lista de los permisos concedidos a la entidad de seguridad para un elemento protegible.

SUSER_SID (Transact-SQL): Devuelve el número de identificación de seguridad (SID) que corresponde al nombre de inicio de sesión especificado.

HAS_PERMS_BY_NAME (Transact-SQL): Evalúa el permiso efectivo del usuario actual sobre un elemento protegible.

SUSER_SNAME (Transact-SQL): Devuelve el nombre de inicio de sesión asociado a un número de identificación de seguridad (SID).

IS_MEMBER (Transact-SQL): Indica si el usuario actual es miembro del grupo de Microsoft Windows o del rol de base de datos de SQL Server especificados.

SYSTEM_USER (Transact-SQL): Permite insertar en una tabla un valor proporcionado por el sistema para el inicio de sesión actual cuando no se especifica ningún valor predeterminado.

IS_ROLEMEMBER (Transact-SQL): Indica si una entidad de seguridad de base de datos especificada es miembro del rol de base de datos especificado.

SUSER_NAME (Transact-SQL): Devuelve el nombre de identificación de inicio de sesión del usuario.

IS_SRVROLEMEMBER (Transact-SQL): Indica si en el inicio de sesión de SQL Server es miembro del rol de servidor especificado.

USER_ID (Transact-SQL): Devuelve el número de identificación para un usuario de la base de datos.

ORIGINAL_LOGIN (Transact-SQL): Devuelve el nombre del inicio de sesión que se conectó a la instancia de SQL Server

USER_NAME (Transact-SQL): Devuelve un nombre de usuario de base de datos a partir de un número de identificación especificado.

PERMISSIONS (Transact-SQL): Devuelve un valor que contiene un mapa de bits que indica los permisos del usuario actual sobre una instrucción, objeto o columna.