miércoles, 6 de mayo de 2020

SQLSERVER habilitar xp_cmdshell para ejecucion de comandos cmd

Sqlserver te da la opción de poder ejecutar comandos del CMD por medio del xp_cmdshell pero por seguridad esta inactivo, si lo ejecutas sin activar te dará el siguiente error::

Executed as user: NT SERVICE\SQLSERVERAGENT. SQL Server blocked access to procedure 'sys.xp_cmdshell' of component 'xp_cmdshell' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'xp_cmdshell' by using sp_configure. For more information about enabling 'xp_cmdshell', search for 'xp_cmdshell' in SQL Server Books Online. [SQLSTATE 42000] (Error 15281). 

Solución
Para solventar este problema solo hay que habilitar , veamos el ejemplo
Comando
xp_cmdshell 'dir c:\'

Salida de Error
 xp_cmdshell 'T SERVICE\SQLSERVERAGENT. SQL Server blocked access to procedure 'sys.xp_cmdshell' of component 'xp_cmdshell' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'xp_cmdshell' by using sp_configure. For more information about enabling 'xp_cmdshell', search for 'xp_cmdshell' in SQL Server Books Online. [SQLSTATE 42000] (Error 15281)


Habilitar el xp_cmdshell
-- Activar las opciones avanzadas para activar xp_cmdshell
sp_configure 'show advanced options', '1'
RECONFIGURE

-- Activar xp_cmdshell
sp_configure 'xp_cmdshell', '1'
RECONFIGURE

Una vez ejecutado provemos
xp_cmdshell 'dir c:\'
Listo, funcionando

Desactiva el xp_cmdshell
Si ya no deseamos tener activa el xp_cmdshell lo desactivamos de la siguiente forma:
-- Activar las opciones avanzadas para activar xp_cmdshell
sp_configure 'show advanced options', '1'
RECONFIGURE

-- Desactiva xp_cmdshell
sp_configure 'xp_cmdshell', '0'
RECONFIGURE



Espero les sirva.

martes, 5 de mayo de 2020

Planes de mantenimiento en SQLSERVER

Sqlserver presta una utilidad para realizar mantenimientos de base de datos bajo demanda o autoáticos, los mantenimientos que podemos son los que van de la mano de una administración de base de datos.
  • Reorganizar los datos de las páginas de datos y de índices mediante una nueva generación de los índices con un nuevo factor de relleno. Al volver a crear índices con un nuevo factor de relleno se asegura que las páginas de la base de datos contienen una cantidad de datos y espacio disponible distribuidos por igual. También permite un crecimiento más rápido en el futuro. Para obtener más información, vea Especificar el factor de relleno para un índice.
  • Comprimir archivos de datos mediante la eliminación de las páginas de base de datos que estén vacías.
  • Actualizar las estadísticas de los índices para asegurarse de que el optimizador de consultas dispone de información actualizada acerca de la distribución de los valores de los datos en las tablas. Esto permite al optimizador de consultas elegir el método más adecuado para obtener acceso a los datos, ya que dispone de más información acerca de los datos almacenados en la base de datos. Aunque SQL Server actualiza periódicamente las estadísticas de los índices de forma automática, esta opción puede obligar a que se actualicen inmediatamente.
  • Realizar comprobaciones de coherencia interna de los datos y de las páginas de datos de la base de datos para asegurarse de que no se han dañado debido a un problema de software o del sistema.
  • Realizar copias de seguridad de la base de datos y de los archivos de registro de transacciones. Las copias de seguridad de la base de datos y del registro pueden mantenerse durante un período especificado. Esto le permite crear un historial de copias de seguridad para utilizarlo si tiene que restaurar la base de datos a una fecha anterior a la de la última copia de seguridad de la base de datos. También puede realizar copias de seguridad diferenciales.
  • Ejecutar trabajos del Agente SQL Server . Se puede usar para crear trabajos que realicen diversas acciones y los planes de mantenimiento para ejecutar esos trabajos.

La opción es muy útil para realizar estas actividades de forma rápida es por medio de los Planes de Mantenimientos disponible en el Management Studio y vamos a realizar un ejemplo para realizar un plan de respaldos.



Para crear un nuevo plan seguimos los siguientes pasos:

1 click derecho en "Maintenance Plans" y seleccionamos "Maintenence Plan Wizard"

2 No aparecerá el asistente, a la primera ventana nos da una descripción de lo que se puede realizar, damos click en siguiente.


3 Vamos a dar nombre a la tarea e indicaremos si deseamos la programación de ejecución.


4 Nos muestra las opciones de planes de mantenimientos que podemos realizar, por cada tipo de mantenimiento es una configuración diferente que se nos mostrará. Para esta prueba solo seleccionaremos "Back Up Database (Full)"



5 Damos un ordenamiento de ejecución a las tares en caso que hayamos seleccionado mas de una.



6 Para las tareas de backup, tenemos que dar los parámetros propios para realizar el backup: Base de datos, destinos, ubicación, expiran, compresión entre otros.





7 Un resumen de las opciones seleccionadas para la creación.

8 Fin de la creación del Plan de Mantenimiento



Finalizado la creación del plan podemos visualizarlo ya en la consola de administración y ejecutar para que se realice el respaldo.


Listo, ya tiene un plan de mantenimiento para respaldos recuerda que también puedes crear otros planes  de mantenimiento para la base de datos.