我想知道是否有一种简单的方法可以使用 TSQL 代码检查每个作业步骤的“运行方式”值,而不是打开服务器上的每个作业和每个单独的步骤?我不知道从哪里获取这些数据,我已经在 MSDB 中搜索过,但在 sysjobs 和相关表中找不到任何内容?SQL 必须将该值存储在某处。问题是在哪里?
这应该会让您关闭,如果 ProxyName 为 NULL,则它正在使用 SQL Server 代理凭据。
USE msdb
SELECT J.job_id
, J.name
, S.step_name
, S.step_id
, P.name AS ProxyName
, SP.name AS CredentialUserName
, SP.type_desc AS CredentialUserType
FROM msdb.dbo.sysjobs J
INNER JOIN msdb.dbo.sysjobsteps S ON S.job_id = J.job_id
LEFT OUTER JOIN msdb.dbo.sysproxies P ON P.proxy_id = S.proxy_id
LEFT OUTER JOIN sys.server_principals SP ON SP.sid = P.user_sid
Run Code Online (Sandbox Code Playgroud)