Blog gratis
Reportar
Editar
¡Crea tu blog!
Compartir
¡Sorpréndeme!
img
img

 

 

SQL Server
Blog. (Apuntes y Recopilaciones) por Norman M. Pardell

img
img
22 de Febrero, 2011 · xpcmdshell

xp_cmdshell

 Ante la necesidad de usar xp_cmdshell, con un user no perteneciente a sysadmin, es necesario hacer uso del “proxy”, en SQL Server. Solo habilitaría xp_cmdshell, si fuera estrictamente necesario y como última opción. Ya que está deshabilitado de forma predeterminada, por razones de seguridad.

 

 Por darte un ejemplo; usuarios malintencionados pueden intentar darse o elevar sus privilegios, dentro del sitema, utilizando xp_cmdshell…

 

Paso1:

 

Para poder ejecutar xp_cmdshell se requiere habilitar su ejecución en la configuración del SQL Server utilizando el procedimiento almacenado sp_configure

 

EXEC sp_configure 'show advanced options', 1

GO

RECONFIGURE

GO

EXEC sp_configure 'xp_cmdshell', 1

GO

RECONFIGUREGO

 

 

Paso 2:

 

 Si usamos un usuario que pertenece a la función fija de servidor sysadmin, podemos ejecutar el procedimiento xp_cmdshell el cual utiliza la cuenta de servicio del SQL Server, para ejecutar los comandos del sistema.

 

 Por otro lado, cuando se llama a xp_cmdshell,  por un usuario que no pertenece a la función fija de servidor sysadmin, xp_cmdshell se conecta a Windows con el nombre de cuenta y contraseña, almacenadas en la credencial con el nombre ##xp_cmdshell_proxy_account##. Si no existe esta credencial de proxy, xp_cmdshell registrará errores.

 

 Para crear la credencial de cuenta de proxy, debe ejecutar sp_xp_cmdshell_proxy_account. Como argumentos, este procedimiento almacenado utiliza un nombre de usuario y una contraseña de Windows.

 

 Ejemplo:

 

            Exec sp_xp_cmdshell_proxy_account 'Dominio_o_maquinaUsuario', 'PasswDeUsuario'

 

 

 Paso 3:

 

 Si no pertenecemos a la función fija de servidor sysadmin solo debemos tener permiso de ejecución en el procedimiento almacenado xp_cmdshell (en la base de datos master ), y no hace falta asignar el permiso CONTROL SERVER como dice la ayuda, donde podremos ver ejemplos de su uso:

 

http://msdn.microsoft.com/en-us/library/ms175046.aspx

 

 

 Apunte realizado por Norman M. Pardell

 

Puedes consultarme, si deseas cualquier aclaración, pregunta o sugerencia en: Contacto, contestaré tan pronto como me sea posible.

publicado por normanmpardell a las 13:53 · Sin comentarios  ·  Recomendar
Comentarios (0) ·  Enviar comentario
Esta entrada no admite comentarios.
img
.Sobre mí
FOTO

Norman M. Pardell

MCITP: Database Administrator & Database Developer, SQL Server 2008. MCC Award Certificate. Consultor Senior de bases de datos en Capgemini España, S.L. Asesoramiento en implementación, desarrollo y gestión de bases de datos en grandes compañías. Actualmente, asignado a proyecto en compañía líder en el sector energético global. Más de 10 años trabajando con SQL Server (y otros gestores de BBDD)

» Ver perfil

img
.Secciones
» Inicio
img
.Enlaces
» Microsoft MSDN Foros
» Windows Server 2012
img
.Más leídos
» Asignar la cantidad correcta de Memoria para SQL Server
» Base de Datos Sospechosa (Suspect)
» Como modificar la Intercalación (Collation) en SQL Server
» Como renombrar una instancia de SQL Server. sp_dropserver. sp_addserver
» Detectar bloqueos. SQL Server V.2005 y superiores
» Funciones SQL Server. Funciones escalares y funciones con valores de tabla.
» Integridad y corrupción en las bases de datos: DBCC CHECKDB
» Log de transacciones ( .ldf ). SQL Server.
» Migrando SQL Server 2005, 2008, 2008 R2 a SQL Server 2012
» Transacciones activas. SQL server 2008
img
.Nube de tags [?]
                                                           
img img
FULLServices Network | Crear blog | Privacidad