Documente Academic
Documente Profesional
Documente Cultură
Controles de Seguridad
Esquemas (Schema)
Esquemas
Los esquemas es una forma de agrupar de forma lógica otros objetos. Cada usuario posee un
esquema predeterminado, que por lo regular es “dbo”, esto implica que a todos los objetos a los
que se refiera sin indicar el esquema se asumirá ese esquema para poder accederlo. Los esquemas
no solo permiten agrupar los objetos sino que también simplifican el manejo de la seguridad.
El Namespace o ruta para acceder a un objeto consta básicamente de tres elementos, aunque en
ocasiones podemos agregar un cuarto para referirnos al servidor. Esas tres partes son: Base de
datos.Esquema.Objeto.
Página 1
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Principals
Son entidades que pueden solicitar recursos de SQL Server. Se clasifican en dos grupos:
o SQL Server-Level Principals, están a nivel de la instancia y entre esos tenemos las
conexiones (Login) y Rol de Servidor (Server Rol).
o Database -Level Principals, a nivel de base de datos y en ellos se encuentran los usuariosla
instancia y entre esos tenemos los usuarios (User), Rol de Base de Datos (Database Rol) y
Rol de Aplicación (Application Rol).
Conexión (Login)
Login, es un tipo de cuenta de usuario que permite hace conexión a una instancia de SQL Server.
El mismo puede estar basado en un usuario del Windows (Windows Authentication) o un usuario
propio del manejador (SQL Server Authentication)
El login [sa] se crea por defecto durante la instalación de SQL Server. No se puede eliminar y es
miembro del rol de base de datos de administradores del sistema (sysadmin). Existen otros login
que se crean durante la instalación a través de certificados, estos inician con doble hash (##).
Página 2
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Un rol es un grupo de principals que facilita la asignación y manejo de permisos de forma grupal.
SQL Server ofrece nueve roles fijos a nivel de servidor:
El siguiente ejemplo crea un Rol de Servidor, luego cambia su nombre y por último agrega un
miembro (Login):
Página 3
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Usuarios (Users)
Para utilizar la conexión creada en el login se necesita utilizar un usuario de la BD. Este como
anteriormente se señaló se crea automáticamente al “mapear” el login a la BD, o se puede crear
dentro de cada BD colocando como nombre el mismo nombre de la conexión.
Los distintos tipos de usuarios que se pueden crear en SQL Server son:
- Basados en login: puede ser basado en un usuario o grupo de Windos o Autenticación SQL
Server.
- Autenticados en la Base de Datos: recomendados para tener base de datos portable (no
depende login). Solo es permitido en base de datos tipo contenido.
- Basados en Windows: se conectan a través de usuarios o grupos de Windows que no tienen
login.
- Sin Autenticación: son usuarios que no se conectan a SQL Server, pero pueden tener
permisos. Otro ejemplo son los basados en certificados y claves asimétricas.
El usuario dbo es un usuario especial que existe en cada base de datos, es con este usuario que
todas las conexiones y miembros del rol de servidor sysadmin, se conectan a la base de datos. Ese
usuario tiene todos los permisos y por defecto es el dueño de la misma. También es el dueño del
esquema del mismo nombre (dbo).
Página 4
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Mediante los roles es más manejable la asignación de permisos cuando existen grandes
cantidades de usuarios, ya que se definen el control de los objetivos a nivel del rol, y luego los
usuarios son asignados a estos roles. Se pueden crear tanto Roles como perfiles de control de
seguridad se determinen.
Para crear un nuevo Rol se debe acceder por la carpeta de Seguridad\Rol que se encuentra dentro
de la base de datos deseada.
En esta ventana se define de manera gráfica el Rol de la base de datos, indicando el dueño, el
(los) esquema(s) al que podrán asignársele permiso, y los miembros que lo componen.
SQL Server trae definido un conjunto de Rol interno con diferentes niveles de permisos y
seguridad:
Página 5
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Permisos
SQL Server regula los permisos de accesos a unos recursos denominados Securables. Estos tienen
permisos asociados que pueden ser autorizados a un ente Principal de Seguridad (Security
Principal).
Los comandos para asignar los permisos para cada acción son:
o GRANT:
GRANT autorización para ejecutar la acción.
o WITH GRANT:
GRANT autorización para otorgar autorización.
o DENY:
DENY Negar un permiso de la acción marcada.
o REVOKE:
REVOKE Quitar un permiso o un impedimento de permiso.
Página 6
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Página 7
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Administración de Políticas
SQL Server introduce esta característica a partir de la versión 2008 (denominada policy-based
management), la cual es sin duda la mejora más significativa para los administradores de base
de datos. Con esta herramienta se pueden revisar de manera automáticas, condiciones
específicas que normalmente un DBA realiza de manera mecánica, por ejemplo como para
asegurar la consistencia de la configuración de SQL Server.
Página 8
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Entidad (Target): Es el objeto manejado por la política. Puede ser una instancia, base de datos,
tablas u otro objeto.
Faceta (Facet): Es el nombre asignado a un grupo de propiedades configurables que pueden ser
evaluadas dentro de la entidad.
Página 9
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Política
Política (Policies
(Policies)
Policies): Denominado así al objeto que agrupa todas las variables antes mencionadas
(Entidad, Faceta y Condición), la cual su evaluación puede ser de 4 forma:
- Por Prevención (On Change – Prevent –). Asegura que la política no sea violada
reversando cualquier operación invocada. Se maneja a través de triggers DDL para
ciertos objetos. Presenta el inconveniente de que no se puede continuar la operación
mientras ésta exista.
- Por Alerta (On Change – Log –). Registra en el log de aplicaciones los cambios a las
políticas y se pueden configuran sus correspondientes alarmas para estos casos.
- Por Demanda (On Demand). Su revisión se realizan de menara invocada por el DBA.
Solo afecta el rendimiento en el momento en que se realiza la evaluación.
Página 10
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Las condiciones fallidas, se pueden marcar y aplicarse los estados deseados a los objetos
evaluados.
Las políticas son almacenadas en la base de datos MSDB, y por esto es recomendable realizar
copia de seguridad cada vez que éstas cambien.
Página 11
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Importando
Importando Políticas
Políticas
SQL Server contiene un listado de políticas de mejores prácticas (aproximadamente 50), que
pueden ser copiadas durante la instalación. Su ruta para importar es: C:\Program Files
(x86)\Microsoft SQL Server\130\Tools\Policies\DatabaseEngine\1033.
Ejemplos:
Estas políticas se pueden determinar para que se copien habilitada, deshabilitada o con el estado
que se hayan grabado.
Página 12
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Exportando Políticas
Las políticas pueden ser exportada a un archivo xml para ser almacenado y luego importada a
otra ubicaciones.
Otra forma de exportar o crear una política, es basada en la configuración del objeto (instancia,
base de datos, tabla, etc.) Para esto se accede por el menú emergente, y ejecutando al opción de
Facetas.
De la misma manera se pueden realizar las evaluaciones de políticas que estén contenidos para
un objeto.
Página 13
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Un DBA que monitoree y maneje varias instancias, debe de establecer un adecuado régimen de
alertas y tareas automatizados que le faciliten el trabajo, y eviten cualquier tipo de caos en sus
operaciones. Con esto se logran realizar las operaciones de mantenimiento en un tiempo
relativamente corto y se reducen grandemente los posibles errores.
Con esta herramienta se habilita el uso de los correos electrónicos, que se utilizarán para hacer
los envíos automáticos. Aquí se configuran los perfiles de cada cuenta así como el servidor de
mensajería a utilizar.
Página 14
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Página 15
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Operadores
Página 16
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Alertas
2) SQL Server perfomance condition alert. Se crean alertas a partir de eventos (counter),
de diferentes objetos en el manejador, el cual se puede validar contra un valor en
específico en caso de que se cumpla dicha condición:
- Fails below, cuando el valor del evento esté por debajo de la constante
- Becomes equal to, cuando el valor del evento sea igual a la constante
- Raises above, cuando el valor del evento sobrepase de la constante
Las alertas son configuradas para enviar aviso a los operadores, marcando las distintas opciones
de envío. Adicionalmente se pueden ejecutar tareas automáticas al momento de invocarse la
tarea.
Página 17
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Las tareas son pasos programáticos a través de T-SQL que ejecutan ciertas acciones en un
determinado momento.
Página 18
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Se definen los diferentes pasos (step) que ejecutará la tarea, indicando el tipo y la base de datos
donde se ejecutaría. En el cuadro final se especifican los comandos a realizar según el tipo
indicado:
El paso se le configura la acción a tomar en caso de éxito o falla. Opcionalmente se puede grabar
en un archivo físico y en tabla el log de ejecución. (La tabla del log se crea en caso de que no
exista)
Página 19
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Puede ser:
- Start automatically when SQL Server Agent starts (cuando inicia el Servicio)
- Start whenever the CPUs become idle (cuando el procesador se inhabilita)
- Recurring (de manera recurrente por fecha, hora)
- One Time (una sola vez)
Página 20
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Mediante el menú emergente del servicio del agente de SQL Server se configuran las siguientes
opciones:
- En la solapa General se pueden marcar las opciones de reinició del servicio en caso
de que el servidor o el mismo servicio se detenga inesperadamente.
- En la misma se visualiza la ruta donde se almacena físicamente información
procesada por el agente (file name).
- Opcionalmente se puede indicar mensaje de rastreo a los mensajes en el agente.
Página 21
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
- En Sistema de Tareas se indica el tiempo que puede durar la tarea sin completarse
ante que se complete, y forzará su detención de manera forzada.
Página 22
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
- Por último en la ventana de histórico se indica el límite máximo en el tamaño del log
de las tareas, y a partir de qué tiempo se puede limpiar el historial.
Página 23
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Plan de Mantenimiento
Esta herramienta se utiliza para crear mediantes diferentes pasos la revisión y ejecución de
ciertas tareas en el servidor.
Existen planes prediseñados que se pueden utilizar para el manejo de ciertas actividades
Este plan puede configurarse para una o varias BD. Y dependiente del tipo seleccionado se
especifican los valores que se desean aplicar durante su ejecución.
Página 24
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Subplanes. Se pueden crear diferentes subplanes dentro de un plan general para una mejor
administración.
Calendarización. Cada subplan, así como el plan general, se configura para que ejecute en un
determinado momento.
Página 25
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Auditoría
Las soluciones de auditorías son diseñadas para habilitar un análisis retrospectivo de las
actividades de los usuarios. En las versiones del SQL Server 2005 o menor, las opciones de
auditoría consistían en:
- Conexión fallida y/o exitosa a nivel de la instancia. La cual registra el evento a nivel del
Windows.
- Auditoría customizadas a través de la herramienta de SQL Profiler.
Profiler. Herramienta propia de
SQL Server que permite rastrear y visualizar diferentes acciones realizadas en el servidor.
- Opción de rastro de auditoría C2 (C2 audit
audit tracing). Almacena en un archivo físico dentro de
la instancia, los datos de los eventos auditados.
Sumado a esto en se provee un nuevo modelo más comprensible de auditoría sobre eventos
particulares de la base de datos.
Creando Auditoria
Archivo físico:
CREATE SERVER AUDIT [Audit-20110531-200900]
TO FILE (FILEPATH = 'C:\GRUPO B\Auditorias')
Página 26
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Especificaciones de Auditoría
Existen una gran variedad de especificaciones de eventos a auditar, tanto a nivel del servidor
como de la base de datos.
Una vez creada la auditoría y sus especificaciones, se habilitan que inicie el registro de los
procesos.
Página 27
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Monitoreo
Esta actividad está mayormente relacionada con el DBA de producción, cuyo rol principalmente
es monitorear las instancias de SQL Server para actividad anormal, manejo de respuesta contra
condiciones de fallos y llevar de manera proactiva unas series de tareas de mantenimientos.
Monitor de Actividad
Procesos (Proccess)
Página 28
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Aquí se visualizan los diferentes procesos en ejecución, mostrando a nivel de columna datos
específicos para identificar los valores.
- Id de la sesión (Sec ID)
- Conexión (Login)
- Base de Datos (database)
- Estado (Task State)
- Aplicación invocada (Application)
- Tiempo de Espera (Wait Time)
- Uso de la Memoria (Memory Use)
- PC que invoca (Host Name)
Además se puede “destruir” un proceso en particular, dándole clic derecho. Así como también
presentar un detalle más completo del proceso. Otra particularidad es que se puede invocar el
SQL Profile para un proceso en específico para profundizar aún más las ejecuciones de esa sesión.
Muestra los diferentes recursos que pueden estar saturados en esperando de liberación. Es ideal
para cuando existe cuello de botella, identificar que recurso en particular está siendo más
afectado.
Página 29
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Muestra cada archivo ffísico de la BD para evaluar el rendimiento del disco tanto en la escritura
como en la lectura del mismo.
Presenta las últimas consultas realizadas que hayan tenido un costo significativo en el uso del
CPU. Se puede visualizar el detalle de la consulta, así como también el plan de ejecución de la
misma que sirve de ayudar para realizar tareas de optimización.
Página 30
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Nombrado SQL Profiler. Con esta funcionalidad el DBA puede profundizar más en las distintas
operaciones que realizadas en el servidor, que con el Monitor de Actividades.
El objetivo principal de esta herramienta es analizar el costo de las consultas que son realizadas
de manera constantes por las diferentes aplicaciones que interactúan con las base de datos.
Revisando con esto el rendimiento a nivel de procesador, escritura y/o lectura del disco, duración.
Permitiendo capturar y revisar de manera independiente cada sentencia.
Página 31
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
La pestaña eventos (Events Selecction) es utilizada para seleccionar las diferentes operaciones
(filas), así como también los valores (columnas) que se interesan capturar.
Mediante el botón de Filtro de columna (Column Filter), se pueden filtrar con cuales valores se
desea rastrear los procesos.
Página 32
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Luego de su puesta en ejecución el Profile registra cualquier todas las operaciones que están
siendo ejecutado y que cumplen con las condiciones establecidas.
En la pantalla principal se visualizan en el orden en que son ejecutadas estas sentencias, y los
valores que presentan cada uno. En la parte inferior, por cada línea se muestra el texto de estas
sentencias. Entre las opciones que se pueden invocar a través de su barra de herramienta son
Iniciar, Pausar, Detener, Borrar o cambiar la configuración del trace.
Existen algunos traces internos que se mantienen en constante ejecución y cuya información se
utilizan para generar ciertos reportes de rendimiento y análisis en el servidor. Al generarse esto
reporte se deja registrada en un archivo interno una copia temporal de este trace, el cual puede
ser revisado para un análisis pormenorizado. La ruta es dentro de la instancia en la carpeta LOG
(Ejemplo... \MSSQLSQLGRUPOB\LOG).
Este reporte se invoca desde la ventana emergente de la instancia con la opción Report:
Reproducc
Reproducción del Trace
Un uso del registro del profile es reproducir y depurar de manera secuencia cada sentencia
capturada, para lograr esto primero hay que utilizar la plantilla TSQL_Replay, que contiene las
columnas que son utilizadas para el proceso de reproducir un trace.
Página 33
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Con esta herramienta se administran el uso adecuado de los recursos compartidos entre
diferentes usuarios o aplicaciones, basado en el origen de su conexión. Un ejemplo de esto sería
asignar ciertos valores mínimos de CPU y memoria a un determinado grupo de usuarios cuyo
propósito es la entrada de datos, y así estos no se ven afectados cuando se realicen grandes
consultas que pudieran bloquear las transacciones.
Limitaciones
Componentes
- Pool de Recursos (Resources Pool). Utilizado para definir los valores mínimos y máximos
del uso de CPU y memoria del servidor. Estos pueden ser utilizados por uno o más grupo
de carga de trabajo (workloads groups)
- Clasificador (Classifier Function). Determina las características con la cual son definidos
los grupos de trabajo para enlazarse con el pool de recursos. Estos pueden ser por
usuarios, aplicaciones, PC o rol.
Existen 2 pools definidos por defecto: Default e Internal .Internal es utilizado para el uso
exclusivo del sistema y no puede ser modificado. Default se puede cambiarse al agregarse los
diferentes grupos de trabajo que se van creando.
Página 34
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Cuando se asignan los recursos a los pool hay que tomar en consideración el valor de efectividad
máxima que se aprovechará por cada uno.
Ej:
• En el pool uso optimo por encima de su mínimo es el 10%, ya que entre el pool A y B
suman 90%
• En el pool A el rendimiento máximo al que puede llegar a 40%, ya que está reservado
para el pool B el 60%.
• En el pool B la efectividad máxima que puede obtener es 70%, ya que está reservado para
el pool Al 30%.
Tomando este ejemplo se debe tomar precaución cuando se asignen los valores mínimo y máximo
a los diferentes pool de recursos:
Página 35
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server
Clasificador
La clasificación se realiza a través de una función T-SQL, creada por el DBA, que realiza la
separación de los grupos de trabajo tan pronto se realiza su conexión. Esta función debe de ser
ligera, para que no sobrecargue el proceso de conexión de los usuarios y solo es invocada mientras
el Regulador de Recursos se encuentra habilitado.
Ej:
USE master
GO
-- Create a Classifier Function
CREATE FUNCTION fn_rg_classifier() RETURNS SYSNAME
WITH SCHEMABINDING
AS
BEGIN
DECLARE @grp_name AS SYSNAME
IF (IS_SRVROLEMEMBER('sysadmin') = 1)
SET @grp_name = 'Administradores'
IF (APP_NAME() LIKE '%PROGRAMA2000%')
SET @grp_name = 'Data Entry'
RETURN @grp_name
END
GO
Página 36