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
- Ingresar localmente al servidor (no se puede hacer esta operación remotamente)
- Abrir una instancia del SQL Server Management Studio iniciada como administrador local usando la opción “RUN AS ADMINISTRATOR” (ejecutar como administrador).
- 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
0 Comentarios