Sunteți pe pagina 1din 36

Módulo II: Administración de Base de Datos

Unidad 5: Control de Acceso y Seguridad en SQL Server

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.

SELECT * FROM datosDB.dbo.Clientes

Si se omite el esquema entonces se asume el esquema predeterminado del usuario conectado.


SELECT * FROM datosDB..Clientes

CREATE SCHEMA DiplomadoSQL

CREATE TABLE DiplomadoSQL.Asignatura


(Codigo INTEGER, Nombre VARCHAR(40))

Para modificar el esquema de un objeto se utiliza la siguiente sentencia:

ALTER SCHEMA DiplomadoSQL TRANSFER dbo.Estudiante

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)

A esta conexión se le puede aplicar la política de seguridad de cambiarla al momento de hacer la


conexión. Otro atributo a indicar es la BD que tomará por defecto.

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 (##).

Para crear un login a través de T-SQL se utiliza el siguiente esquema:


CREATE LOGIN admin WITH PASSWORD = 'hola00' MUST_CHANGE,
CHECK_POLICY = ON, CHECK_EXPIRATION = ON

CREATE LOGIN [admin2] FROM WINDOWS WITH


DEFAULT_DATABASE=[MiDB]

Página 2
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server

Roles de Servidor (Server Rol)

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:

- Bulkadmin: Son los que pueden ejecutar los BULK Insert.


- Dbcreator: Pueden crear, modificar, eliminar y restaurar base de datos.
- Diskadmin: Manejan los discos de archivos del servidor.
- Processadmin: Pueden finalizar procesos que se esté ejecutando en el servidor.
- Public: Posee los privilegios básicos para el manejo de los objetos.
- Securityadmin: Controlan las conexiones al sevidor. Asignan los permisos.
- Serveradmin: Pueden cambiar configuraciones del servidor y apagar el mismo.
- Setupadmin: Agregan o Remueven enlaces de servidores (linked server).
- Sysadmin: Ejecutan cualquier actividad en el servidor.
-

El siguiente ejemplo crea un Rol de Servidor, luego cambia su nombre y por último agrega un
miembro (Login):

CREATE SERVER ROLE Diretores


ALTER SERVER ROLE Diretores WITH NAME = Administrador
ALTER SERVER ROLE Administrador ADD MEMBER [Estudiante]

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.

Para crear un usuario a través de T-SQL se utiliza la siguiente sentencia:

CREATE USER juanperez FOR LOGIN estudiante


WITH DEFAULT_SCHEMA = diplomado

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

Roles de Base de Datos (Database Rol)

Un rol definido dentro de la BD equivale al Servicio de Directorio de un Dominio de Windows, el


cual contiene Usuarios y Permiso Asignados a diferentes objetos (Esquemas, Tablas, Vistas,
Stored Procedure o Conexiones de 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.

Con el siguiente ejemplo se crea un rol de base de datos y se agina un usuario

CREATE ROLE Programador


ALTER ROLE Programador ADD MEMBER [josefeliz]

SQL Server trae definido un conjunto de Rol interno con diferentes niveles de permisos y
seguridad:

Roles a Nivel de Base de Datos


- Db_accessadmin: Tiene la capacidad de asignar o remover el método de conexión.
- Db_backupoperator: Realiza las operaciones de respaldo de la BD.
- Db_datareader: Poseen permiso para leer los datos dentro de la BD.
- Db_datawriter: Pueden agregar, borrar o cambiar los datos.
- Db_ddladmin: Ejecutan los comandos DDL a los objetos de la BD.
- Db_denydatareader: No poseen permiso para leer los datos dentro de la BD.
- Db_denydatawriter: No pueden agregar, borrar o cambiar los datos.
- Db_owner: Configura todas las actividades y objeto de la base de datos.
- Db_securityadmin: Maneja los permisos dentro de la base de datos

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).

Se encuentren en diferentes capas:

Servidor: Base de Datos Esquema

•Availability group •Application role •Type


•Endpoint •Assembly •XML schema collection
•Login •Asymmetric key •Object – The object class has
•Server role •Certificate the following members:
•Database •Contract •Aggregate
•Fulltext catalog •Function
•Fulltext stoplist •Procedure
•Message type •Queue
•Remote Service Binding •Synonym
•(Database) Role •Table
•Route •View
•Schema •External Table
•Search property list
•Service
•Symmetric key
•User

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

La sintaxis general para asignar un permiso es:

AUTHORIZATION PERMISSION ON SECURABLE::NAME TO PRINCIPAL;

- AUTHORIZATION: debe ser un comando de lenguaje de control de datos (DCL). GRANT,


DENY, REVOKE

- PERMISSION: establece que acción es permitida o prohibida (ALTER, CREATE, DROP,


CONTROL, DELETE, UPDATE, INSERT, SELECT, EXECUTE, IMPERSONATE,
REFERENCES, TAKE OWNERSHIP, VIEW CHANGE TRACKING, VIEW DEFINITION)

- ON SECURABLE::NAME: el tipo de recurso y su nombre. (TABLE, DATABASE,


APPLICATION ROLE, PROCEDURE, VIEW, CERTIFICATE, ROLE, LOGIN, SCHEMA,
SYNONYM, TYPE USER, USER…)

- TO PRINCIPAL: es el ente de seguridad (principal) al que recibe o pierde el permiso.

GRANT SELECT ON OBJECT::DiplomadoSQL.Asignatura TO josefeliz

DENY UPDATE ON OBJECT::DiplomadoSQL.Asignatura TO josefeliz

REVOKE CONTROL ON OBJECT::DiplomadoSQL.Asignatura TO josefeliz

GRANT EXECUTE ON sp_procesar TO rol_programador WITH GRANT OPTION

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.

En un ambiente con diferentes instancias, un DBA (o el grupo de DBA), debe de estar en


constante revisión de que las políticas establecidas se mantengan correctas. Si la implementación
de estas políticas conlleva una alta inversión de tiempo y recurso, mantenerla implementada es
un reto aún mayor.

Página 8
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server

Componentes de una Política

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.

Condición (Condition): Específica el valor a evaluar de una faceta

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 Agenda (On Schedule). La política se ejecuta en determinado momento mediante


alguna tarea automatizada.

- 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

Visualizando una Evaluación de Política

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:

• Backup files must be on separate devices from the database files.


• Data and log files should be on separate drives.
• The default trace should be enabled.
• Max Degree of Parallelism should be less than 8.
• No unexpected system failures should be detected.
• Backups should be performed frequently.
• No I/O delay messages should be detected.

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

Manejo de Eventos (Jobs y Alerts)

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.

SQL Server Agent

Este componente es el responsable de monitorear e invocar cualquier tarea programada en el


servidor. Este servicio se puede iniciar a través del Manejador de Servicios de SQL Server, o con
el SQL Server Management Studio.

Mensajería (Database Mail)

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

Primero se crea el perfil que definirá las cuentas a utilizar.

Luego se definen las cuentas el servidor de mensajería a utilizar.


Nota: El número de puerto a utilizar no debe estar bloqueado por el firewall

Página 15
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server

Por último se pueden configurar algunos valores del sistema:


- Account Retry Attemps: cantidad de intento de envío en caso de falla.
- Account Retry Delay: Tiempo en segundo de retraso para hacer el envío.
- Maximum File Size: Tamaño total en byte que puede ser enviado.
- Prohibited Attachment File Extensions: Extensiones no permitidas en el envío.
- Database Mail Executable Minimum Lifetime: Tiempo mínimo de espera del servicio
de mensajería.
- Loggin Level: Nivel de registro para el Log de la mensajería.
o Normal, sólo errores;
o Extended, errores, advertencias y mensajes informativos;
o Verbose, errores, advertencias, mensajes informativos y más detalle internos
de estos mensajes.

Operadores

El operador es la entidad se asocia a una tarea para recibir las notificaciones.


Se le indica un nombre, y opcionalmente una cuenta de correo electrónico, una dirección de envío
en red y un dirección electrónica de un localizador (correspondientemente a esto se especifica el
día y la hora de trabajo que puede recibir las notificaciones)

Página 16
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server

Alertas

Una alerta puede ser creada a partir de 3 formas diferentes:

1) SQL Server event alert.


alert Se define una alerta a partir de un número en particular del
error (Error number), o un tipo de severidad (Severity) predefinida por SQL Server. Esta
puede aplicar a una BD en particular o a todas.
Se recomienda crear alertas para las severidad del 16 al 25

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

3) WMI event alert.


alert Esta opción se utiliza para crear alertas basados en un bloque de código
creado con T-SQL.

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

Tarea Automatizada (Jobs)

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 define con un nombre y propietario de la tarea. Se indica a cual categoría pertenece.

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

A la tarea se le indica el momento es que se ejecutará.

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)

A la tarea se le configura alertas y forma de notificación

Página 20
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server

Configuración del Agente 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.

- En la ventana de Avanzados opcionalmente se indica si se reenvía los eventos a una


instancia diferente, colocando el nombre de la misma, el tipo de eventos: los no
manejados (unhandled) o todos (all events), así como también la severidad mínima a
partir del cual se pueden reenviar
- Se puede configurar el nivel de rendimiento del procesar con el cual se puede
considerar inactivo.

Página 21
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server

- En la parte de Sistema de Alerta se habilita el sistema de mensajería que se utilizará


para realizar las notificaciones a los operadores.
- Existen opciones particulares para las notificaciones mediante localizadores (pagers),
indicando formato en sus diferentes cláusulas.
- Se puede relacionar un operador, y su método de notificación, que accionará como
seguridad contra falla.

- 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

- En la parte de conexiones se indica el alias que se utilizará acceder al servidor. En


caso de no indicarse se utiliza la configuración por defecto.

- 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

Componentes de un Plan de Mantenimiento

Conexión. Especifica el tipo de conexión a la instancia.

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.

Tareas. Es la acción a ejecutar dentro del plan

Secuencia. Define el orden en que se ejecutarían las diferentes tareas o subplanes.

Notificación. Se configura donde se registra el log de las operaciones y la alerta a operadores.

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

- Audit name. Nombre del archivo de auditoría.


- Queue delay. Lapso en milisegundo para registrar en el log.
- Shut down Server on audit log failure. Indica si se apaga la instancia en caso de error al
grabar en el log
- Audit. Tipo de auditoría: en archivo físico, en el log de seguridad o en el log de aplicación
- Maximum, Mininum. Valor máximo y mínimo cuando es un archivo físico.
- Reserved Disk Space. Preserva el espacio del valor máximo en el disco (aplica cuando el valor
es máximo no es ilimitado)

A través de T-SQL se crea de la siguiente manera:

Archivo físico:
CREATE SERVER AUDIT [Audit-20110531-200900]
TO FILE (FILEPATH = 'C:\GRUPO B\Auditorias')

Log de aplicaciones o Seguridad


CREATE SERVER AUDIT [Audit-20110531-200900]
TO APPLICATION_LOG | SECURITY_LOG

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.

- Name. Nombre de las especificaciones de la auditoría.


- Audit. Auditoría que registrará los eventos de estas especificaciones.
- Actions. Diferentes grupos de acciones que pueden ser auditadas.

Una vez creada la auditoría y sus especificaciones, se habilitan que inicie el registro de los
procesos.

Visualizando el Archivo de Auditoría

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

Nombrada Activity Monitor. Es la herramienta de monitoreo incorporada en SQL Server 2008


muestre en 5 bloques informaciones de los procesos en ejecución y los objetos utilizados. Con esto
puede determinar cual se está bloqueando en un determinado momento y tomar las decisiones
de lugar. Se puede invocar desde el menú emergente de la instancia, o a través del icono en la
barra de herramienta estándar.

Vista panorámica (Overview)

Presentación gráfica de los bloques manejados, permitiendo configurar el tiempo de


refrescamiento.
- Porcentaje del Tiempo de uso del Procesador
- Cantidad de Tarea en Esperas
- Velocidad de Escritura/Lectura a la base de datos
- Velocidad de Solicitudes por Segundo

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.

Recurso en Espera (Resource Waits)

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

Tasa de Escritura/Lectura a la Base de Datos (Data Fiel I/O)

Muestra cada archivo ffísico de la BD para evaluar el rendimiento del disco tanto en la escritura
como en la lectura del mismo.

Reciente Consulta de Alto Costo (Recent Expensive Queries)

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

Analizador de SQL (SQL Profile)

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.

Esta herramienta se encuentra dentro de la carpeta de Herramienta de Rendimiento


(Performance Tool), y al inicial solicita conexión a la instancia con la que se desea trabajar.

En esta pantalla se indican los siguientes datos:

- Trace name: Nombre del trace que identificará el bloque.


- Trace provider Name: nombre de la instancia a la cual está haciendo conexión.
- Trace provider type/Version: Nombre y número de la versión del SQL Server.
- Use the template: plantillas pre-diseñadas por SQL Server que se pueden seleccionar
para indicar las columnas y las opciones deseadas.
- Save to file: si se marca, el trace se almacenará en un archivo y se indica la ruta de su
ubicación.
- Save to table: si se marca, el resultado se registrará en un tabla (puede ser de otra
instancia, y si no existe se crea)
- Set Maximum rows: si se marca se indica la cantidad máxima de registros a almacenar
en la tabla (expresado en miles)
- Enable trace stop time: si se marca, se especifica la fecha y la hora en que se detendrá de
manera automática la el proceso de rastreo de las operaciones.

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.

El uso inadecuado de esta herramienta puede afectar el rendimiento en el servidor, ya que el


proceso de registrar las sentencias en el trace afecta el tiempo de procesamiento.

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.

En esta ventana tenemos lo siguiente:


- Replay server: indica la instancia en la que se reproducirá el archivo. Notar que no se
indica la Base de datos, ya que debe de existir la misma base de datos (igual que su id)
que contenga el trace. Lo mismo para el login, clave, usuario, etc.
- Save to file/table: indica si el resultado se almacenará en un archivo o en una tabla.
- Number of replay threads: cantidad de hilos de proceso que se utilizará para la
reproducción. Consume más recurso, pero se realiza de manera más rápida.
- Reply events in the order they where created: aplica las sentencias exactamente como
fue capturada, puede ser depurado (debugged).
- Reply events using multiple threads: deshabilita el depurador, para mejorar su
rendimiento.
- Display replay results: muestra el resultado en pantalla

Unas utilidades de la reproducción de los traces, es cuando se captura en un ambiente de


producción, y luego se analiza con detenimiento en un ambiente de prueba (con el mismo
esquema), sin que afecte el rendimiento operacional.

Página 33
Módulo II: Administración de Base de Datos
Unidad 5: Control de Acceso y Seguridad en SQL Server

Regulador de Recursos (Resource Governor)


Governor)

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

- Los recursos controlados se limitan a memoria y CPU. No incluye el uso de la red y el


manejo de escritura y lectura en el disco.
- Solo se limita al acceso del motor de la base de datos, los servicios como Reporting
Services, Analysis Services e Integration Services no está contemplado.
- No se puede aplicar a instancias de múltiple servidor.

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)

- Grupos de Trabajo (Workloads Groups). Se denominas así a las diferentes conexiones de


una instancia que de manera determinada son clasificadas. A estos grupos se le asignan
un pool de recursos que son administrados y monitoreados.

- 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:

- Cuando se inicia la instancia el porcentaje mínimo es reservado aún no esté en uso


- Utilizar el monitor de rendimiento para determinar de manera eficiente los porcentajes
que requieren los distintos grupos de trabajo.

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

ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.fn_rg_classifier)


ALTER RESOURCE GOVERNOR RECONFIGURE

Las funciones soportadas para el manejo de la clasificación son:


- HOST_NAME():
HOST_NAME() Nombre de una PC.
- APP_NAME(): Nombre de la aplicación.
- SUSER_NAME() / SUSRE_SNAME():
SUSRE_SNAME() Nombre del usuario conectado.
- IS_SRVROLMEMBER():
IS_SRVROLMEMBER() Evalúa el role del servidor.
- IS_MEMBER():
IS_MEMBER() Evalúa el role de la base de datos.

Página 36

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