Sunteți pe pagina 1din 20

AA11 EV1 CARACTERÍSTICAS Y FUNCIONES DE SEGURIDAD DEL SMBD SELECCIONADO

Alcaldía de san Antonio del SENA

Ficha 1966112

Instructor:

Camilo Andrés Gutiérrez Oviedo

Aprendiz:

Jised Patricia Hernández Támara


Carol Michell Villamizar Chía

Especialización Tecnológica en Gestión y Seguridad de Bases de Datos

Servicio Nacional de Aprendizaje SENA

Sincelejo, Mayo de 2020


INTRODUCCION

Hoy en día existe la necesidad imperante de que la información contenida en su base de datos se
mantenga segura, cumpliendo requisitos tales como la integridad y confidencialidad.

Por lo que se hace necesario implementar mecanismos de seguridad que restrinjan el acceso a la
información de personas no autorizadas. El presente trabajo describe los elementos que permiten
garantizar la seguridad de los datos en el SMBD SQL Server 2012, como es el uso del protocolo SSL,
la creación de roles, vistas y asignación de niveles de privilegios.

El desarrollo de la industria del Software y el aumento de la competencia en el mercado exige


como requisito fundamental para las aplicaciones informáticas la presencia de altos niveles de
seguridad. En las organizaciones es importante adoptar medidas orientadas a prevenir acciones
que pongan en riesgo la confiabilidad e integridad de la información que se maneja.
CARACTERISTICAS DE SQL SERVER 2012

Microsoft SQL Server es un sistema de administración y análisis de bases de datos relacionales de


Microsoft para soluciones de comercio electrónico, línea de negocio y almacenamiento de datos.

Microsoft SQL Server es un sistema de manejo de bases de datos del modelo


relacional, desarrollado por la empresa Microsoft.

El lenguaje de desarrollo utilizado (por línea de comandos o mediante la interfaz gráfica de


Management Studio) es Transact-SQL (TSQL), una implementación del estándar ANSI del lenguaje
SQL, utilizado para manipular y recuperar datos (DML), crear tablas y definir relaciones entre ellas
(DDL).

SQL Server solo está disponible para sistemas operativos Windows de Microsoft.

Puede ser configurado para utilizar varias instancias en el mismo servidor físico, la primera
instalación lleva generalmente el nombre del servidor, y las siguientes - nombres específicos (con
un guion invertido entre el nombre del servidor y el nombre de la instalación).

VERSIONES

El código fuente original de SQL Server que fue utilizado en las versiones previas a la versión 7.0
habría sido comprado de Sybase, pero fue actualizado en las versiones 7.0 y 2000, y reescrito en la
versión 2005. Generalmente, cada 2-3 años, una nueva versión es lanzada y, entre estos
lanzamientos, se proponen service packes con mejoras y correcciones de bugs, y hotfixes por
problemas urgentes en el sistema de seguridad o bugs críticos.

CARÁCTERÍSTICAS
  Soporte de transacciones.
 Soporta procedimientos almacenados.
  Incluye también un entorno gráfico de administración, que permite el uso

de comandos DDL y DML gráficamente.
 Permite trabajar en modo cliente-servidor, donde la información y datos se alojan en
el servidor y los terminales o clientes de la red sólo acceden a la información.
 Además permite administrar información de otros servidores de datos.
 Ejecuta aplicaciones no criticas
 Integrar datos y habilitar BI Basic.
 Desarrolla aplicaciones innovadoras.

Requisitos de Software y Hardware


 .NET 3.5 SPI
 .NET Framework 4.1
 SQL Server Native Client
 Protocolo de Red: Memoria Compartida.
 Canalizaciones con nombre TCP/IP VIA Memoria: Ediciones Express 512 MB
 Todas las demás ediciones: 1 GB
 Se recomienda: Ediciones Express: 1 GB
 Todas las demás ediciones: 4 GB
 PROCESADOR x86: 1.0 GHz
 Procesador x64: 1.4 GHz
 Recomendado: 2 GHz o más.
 Procesador compatible con Pentium III o Superior

Lenguaje de manipulación
 SQL

Manejo de Concurrencia y Bloqueos


 Proporciona las capacidades necesarias para apoyar el almacenamiento de datos
escalable, limpieza de datos y la gestión y la exploración rápida de datos y visualización
para los usuarios finales.

Permite el procesamiento de distribuido de consultas

Transacciones Distribuidas
 Soporte OLAP
 Data WareHousing
 Data Mining
 Soporte OLTP Básico.

Seguridad
 Cifrado Transparente de Datos.

En la tabla siguiente se indican estas características con más detalle:

Características Detalles
Alta Disponibilidad y Recuperación Ante
AlwaysOn
Desastres
Cifrado de Datos Transparente, Administración Extensible de Claves, SQL Server Audit, Roles de
Seguridad Avanzada Servidor Definidos por el Usuario, Esquema Predeterminado para Grupos, Autenticación de
Base de Datos Independiente
Data Warehouse Índice de Almacén de Columnas, Captura de Datos Modificados, Particionamiento de Tablas,
Integration Services
Compresión Avanzada Compresión de Almacenamiento y de Copia de Seguridad
Distributed Replay, Punto de Control, Asistente para la Optimización de Base de datos,
Facilidad de Uso
Recopilación de Datos de Rendimiento, Administración Basada en Directivas
No relacional Compatibilidad con datos espaciales, FileTable
Business Intelligence Avanzada Analysis Services, Reporting Services, Minería de Datos, Modelo Semántico
Administración de Datos Maestros Master Data Services
Calidad de Datos Data Quality Services
Procesamiento de Eventos Complejos StreamInsight

Seguridad de bases de datos en SQL Server 2012

La seguridad de los datos implica protegerlos de acciones indebidas que pongan en peligro su
definición, existencia, consistencia e integridad independientemente de la persona que los accede.

La seguridad de una base de datos se refiere a la protección de la informacion contra el acceso por
parte de las personas no autorizadas y la indebida destrucción o alteración. Es un componente
fundamental de la estrategia global en materia de seguridad informática, y es muy importante
como para quedarse con las configuraciones por defecto.

El analista de sistemas que se hace responsable de la seguridad debe estar familiarizado con todas
las particularidades del sistema, porque este puede ser atacado con fines ilícitos desde muchos
ángulos.

Para mantener la seguridad en una base de datos, deben cumplirse requisitos tales como:

 Confidencialidad:
Autorización en sistemas de bases de datos.
Identificación y autenticación.
Código y contraseña.
Identificación por Hardware.
Características bioantropometricas.
Conocimiento, aptitudes y hábitos del usuario.
Informacion predefinida (aficiones, cultura, etc.).

 Integridad:
Las restricciones de integridad proporcionan un medio de asegurar que las modificaciones
hechas en las base de datos no provoquen la perdida de la consistencia de los datos.
En el modelo entidad – relación existen dos restricciones:
- Declaración de claves (Reglas de la Entidad)
- Forma de la relación (Regla de Integridad Referencial)

 Disponibilidad:
Disponibilidad se define como la continua operatividad de los sistemas de computadoras.
Todos los componentes del sistema deben proveer de sus servicios continuamente. Aquí
se incluyen los servidores de aplicaciones y de bases de datos, Dispositivos de
almacenamiento y las redes punto a punto.
Características de seguridad

El sistema manejador de base 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.

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 auditoria.
 Permite que las aplicaciones escriban código personalizado dentro de Log de la auditoria.

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
modificado. 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_huiltin_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 Auditoria


creado por una auditoria 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 (CID).

 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 especificados 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.

SQL Server define 4 conceptos básicos:

1. Login de SQL Server


2. Usuarios de la base de datos
3. Roles de la BD
4. Roles de una aplicación

Inicios de sesión (Login): Un login es la habilidad de utilizar una instancia del Servidor SQL, está
asociado con usuario de Windows o con un usuario de SQL. Son autenticados contra SQL Server
por lo tanto son los accesos al servidor, pero esto no quiere decir que puedan acceder a las bases
de datos o a otros objetos. Para poder acceder a cada una de las bases de datos se necesita de un
usuario (user).

Usuario de la base de datos (User): El usuario de la base de datos es la identidad del inicio de
sesión cuando está conectado a una base de datos.

El usuario de la base de datos puede utilizar el mismo nombre que el inicio de sesión, pero no es
necesario.

 Los Logins son asignados a los usuarios.


 Los grants se les asignan a los usuarios.
 los usuarios se le asignan sus propios Esquemas (schemas).

Usuarios por defecto en una BD:

- dbo: Propietario. No puede ser borrado de la BD


- Guest: Permite a usuarios que no tienen cuenta en la BD, que accedan a ella, pero hay
que hacerle permiso explícitamente
- Information_schema: Permite ver los metadatos de SQL Server
- Sys: Permite consultar las tablas y vistas del sistema, procedimientos extendidos y
otros objetos del catálogo del sistema

Mostrar usuarios de una base de datos:

USE master
GO
SELECT *FROM sys.database_Principals

Los usuarios pueden pertenecer a Roles.

 Todos los usuarios son miembros del Role “Public”


 El login “sa” está asignado al usuario dbo en todas las base de datos.

Da acceso a la base de datos, pero esto tampoco quiere decir que pueda hacer cualquier
operación sobre la base de datos, en principio no puede hacer casi nada, salvo que se le vaya
asignando roles y otros privilegios para hacerle permisos de acceso a los objetos de esa base de
datos.

Roles

Los Roles pueden existir a nivel de instancia o base de datos.

A nivel de Instancia:

 Los logins pueden ser otorgados roles llamados “server roles”.


 No se pueden crear Roles nuevos.

A nivel de Base de Datos:

 Los usuarios de base de datos pueden ser otorgados roles.


 Se pueden crear roles nuevos.

Role de una Aplicación:

Un role de aplicación sirve para asignarle permisos a una aplicación:

 Tiene un password
 No contiene usuarios

Jerarquía de permisos:

El Motor de base de datos administra un conjunto jerárquico de entidades que se pueden proteger
mediante permisos. Estas entidades se conocen como elementos protegibles. Los protegibles más
prominentes son los servidores y las bases de datos, pero los permisos discretos se pueden
establecer en un nivel mucho más específico.
Autenticación

La autenticación de SQL Server se basa en Logins.

Hay diferentes tipos de Logins:

- Windows authentication.
 Usuarios o grupos de Windows
 Contraseña y políticas de contraseña controladas por Windows/Active
Directory.
- SQL Server authentication.
 Usuarios controlados por SQL Server.
 Contraseña y políticas de contraseña controladas SQL Server.
 ¿Cómo cambiar contraseñas?
 De cualquier login si tiene el privilegio CHANGE ANY LOGIN
 De su propio usuario especificando su antigua contraseña
ALTER LOGIN LoginName WITH
PASSWORD=N’MyNewPassword’
. OLD_PASSWORD=N’MyOldPassword’

En SQL Server nos encontramos con tres niveles o capas en los cuales podemos gestionar la
seguridad. El primero de ellos se encuentra a nivel de servidor, en él podemos gestionar quién
tiene acceso al servidor y quién no, y además gestionamos que roles va a desempeñar. Para que
alguien pueda acceder al servidor debe tener un inicio de sesión (login) asignado, y a éste se
asigna los roles o funciones que puede realizar sobre el servidor.

El que alguien tenga acceso al servidor no quiere decir que pueda acceder a las bases de datos que
se encuentran en él. Para ello hay que tener acceso a la siguiente barrera de seguridad, que es a
nivel de base de datos. Para que un login tenga acceso a una base de datos, tenemos que crear en
ella un usuario (user). Se debe crear un usuario en cada una de las bases de datos a las que
queramos que acceda un login.

Análogamente, el que un usuario tenga acceso a una base de datos no quiere decir que tenga
acceso a todo su contenido, ni a cada uno de los objetos que la componen. Para que esto ocurra
tendremos que irle concediendo o denegando permisos sobre cada uno de los objetos que la
componen.

La sentencia GRANT otorga privilegios en una tabla, vista o apodo


Esta sentencia se puede incorporar a un programa de aplicación o emitir mediante el uso de
sentencias de SQL dinámico. Es una sentencia ejecutable que puede prepararse de forma dinámica
sólo si el comportamiento de ejecución de DYNAMICRULES está en vigor para el paquete
(SQLSTATE 42509).
Autorización

SQL Server usa un esquema de autorización en dos niveles

- Logins: usados para conectar a instancias de SQL Server y determinar permisos a nivel
de servidor.
- User: usados para determinar los permisos en una determinada base de datos

 La autenticación se hace a nivel de login, no de usuario.


 Cada usuario de base de datos esta mapeado a un login concreto.
 Un usuario puede tener permisos a nivel de servidor y no a nivel de base de datos.
 Podemos asignar permisos a nivel de servidor directamente a un login (no es
recomendable más que en casos excepcionales).

Principals

Las principals son entidades que pueden acceder a recursos de SQL Server.

 Principals a nivel de SQL Server


- SQL Server authentication Login
- Windows authentication login for a Windows user
- Windows authentication login for a Windows group
- Azure Active Directory authentication login for a AD user
- Azure Active Directory authentication login for a AD group
- Server Role
 Principals a nivel de base de datos:
- Database User
- Database Role
- Application Role

ROLES
 Hay una serie de roles predefinidos a nivel del servidor y de base de datos.
- Deberían ser suficientes en la mayoría de escenarios
- Piénsalo bien antes de complicar tu seguridad.

 Los roles pueden pertenecer a otros roles


 Podemos asignar usuarios a roles
 Podemos otorgar permisos sobre elementos (securables) a los diferentes roles.
 Cada securable tiene diferentes permisos.
 Hay securable a nivel de servidor y a nivel de base de datos.
 Si otorgamos un privilegio con WITH GRANT el usuario puede otorgar ese privilegio a otros
usuarios (es algo a evitar).
 No podemos cambiar los permisos de los roles predefinidos, solo quien pertenece a ellos.
Roles de aplicación
 Un rol de aplicación es un rol a nivel de base de datos
 Los roles de aplicación identifican los permisos de una aplicación, con independencia de
que usuario se conecta.
 La aplicación se conecta con un usuario y su contraseña.
 La aplicación establece su rol ejecutando sp_setapprole con el nombre de rol y la
contraseña como parámetro.
 Los permisos desde ese momento serán los del rol de aplicación.
 Por defecto los permisos son los de guest.
 Simplifica la seguridad en muchas ocasiones.
 El acceso solo se puede lograr a través de la aplicación.

Impersonación
 Podemos hacer que nuestras sentencias SQL se ejecuten como otro usuario u otro login.
- EXECUTE AS LOGIN= ‘loginName’;
- EXECUTE AS USER= ‘userName’;
 Por defecto solo pueden hacer:
- SYSADMIN para todas las bases de datos.
- Miembro de db_owner en la base de datos que poseen.
 Típico uso:
- CREATE USER proxyUser WITHOUT LOGIN
- CREATE PROCEDURE [procName] WITH EXECUTE AS’proxyUser’ AS…

Owners
 Todo objeto de SQL Server tiene un owner.
 Por defecto es el owner del esquema en que se crea.
 Si un usuario posee un objeto y borramos el usuario, debemos transferir la propiedad del
objeto.
 Si el propietario de un objeto es un usuario ese objeto tendrá acceso al resto de
elementos de ese usuario.
- Chained Ownership.

 Esto prevalece sobre DENY.


- Tabla y procedimiento almacenando con el mismo owner.
- Damos otro usuario U GRANT EXECUTE sobre el procedimiento que devuelve datos de
una tabla.
- Denegamos lecturas sobre la tabla DENY READ al mismo usuario U.
- Como el procedimiento almacenado y la tabla tienen el mismo owner el usuario U
¡puede acceder a los datos de la tabla pese al DENY READ!

 Si un usuario tiene permisos sobre un objeto y este objeto referencia otros con el mismo
owner, solo se comprueban los permisos sobre el primer objeto.
 Si el usuario es pertenece al rol SYSADMIN su schemas por defecto es siempre dbo.
Schemas
 Todos los objetos pertenecen a un schema.
 El schema por defecto es dbo.
 Los schemas como cualquier securable tiene un owner (usuario, rol de base de datos o rol
de aplicación).
 Podemos asignar un esquema por defecto a usuarios.
 Podemos crear nuestros propios esquemas.
- El owner por defecto será quien cree el esquema.
- Podemos asignar como owner de un esquema a un role o un usuario.
 Los esquemas se pueden usar únicamente como unidades lógicas.
 Podemos dar permisos sobre esquemas, una forma efectiva de dar permisos sobre todos
los objetos del esquema.
 Cuando creamos un objeto dentro de un esquema, el propietario será por defecto, el
propietario del esquema.

Always encrypted
 Previene la revelación de datos sensibles.
 Encriptación de lado cliente mediante claves no reveladas al lado servidor.
 Soporta consultas sobre datos encriptados: comparación, joins, group by…
 Casi transparente a nivel de aplicación.
 Permite almacenar datos sensibles fuera de nuestros límites de confianza (por ejemplo en
SQL Azure).
 Los datos están a salvo de usuarios con altos privilegios.

Aways encrypted: Tipos de encriptación


 Randomized encryption
- Encrypt (‘123-45-6789’) = 0x17cfd50a
- Otra vez: Encrypt[‘123-45-6789]= 0x9b1fcf32
- Permite obtener los datos encriptados pero no operaciones sobre ellos.
- Por ejemplo WHERE, joins, distinct, group by.
- Por ejemplo para el DNI de usuario.

Transparent data encryption


 Encripta los datos antes de escribirlos en disco.
- Archivos de datos.
- Backups.
 Más selectivo que encriptar volúmenes enteros.
 La desencriptación es totalmente transparente.
 Impide restaurar Backups en otro servidor para acceder a los datos salvo que tengamos el
certificado.

Row-Level Security:
Conceptos
 Función predicado:
- Función Tabla-valor definida por el usuario que implementa la lógica de seguridad
- Puede ser compleja, e incluso incluir joins con otras tablas.
 Predicado de seguridad
- Aplica un predicado función automáticamente a una Tabla
- Dos tipos:
 Predicado de filtro
 Predicados de bloqueo
 Política de seguridad:
- Colección de predicados para gestionar la seguridad RLS.
 Recomendaciones:
- Crear un esquema separado para RLS.
- Evitar conversiones de tipos en funciones de predicado.
- Evita recursividad en funciones de predicado.
- Evite la lógica del predicado que dependa de opciones SET específicas de la sesión.
- Evitar elementos no deterministas de predicado.

Tipos de predicados
 Predicados de filtro
- Filtran en modo silencioso las filas disponibles para operaciones SELECT, UPDATE y
DELETE.
- Si algo no cumple el predicado no aparece en la SELECT y no se puede modificar con
UPDATE o DELETE
- Nada te impide actualizar un registro de tal manera que deje de ser accesible para ti.
 Predicados de bloqueo:
- Los predicados AFTER INSERT y AFTER UPDATE pueden impedir que los usuarios
actualicen las filas con valores que infrinjan el predicado.
- Los predicados BEFORE UPDATE pueden impedir que los usuarios actualicen las filas
que actualmente infrinjan el predicado.
- Los predicados BEFORE DELETE pueden bloquear las operaciones de eliminación.

Dynamic Data Masking


 Evita exponer datos sensibles a usuarios no privilegiados
 Ofuscación no encriptación.
 Es transparente para aplicaciones cliente.
 Se puede combinar con Always Encrypted pero con Transparent Data Encryption.
 Funciones predefinidas únicamente:
- Default()
 Default(string)= ‘xxxx’
 Default (num)=0
 Default (date)= 01.01.1900 00;00;00.0000000
 Default (binary)= (byte)0
- Email(‘rcorral@plaincocnepts.com’)= rxxxxx@xxxxxxx.com
- Random(num, star, end)= randomNum[star, end]
- Partial(string, prefix,[padding], suffix)
 Partial('abracadabra’,2,[****],3)=ab****bra
 No Evita actualizaciones sobre los datos enmascarados.
 Si el usuario no tiene privilegios de UNMASK
- SELECT INTO o INSERT INTO copiará los datos enmascarados
- DDM se aplica en operaciones de exportación e importación (ojo a la posible pérdida
de datos)

Herramientas de evaluación de vulnerabilidades


BACKUPS
 Modo de recuperación
- Simple
- Full
- Bulk log ged
 Tipos de copia
- Completa
- Diferencial
- De Log de transacciones
 Necesaria para poder recuperar
 Cualquier momento del tiempo

Los privilegios ALTER, INDEX y REFERENCES no son aplicables a las vistas.

ALL o ALL PRIVILEGES

Otorga todos los privilegios adecuados, excepto CONTROL, en la tabla base, vista o apodo llamado
en la cláusula ON.

Si el ID de autorización de la sentencia tiene el privilegio CONTROL sobre la tabla, vista o apodo, o


la autorización ACCESSCTRL o SECADM, se otorgan todos los privilegios aplicables al objeto
(excepto CONTROL). De lo contrario, los privilegios otorgados son todos los privilegios otorgables
que el ID de autorización de la sentencia tenga en la tabla, vista o apodo identificado.

Si no se especifica ALL, debe especificarse una o varias palabras clave en la lista de privilegios.

ALTER

Otorga el privilegio para:

 Añadir columnas a una definición de tabla base.


 Crear o descartar una clave primaria o una restricción de unicidad en una tabla base.
 Crear o descartar una clave foránea en una tabla base.
También es necesario el privilegio REFERENCES en cada columna de la tabla padre.
 Crear o descartar una restricción de comprobación en una tabla base.
 Crear un activador en una tabla base.
 Añadir, restablecer o descartar una opción de columna para un apodo.
 Cambiar un nombre de columna de apodo o tipo de datos.
 Añadir o cambiar un comentario en una tabla base o en un apodo.

CONTROL

Otorga:

Todos los privilegios adecuados de la lista, es decir:

 ALTER, CONTROL, DELETE, INSERT, INDEX, REFERENCES, SELECT y UPDATE para tablas base
 CONTROL, DELETE, INSERT, SELECT y UPDATE para vistas
 ALTER, CONTROL, INDEX y REFERENCES para apodos

DELETE

Otorga el privilegio para suprimir las filas de la tabla o vista actualizable.

INDEX

Otorga el privilegio para crear un índice en una tabla o una especificación de índice en un apodo.
Este privilegio no se puede otorgar en una vista. El creador de un índice o de una especificación de
índice tiene automáticamente el privilegio CONTROL en el índice o en la especificación de índice
(que autoriza al creador a descartar el índice o la especificación de índice). Asimismo, el creador
mantiene el privilegio CONTROL incluso si se revoca el privilegio INDEX.

INSERT

Otorga el privilegio para insertar filas en la tabla o vista actualizable y para ejecutar el programa de
utilidad IMPORT.

REFERENCES

Otorga el privilegio para crear y descartar una clave foránea que haga referencia a la tabla como la
tabla padre.
Si el ID de autorización de la sentencia tiene uno de los siguientes:
 Autorización ACCESSCTRL o SECADM
 Privilegio CONTROL sobre la tabla
 REFERENCES WITH GRANT OPTION para la tabla

Entonces los usuarios autorizados pueden crear restricciones de referencia utilizando como clave
padre todas las columnas de la tabla, incluso las que se han añadido después mediante la
sentencia ALTER TABLE. De lo contrario, los privilegios otorgados son todos los privilegios
REFERENCES de columna otorgables que el ID de autorización de la sentencia tiene en la tabla
identificada.
El privilegio puede otorgarse para un apodo, aunque no pueden definirse claves foráneas para
apodos de referencia.
SELECT
Otorga el privilegio para:
 Recupera filas de la tabla o vista.
 Crea vistas en la tabla.
 Ejecuta el programa de utilidad EXPORT en la tabla o vista.

UPDATE
Otorga el privilegio para utilizar la sentencia UPDATE sobre la tabla o vista actualizable
identificada en la cláusula ON.
Si el ID de autorización de la sentencia tiene uno de los siguientes:

 Autorización ACCESSCTRL o SECADM


 Privilegio CONTROL sobre la tabla o vista
 UPDATE WITH GRANT OPTION en la tabla o vista

Entonces la persona o personas a las que se otorga pueden actualizar todas las columnas
actualizables de la tabla o vista en las que la persona que otorga tiene el privilegio así como
aquellas columnas que se han añadido después utilizando la sentencia ALTER TABLE. De lo
contrario, los privilegios otorgados son los privilegios UPDATE de columna otorgables que el ID de
autorización de la sentencia tiene en la tabla o vista identificada.

TO
Específica a quién se otorgan los privilegios

USER
Especifica que el nombre-autorización identifica a un usuario

GROUP
Especifica que el nombre-autorización identifica un nombre de grupo.

ROLE
Especifica que el nombre-autorización identifica un nombre de rol. El nombre de rol debe existir en
el servidor actual (SQLSTATE 42704).

PUBLIC
Otorga los privilegios a un conjunto de usuarios (ID de autorización). Para obtener más
información, consulte el apartado "Autorizaciones, privilegios y propiedad de objetos". (Se han
eliminado las restricciones anteriores que se aplicaban a la utilización de los privilegios que se
otorgan a PUBLIC para las sentencias de SQL estático y la sentencia CREATE VIEW.)
WITH GRANT OPTION
Permite que los nombres-autorización especificados otorguen (GRANT) los privilegios a otros.
Si los privilegios especificados incluyen CONTROL, WITH GRANT OPTION se aplica a todos los
privilegios aplicables excepto CONTROL (SQLSTATE 01516).
CONCLUSION

Es necesario implementar mecanismos de seguridad a nivel de base de datos, en términos de


garantizar la protección de la informacion que se procesa.

La implementación de certificados digitales y el protocolo de seguridad SSL garantizan la


autenticación segura de los clientes y convierte la informacion en ininteligible para terceros.

El empleo de privilegios y niveles de seguridad de filas restringe el acceso de la informacion a los


responsables de procesarlas.

La ejecución y puesta en práctica de mecanismos de seguridad y autenticación se convierte en un


requisito para garantizar la integridad y confidencialidad de la informacion.

S-ar putea să vă placă și