我正在尝试查找有关 SQL Server Express 中是否存在无法运行 sp_xp_cmdshell_proxy_account 和为 cmdshell 命令添加代理帐户的限制的信息?
因为我尝试使用过程添加凭据时出现错误,但我可以在服务器选项 -> 安全中添加它。但即使通过服务器选项添加,我也可以看到它存在,它仍然会使用运行 SQL Server 服务的用户执行 CMD 命令。
SQL Server Express 版本 15.0.2070
以下是我遇到的一些错误。
Msg 15137, Level 16, State 1, Procedure sp_xp_cmdshell_proxy_account, Line 1 [Batch Start Line 6]
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(Access is denied.), Error Status: 0.
当我收到该错误时,我按照一些提示操作,您应该使用“以管理员身份运行”来启动 SSMS。但我仍然收到相同的错误。
然后我用这个命令创建了凭证。
create credential ##xp_cmdshell_proxy_account## with identity = ‘Domain\DomainUser’, secret = ‘password’
该命令运行没有错误,但 cmd 执行仍然在服务帐户而不是代理上运行。
是否有人知道 sp_xp_cmdshell_proxy_account 或代理帐户是否在 SQL Server Express 实例上运行?如果是,我可能做错了什么?
答案1
是的,你可以使用它。或者,你可以授予已分配 SQL 用户的角色访问权限。你可以使用 GRANT 来执行相同操作