Ryg*_*guy 5 sql-server sql-server-agent
我试图让 SQL Server 代理运行带有参数的程序(作为操作系统 CmdExec 作业步骤),但每次运行该作业时,我都会收到以下错误:无法为作业的步骤 1 创建进程,原因:访问被拒绝)。
我在网上所做的研究表明这可能是权限问题。我在 Windows 中设置了一个新的用户帐户,并授予它对我想要运行的程序的完全权限,然后将此用户配置文件映射到 MS SQL 中的 SQLSERVERAGENT 配置文件,但我仍然收到此错误。
任何对此的帮助将不胜感激。
小智 5
以上步骤对我有用
Enable XP_cmdshell
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'xp_cmdshell', 1
GO
RECONFIGURE
GO
Run Code Online (Sandbox Code Playgroud)
创建凭证
CREATE CREDENTIAL cmdshell_agent WITH IDENTITY = 'account_name', SECRET = 'password';
GO
Run Code Online (Sandbox Code Playgroud)
创建代理
USE [msdb]
GO
EXEC msdb.dbo.sp_add_proxy @proxy_name=N'tst_Proxy',@credential_name=N'cmdshell_agent', @enabled=1
GO
EXEC msdb.dbo.sp_grant_proxy_to_subsystem @proxy_name=N'tst_Proxy', @subsystem_id=3
GO
Run Code Online (Sandbox Code Playgroud)
之后,在 sql 代理作业中使用 tst_proxy 来运行该作业。作业运行成功
小智 1
首先,您需要确保允许 XP_CMDSHELL。
exec sp_configure 'xp_cmdshell',1
go
reconfigure
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26174 次 |
| 最近记录: |