SQLServer的job执行powershell或cmdexe碰到权限问题时的解决方法
答案是使用凭据。
凭据在SQLServer2008以后的版本可用。
CREATE CREDENTIAL cmdshell_agent WITH IDENTITY = 'account', SECRET = 'password';
GO
SELECT * FROM sys.credentials
使用凭据创建代理
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
还可以方便的配置代理
创建代理后就可以给job设定使用的代理