Está en la página 1de 12

SERVICIO NACIONAL DE APRENDIZAJE SENA

Especialización tecnológica en Gestión y Seguridad de Base de Datos

Características y Funciones de Seguridad del SMBD seleccionado

Presentado por

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Tutor:
xxxxxxxxxxxxxxxxxxxxxxxx

Cartagena de Indias Distrito Turístico y Cultural


xxxxxxxxxxxxxxxxx
Colombia
Actividad AA11-1:
Conceptualizar sobre las características y funciones de seguridad del SGBD.

Para esta actividad se debe realizar una investigación sobre las opciones y herramientas
suministradas por un sistema manejador de base de datos (SMBD) relacionadas con la
seguridad de la información. Dentro de la investigación debe tener presente los
siguientes aspectos:
* Características de seguridad configurables.
* Cuentas de Usuario y privilegios sobre los objetos del Sistema.
* Integridad
* Mecanismos de integridad y privacidad
* Funciones de seguridad

Para Desarrollar este taller tomares como referencia el manejador de base de Datos Microsoft SQL
Server

Características de seguridad configurables.

Microsoft SQL Server es un sistema de administración de bases de datos relacionales (RDBMS)


que contiene pocos componentes y subcomponentes. Cada componente en SQL Server tiene su
propio mecanismo de seguridad que está casi separado el uno del otro. La seguridad de Database
Engine incluye la cuenta de servicio, la instancia y la seguridad de las bases de datos.

Cuenta de servicio de Microsoft SQL Server

Microsoft SQL Server es una aplicación de modo de usuario, aunque se ejecuta en el servicio
de Windows. La cuenta de servicio es completamente una cuenta de usuario de Windows y
proporciona privilegios de seguridad para que el servicio SQL Server acceda a los recursos
de la plataforma Windows, como el sistema de archivos, la red y el registro. El punto más
importante es que SQL Server Service Account no se debe compartir con otras instancias de
SQL Server y se prefiere estar en un controlador de dominio (DC).

Capas de seguridad de SQL Server

Microsoft SQL Server tiene varias capas de seguridad, la primera capa es la seguridad del canal
de comunicación que es aplicada por TSL o protocolo SSL. La segunda capa está en el nivel de
instancia que está protegido por la API de protección de datos de Windows (DPAPI), DPAPI es en
la función de cifrado en la plataforma de Windows para cifrar y descifrar datos y el algoritmo es
diferente en cada máquina. Los inicios de sesión, los roles de servidor y las credenciales son objetos
de seguridad de nivel de instancia en SQL Server y el usuario, el certificado, las funciones, los
esquemas y las claves de cifrado son objetos de seguridad de nivel de base de datos. La figura
siguiente muestra las capas de seguridad de SQL Server. SQL Server Service Key es la clave de
cifrado básica en la plataforma SQL Server y está protegida por DPAPI, la clave de servicio siempre
se crea mediante el proceso de SQL Server durante el primer inicio y el usuario no puede crearla, el
usuario tiene la capacidad de hacer una copia de seguridad y restaurarla en la misma instancia u
otras instancias. La clave maestra es una clave opcional en cada base de datos y puede protegerse
mediante la clave de servicio o una contraseña segura proporcionada por el usuario. El usuario
puede hacer una copia de seguridad de la clave maestra y restaurarla en la misma base de datos u
otra base de datos. Regenerar la clave del servicio regenerará todas las claves secundarias, como las
claves maestras y de encriptación (simétrica o asimétrica).

Algoritmos y mecanismo de cifrado de SQL Server

El algoritmo de cifrado varía en SQL Server y depende de la clave de cifrado, no todas las claves
de cifrado admiten todos los algoritmos en SQL Server. SQL Server puede admitir algoritmos de
cifrado como AES, AES_128, AES_192, AES_256, DES, Triple_DES, RSA_2048, MD5, SHA1, SHA2_512
(Introducido en SQL Server 2012) y RC4.

SQL Server proporciona una función para encriptar la base de datos para evitar que se lea la base
de datos robada. El cifrado de la base de datos es una opción opcional en cada base de datos. SQL
Server no cifra la base de datos completa al mismo tiempo cuando la característica está habilitada
en una base de datos, SQL Server encriptará cada página cuando el proceso “Lazywriter” necesita
escribir la página en el disco y descifrarla cuando lee la página del disco. La función de cifrado de la
base de datos se denomina “Cifrado transparente de la base de datos” y solo está disponible en las
ediciones “Enterprise” y se presentó en SQL Server 2005.

La seguridad de SQL Server no está completa en la instancia, debe haber un entorno de red seguro
para reducir o evitar ataques al servidor. Para garantizar la seguridad del SQL Server, existen algunos
factores, como la cuenta de servicio, el protocolo de comunicación y la configuración del firewall.

SQL Server es un proceso de servicio de Windows y la plataforma de Windows lo ejecuta como un


proceso de modo de usuario, luego necesita una cuenta de Windows para iniciarlo y proporciona
privilegios de seguridad. La cuenta de servicio puede ser una cuenta de usuario o una cuenta de
sistema, la plataforma Windows Server 2008 R2 y, más adelante, la “Cuenta de servicio virtual” que
comienza con “NT Service \”. Tenga en cuenta que SQL Server no necesita privilegios de seguridad
del administrador, solo necesita tener privilegios para enumerar directorios y acceder a los archivos
de registro de errores, archivos de datos y archivos de registro. Hay tres cuentas integradas de
Windows tales como “Sistema local”, “Servicio de red” y “Servicio local”, que ninguno de ellos
necesita contraseña.
Usando la cuenta de servicio virtual

La cuenta de servicio virtual se introduce en Windows Server 2008 R2 y no requiere administración


de contraseñas. Se crea una vez que el servicio SQL Server se instala correctamente y el
administrador no tiene derecho a eliminar o agregar ninguna cuenta de servicio virtual. El nombre
de la cuenta del servicio virtual se inicia con “NT Service \”.

Encriptando la sesión con SSL

SQL Server transfiere datos a través de la red con el protocolo Tabular Data Stream (TDS), que es el
formato estándar para que SQL Server se comunique con la aplicación cliente. Los piratas
informáticos pueden detectar la red mediante la aplicación “WireShark” y explorar los datos
transferidos a través de la red. Para proteger los datos en la red, SQL Server puede encriptar el
protocolo TDS con protocolo SSL. Para habilitar el protocolo SSL, SQL Server necesita un certificado
auto firmado o un certificado autorizado de los proveedores de certificados. Los administradores
pueden habilitar el protocolo SSL en SQL Server habilitando la opción “Forzar cifrado” o mediante
la opción “Encriptar” en la cadena de conexión de la aplicación.

Cifrado de base de datos transparente

La característica Transparent Database Encryption (TDE) se presenta en SQL Server 2008, la


característica TDE encripta toda la base de datos con la clave proporcionada y puede encriptar los
datos y el archivo de registro al mismo tiempo. TDE es totalmente transparente desde la perspectiva
del usuario y la aplicación. TDE puede admitir claves de cifrado como “Tripple_DES”, “AES_128”,
“AES_192” y “AES_256”. Solo las ediciones “Enterprise”, “Developer” y “Data Center” de SQL Server
tienen esta característica única.

Cuentas de Usuario y privilegios sobre los objetos del Sistema


Las cuentas de usuario identifican las conexiones a la base de datos. Los privilegios que se
otorgan o deniegan a un usuario o grupo sobre una base de datos o un dataset, determinan
a qué puede acceder el usuario. Las cuentas de usuario se pueden agrupar en función de
las tareas que necesitan realizar para simplificar la gestión de los privilegios
La mayoría de los sistemas de administración de bases de datos proporcionan formas para
que el administrador de bases de datos agrupe a los usuarios según las necesidades de
acceso a los datos y asigne privilegios al grupo. Esto reduce el tiempo dedicado a modificar
los privilegios individuales de cada usuario y simplifica la administración de grandes
números de privilegios para grandes números de usuarios. Por lo tanto, puede utilizar
grupos (también denominados roles, tipos, o autoridades, según el sistema de
administración de bases de datos) que otorguen derechos a los usuarios de acuerdo con las
funciones comunes. Las categorías o los grupos de usuarios comunes son los que visualizan
los datos, los que editan los datos y los que crean lo datos. En la mayoría de los casos,
otorgar derechos a grupos no impide otorgar derechos a usuarios individuales en
geodatabases corporativas. Por ejemplo, puede otorgar los privilegios mínimos necesarios
para crear datos en la base de datos para el grupo que crea datos (que puede incluir al
administrador de la geodatabase) y otorgar privilegios adicionales sólo al usuario
administrador de la geodatabase. Sin embargo, cada sistema de gestión de bases de datos
trata la precedencia de privilegios de forma distinta, así que deberá consultar la
documentación de su sistema de administración de bases de datos para ver los detalles del
comportamiento de los privilegios asociados a los roles y los usuarios individuales. Además,
la mayoría de los sistemas de administración de bases de datos proporcionan grupos
predefinidos. Uno de ellos es el rol PUBLIC. Esencialmente, el grupo o rol PUBLIC es una
variable que equipara a cualquier persona conectada a la base de datos; por lo tanto,
cualquier derecho otorgado al grupo PUBLIC también se otorga a todos los que se conectan
a la base de datos. Puede haber casos en los cuales todos los usuarios necesitan un privilegio
determinado. Por ejemplo, para conectarse a las bases de datos de SQL Server o DB2, los
usuarios deben contar con el permiso CONNECT. Puesto que todos los usuarios necesitan
este privilegio para conectarse, SQL Server y DB2 otorgan este privilegio a PUBLIC de forma
predeterminada.

En algunos casos, se otorgan privilegios de alto nivel a PUBLIC por defecto cuando se crea
la base de datos. Sin embargo, por motivos de seguridad, sólo se deben otorgar privilegios
a PUBLIC cuando sea absolutamente necesario.
Para obtener información sobre otros grupos predefinidos, consulte la documentación de
su sistema de administración de bases de datos.

Sugerencias para agrupar usuarios

A continuación, se presentan algunas sugerencias para agrupar usuarios en el sistema de


administración de bases de datos.

 Cree grupos separados (roles) para los privilegios de sistema y de objeto. Esto
permite al administrador de la base de datos gestionar los privilegios de la base de
datos concediéndolos a los grupos del sistema, y a los propietarios de los datos
conceder privilegios sobre sus datasets otorgándolos a grupos de objetos.
 Elija una convención de nomenclatura que refleje cada tipo de grupo (rol) para
lograr una referencia fácil. Por ejemplo, para un grupo que puede editar todos los
datos sobre el suelo, puede nombrar al grupo LANDBASE_EDITORS.
 Otorgue privilegios directamente al administrador de la database y otorgue
privilegios mediante grupos (roles) para todos los demás usuarios. El administrador
de la database es una entidad única. En la mayoría de los casos, existe sólo un
usuario de este tipo para cualquier tipo de database y no es parte de un grupo lógico
de usuarios mayor. Los administradores de bases de datos con experiencia
consideran que otorgar privilegios directamente a tales cuentas del administrador
de la aplicación es un buen diseño. Por el contrario, las cuentas para usuarios no
administradores deben recibir privilegios mediante grupos que representen la
descripción del trabajo, las responsabilidades del proyecto u otra clasificación lógica
en la organización.
 Evite mezclar los roles con los privilegios otorgados directamente a las cuentas de
usuarios no administradores. Cuando las cuentas de usuarios no administradores
reciben privilegios mediante ambos roles y otorgamientos directos, un modelo de
seguridad bien planificado puede transformarse rápidamente en un desorden
imposible de manejar que requiere un tiempo y un esfuerzo considerable para
volver a un estado organizado. Establezca políticas para que los propietarios de los
datos sigan cuando otorguen acceso a sus datos.

En el improbable caso de que un usuario no administrador posea requisitos de


seguridad realmente únicos, considere la posibilidad de otorgarle algunos privilegios
directamente para evitar complicar el modelo de seguridad basado en roles.
Documente estos casos, ya que deben ser la excepción y no la regla.

Integridad
Niveles de la integridad de datos
La integridad de datos se define en los siguientes niveles:

Integridad de dominio
Se conoce como el dominio de un atributo al conjunto de valores aceptables para dicho
atributo. La integridad de dominio establece qué condiciones deben cumplir los valores a
insertar en una columna. La integridad de dominio se define mediante reglas de
validación, valores predeterminados, conjunto de valores permitidos en la columna (llave
foránea), tipo y formato de los datos.

Integridad de entidad
Una tabla almacena los datos de cada una de las ocurrencias de una entidad. La entidad (o
tabla) requiere que todas sus filas sean únicas. Esto se garantiza definiendo para cada fila
de la entidad un identificador único (llave primaria).

Integridad referencial
La integridad referencial garantiza que la relación entre la llave primaria (en la tabla
referenciada) y la llave foránea (en la tabla de referencia) siempre se mantiene. Una fila
en una tabla referenciada no puede anularse, ni cambiar su valor de la llave primaria, si
una llave foránea se refiere a la fila.

Los modos de integridad


La integridad de datos se puede definir como parte de la declaración de una tabla, ó
también mediante programación.
Integridad declarativa
La integridad declarativa se establece cuando definimos la integridad de datos como parte
de la definición de la tabla. Consiste en la creación de restricciones (constraints), y se
define mediante las instrucciones CREATE TABLE y ALTER TABLE.

Integridad procedural
La integridad procedural se establece cuando definimos la integridad de datos a través de
la programación. Consiste en la creación de desencadenantes (triggers), procedimientos
almacenados (stored procedures), y funciones (user defined functions).
Las restricciones (constraints)
Las restricciones son un método declarativo de definición de la integridad de datos ya que
ellas se definen al momento de crear la tabla (con la sentencia CREATE TABLE), o al
momento de modificar la definición de la tabla (con la sentencia ALTER TABLE). En otras
palabras, una restricción forma parte de la definición de la tabla. Las restricciones son el
método preferido para dar fuerza a la integridad de los datos.

Tipos de restricciones
Las restricciones son un método estándar ANSI para forzar la integridad de los datos.
Garantizan que los datos ingresados en las columnas sean valores válidos y que se
mantengan las relaciones entre las tablas.
La tabla siguiente describe los diferentes tipos de restricciones.

las restricciones se definen al momento de definir la tabla con las sentencias CREATE TABLE
o ALTER TABLE.
CREATE TABLE nombre_tabla(
columna1 tipo_dato propiedades
CONSTRAINT nombre_restricción ... ,
columna2 tipo_dato propiedades
CONSTRAINT nombre_restricción ... , ... )
ALTER TABLE nombre_tabla
ADD CONSTRAINT nombre_restricción ...

La restricción DEFAULT (valor predeterminado)

Define cuál es el valor por defecto de una columna cuando al ejecutar INSERT no se
especifica el valor de dicha columna.
Ejemplo
USE biblioteca
ALTER TABLE prestamo
ADD CONSTRAINT df_fecha_sal
DEFAULT getdate( ) FOR pre_fec_sal
Establece que el valor predeterminado de la columna pre_fec_sal de la tabla prestamo es
la fecha del sistema.

La restricción CHECK (regla de validación)

Define la regla que debe cumplir el valor a ingresar a una columna. Se verifica
durante la ejecución de INSERT y UPDATE.
Ejemplo
ALTER TABLE ejemplar
ADD CONSTRAINT chk_disponibilidad
CHECK ( eje_dis LIKE'[ SN]' )
El contenido de la columna eje_dis de la tabla ejemplar debe ser 'S' o 'N'.

La restricción PRIMARY KEY (llave primaria)


Define cuál es la llave primaria de una tabla. La columna o combinación de columnas no
debe tener valores duplicados ni nulos.
Ejemplo
ALTER TABLE publicacion
ADD CONSTRAINT pk_publicacion
PRIMARY KEY CLUSTERED( pub_cod )
Establece que la columna pub_cod de la tabla publicacion es la llave primaria de la tabla.
Crea un índice clustered único de nombre pk_publicación para la columna pub_cod.

La restricción UNIQUE (valores únicos)


Define que mas de una fila no pueden tener el mismo valor en una columna. Permite nulo.
Ejemplo:
ALTER TABLE tema
ADD CONSTRAINT u_descripcion
UNIQUE NONCLUSTERED( tem_des )
Establece que la columna tem_des de la tabla tema no puede tener descripciones iguales.
Crea un índice único de nombre u_descripcion.

La restricción FOREIGN KEY (llave foránea)


Define la integridad referencial. La restricción FOREIGN KEY se define sobre la columna
llave foránea de la tabla secundaria. La tabla primaria debe tener definida su restricción
PRIMARY KEY o UNIQUE.
Ejemplo
ALTER TABLE ejemplar
ADD CONSTRAINT fk_ejemplar_publicacion
FOREIGN KEY( pub_cod )
REFERENCES publicacion( pub_cod )
Establece la relación entre las tablas publicación y ejemplar.

Funciones de seguridad
Las siguientes funciones devuelven información útil para la administración de la
seguridad. En Funciones de cifrado (Transact-SQL) se enumeran más funciones.

CERTENCODED (Transact-SQL) PWDCOMPARE (Transact-SQL)

CERTPRIVATEKEY (Transact-SQL) PWDENCRYPT (Transact-SQL)

CURRENT_USER (Transact-SQL) SCHEMA_ID (Transact-SQL)

DATABASE_PRINCIPAL_ID (Transact-SQL) SCHEMA_NAME (Transact-SQL)

sys.fn_builtin_permissions (Transact-SQL) SESSION_USER (Transact-SQL)

sys.fn_get_audit_file (Transact-SQL) SUSER_ID (Transact-SQL)


sys.fn_my_permissions (Transact-SQL) SUSER_SID (Transact-SQL)

HAS_PERMS_BY_NAME (Transact-SQL) SUSER_SNAME (Transact-SQL)

IS_MEMBER (Transact-SQL) SYSTEM_USER (Transact-SQL)

IS_ROLEMEMBER (Transact-SQL) SUSER_NAME (Transact-SQL)

IS_SRVROLEMEMBER (Transact-SQL) USER_ID (Transact-SQL)

ORIGINAL_LOGIN (Transact-SQL) USER_NAME (Transact-SQL)

PERMISSIONS (Transact-SQL)

Referencia de Consulta
https://docs.microsoft.com/es-es/sql/t-sql/functions/security-functions-transact-sql?view=sql-
server-ver15

http://drsoftworld.blogspot.com/2018/04/la-integridad-de-datos-sql-server.html

https://www.sothis.tech/seguridad-en-microsoft-sql-server/

https://docs.microsoft.com/es-es/sql/relational-databases/security/security-center-for-sql-server-
database-engine-and-azure-sql-database?view=sql-server-ver15

https://desktop.arcgis.com/es/arcmap/10.3/manage-data/gdbs-in-sql-server/user-accounts-
groups.htm

También podría gustarte