Alternativas de solución al error producido al crear la cuenta proxy Msg 15137, Level 16, State 1, Procedure sp_xp_cmdshell_proxy_account, Line 1. An error occurred during the execution of sp_xp_cmdshell_proxy_account. Possible reasons: the provided account was invalid or the ‘##xp_cmdshell_proxy_account##’ credential could not be created. Error code: ‘5’.

NOTA: Se asume que el usuario de Windows y la contraseña usados en la credencial son correctos.

El problema al crear la credencial ##xp_cmdshell_proxy_account##

Para crear la credencial de la cuenta de proxy  hay que ejecutar el stored procedure sp_xp_cmdshell_proxy_account con un usuario que pertenece al rol sysadmin. En los parámetros debemos indicar el nombre del usuario y la contraseña de Windows de la cuenta proxy.

Por ejemplo:


-- Asigno la proxy account
EXEC sp_xp_cmdshell_proxy_account
N'sqltotal\mariano',
N'<Contraseña>'

 

Si esta sentencia se ejecuta localmente en la instancia y en un SQL Server Management Studio utilizando privilegios elevados el UAC (User Acount Control o control de cuentas de usuario) permite asignar el usuario y la contraseña sin problemas.

Pero si no se posee estos privilegios elevados el resultado es:

Msg 15137, Level 16, State 1, Procedure sp_xp_cmdshell_proxy_account, Line 1
An error occurred during the execution of sp_xp_cmdshell_proxy_account. 
Possible reasons: the provided account was invalid or the '##xp_cmdshell_proxy_account##' 
credential could not be created. Error code: '5'.

Aquí nos encontramos con un nuevo problema que no suele verse en la documentación. No podemos asignar el usuario y la contraseña a la cuenta proxy aunque el usuario que utilizamos es sysadmin del SQL Server. Esto ocurre porque no se ejecuta el SQL Server Management Studio como administrador y alguna llamada a la API falla.

Solución

Para solucionarlo y asignar la credencial tenemos dos alternativas:

  • Alternativa 1
    1. Ingresar localmente al servidor (no se puede hacer esta operación remotamente)
    2. Abrir una instancia del SQL Server Management Studio iniciada como administrador local usando la opción “RUN AS ADMINISTRATOR” (ejecutar como administrador).
    3. Ejecutar el comando anterior (EXEC sp_xp_cmdshell_proxy_account….)  para crear la credencial
  • Alternativa 2
    Utilizar la sentencia CREATE CREDENTIAL para crear la credencial ##xp_cmdshell_proxy_account##. Esta alternativa no requiere ingresar localmente a la instancia y ni elevar los privilegios al ejecutarla en el Management Studio. Solo requiere pertenecer al rol sysadmin

Ejemplo de alternativa 2:

create credential ##xp_cmdshell_proxy_account##
with
identity = 'sqltotal\mariano',
secret = '<Contraseña>'

 

Referencias

Troubleshooting sp_xp_cmdshell_proxy_account Errors

 


Dejá un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.