提问人:Brute 提问时间:6/29/2022 最后编辑:Brute 更新时间:6/30/2022 访问量:504
如何解决“...执行xp_cmdshell时出错“?
How to resolve "...Error occurred during the execution of xp_cmdshell"?
问:
工程师使用这个基于 Access 的应用程序从 SQL Server 2005 获取数据。
用户下载包含零件等详细信息的文件,进行修改并重新上传。上传(签入)文件时,修改日期、userId 等信息存储在 SQL Server 中。当用户尝试签入时,他们会遇到以下错误:
在家工作并使用远程桌面连接登录其帐户的用户是唯一面临此错误的用户。办公网络上的用户不会收到此错误。
我尝试创建一个代理帐户并向用户授予访问权限,但这不起作用。
在查询下方,我收到以下错误:
消息 156,级别 15,状态 1,第 5
行 关键字“GRANT”附近的语法不正确。消息 102,级别 15,状态 1,第 5
行“SIDNEY\UsersWindowsLoginId”附近的语法不正确。消息 102,级别 15,状态 1,第 9
行“UsersWindowsLoginId”附近的语法不正确
查询:
CREATE LOGIN UsersWindowsLoginId
GRANT EXECUTE ON xp_cmdshell TO 'SIDNEY\UsersWindowsLoginId';
EXEC sp_xp_cmdshell_proxy_account 'UsersWindowsLoginId'
USE master;
GRANT CONTROL SERVER TO 'UsersWindowsLoginId'
GO
此外,这似乎是最近出现的现象,因为用户已经在家工作了一段时间。
任何帮助都是值得赞赏的。谢谢!
答:
0赞
Aravind Aravind
6/29/2022
#1
首先为运行xp_cmdshell启用高级选项,为此需要更改 1,下面查询才能启用。试试这个
USE [DatabaseName]
GO
-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1;
GO
-- To update the currently configured value for advanced options.
RECONFIGURE;
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1;
GO
-- To update the currently configured value for this feature.
RECONFIGURE;
GO
谢谢和问候 阿拉文德
评论
0赞
Brute
6/30/2022
我已经这样做了,将选项更改为 1。当我这样做时,它显示“......从 1 更改为 1”
评论
xp_cmdshell
xp_cmdshell
CREATE LOGIN UsersWindowsLoginId
语法不正确,在这种情况下任何情况都没有意义,您需要使用“控制面板”中的“用户帐户”选项卡在 Windows 中创建实际登录名。我也认为没有必要。net user
GRANT CONTROL SERVER