检查这句中, 映射使用的用户权限的设置是否正确
set @cmdstr1='net use z: '+@cmdstr1

解决方案 »

  1.   

    xp_cmdshell 會同步運作。要等到命令的 shell 命令完成之後,才會交回控制權。授權讓使用者執行時,只要執行 Microsoft SQL Server™ 的帳戶有執行權限,使用者就可以在 Microsoft Windows NT® 命令 shell 執行任何作業系統的命令。根據預設值,只有 sysadmin 固定伺服器角色的成員才能執行這個延伸預存程序。不過,您可以授權讓其他使用者執行這個預存的程序。當 sysadmin 固定伺服器角色成員使用者叫用 xp_cmdshell,xp_cmdshell 將在 SQL Server 服務執行下的安全內容下執行。當使用者不是 sysadmin 群組成員時,xp_cmdshell 會模擬「SQL Server 代理程式」Proxy 帳戶,此帳戶是用 xp_sqlagent_proxy_account 命令進行指定。假如沒有 Proxy 帳戶,xp_cmdshell 命令將會失敗。這種狀況只有在 Microsoft® Windows NT® 4.0 和 indows 2000 作業系統才會發生。在 Windows 9.x 之下,沒有這樣的模擬,同時,xp_cmdshell 會在啟動 SQL Server 的 Windows 9.x 使用者的安全內容下執行。附註  在先前的版本中,被授予執行 xp_cmdshell 的使用者要在 MSSQLServer 服務的使用者帳戶執行。可將 SQL Server 設定 (透過設定選項) 成讓沒有 SQL Server sa 存取權的使用者能夠在 SQLExecutiveCmdExec Windows NT 帳戶中執行 xp_cmdshell。在 SQL Server 7.0 中,此帳戶叫做 SQLAgentCmdExec。不是 sysadmin 固定伺服器角色成員的使用者現在可以在此帳戶中執行命令,而不必指定設定變更。
    權限
    xp_cmdshell 的執行權限預設為 sysadmin 固定伺服器角色的成員,但是可授予其他使用者。
    重要事項   如果您選擇使用的 Windows NT 帳戶不是 MSSQLServer 服務的本機管理員群組的成員,不是 sysadmin 固定伺服器角色成員的使用者就不能執行 xp_cmdshell。
      

  2.   

    错误 5 来自 CreateProcess(第 675 行)
    ==========
    第 675 行的内容是什么?
      

  3.   

    我查看了一下角色,我的那个用户是sysadmin角色,但是就是不能执行sp_cmdshell
      

  4.   

    权限问题   你的sql server的运行权限 没有到达 system 
    你在服务运行权限 里面看
      

  5.   

    不要用LocalSystem启动SQL Server,用管理员帐户
      

  6.   

    这样试试:use master
    goxp_sqlagent_proxy_account N'SET'
                            , N'<mydomain>'
                            , N'<ntuser>'
                            , N'<ntuser password>'go-- retrieve the proxy account to check that it's correct.
    xp_sqlagent_proxy_account N'GET'
    go-- grant database access in master
    sp_grantdbaccess '数据库用户'
    gogrant exec on xp_cmdshell to 数据库用户
    gogood luck!