【问题标题】:Stored procedure with EXECUTE AS cannot run xp_cmdshell带有 EXECUTE AS 的存储过程无法运行 xp_cmdshell
【发布时间】:2013-05-27 10:28:43
【问题描述】:

我有一个 sql server 用户,proxyAccount,我配置为xp_cmdshell_proxy_account

在一个存储过程中我使用xp_cmdshell,当我用这个帐户执行存储过程时,一切正常。

但是,如果我添加:

WITH EXECUTE AS 'proxyAccount'

到存储过程,执行时出现如下错误:

xp_cmdshell 代理帐户信息无法检索或无效。验证“##xp_cmdshell_proxy_account##”凭据是否存在并包含有效信息。

可能是什么问题?为什么 proxyAccount 在设置为 EXECUTE AS 时无法运行 xp_cmdshell,但在其他情况下却能够运行它?

【问题讨论】:

    标签: sql-server-2008 impersonation xp-cmdshell


    【解决方案1】:

    问题通过以下步骤解决:

    1. 创建使用 Windows 身份验证(不使用 SQL Server 身份验证)的新帐户
    2. 将此新帐户设置为 xp_cmdshell 代理
    3. 将 xp_cmdshell 权限授予旧的 proxyAccount

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-02
      • 2023-04-02
      • 2014-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-08
      相关资源
      最近更新 更多