Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL代理作业-“;作为“运行”;下拉列表为空_Sql_Sql Server 2008_Proxy_Jobs_Agent - Fatal编程技术网

SQL代理作业-“;作为“运行”;下拉列表为空

SQL代理作业-“;作为“运行”;下拉列表为空,sql,sql-server-2008,proxy,jobs,agent,Sql,Sql Server 2008,Proxy,Jobs,Agent,为什么在我尝试设置SQL代理作业时,“运行方式”下拉列表总是空的?我正在尝试设置一些SQL代理作业以使用代理帐户运行。我是SQLAgentUserRole、SQLAgentTreadeRole和SQLAgentOperatorRole的成员。当我尝试向作业添加步骤时,我选择SQL Integration Services包,运行方式下拉列表为空 任何系统管理员都可以查看代理。难道我不能将代理用作SQLAgentUserRole、SQLAgentReaderRole和SQLAgentOperato

为什么在我尝试设置SQL代理作业时,“运行方式”下拉列表总是空的?我正在尝试设置一些SQL代理作业以使用代理帐户运行。我是SQLAgentUserRole、SQLAgentTreadeRole和SQLAgentOperatorRole的成员。当我尝试向作业添加步骤时,我选择SQL Integration Services包,运行方式下拉列表为空

任何系统管理员都可以查看代理。难道我不能将代理用作SQLAgentUserRole、SQLAgentReaderRole和SQLAgentOperatorRole的成员吗?我错过了什么

(代理帐户对子系统是活动的:SQL集成服务包,这是SQL Server 2008 R2)

编辑-


:“这些数据库角色(SQLAgentUserRole、SQLAgentReaderRole和SQLAgentOperatorRole)的成员可以查看和执行他们自己的作业,并创建作为现有代理帐户运行的作业步骤。”关于固定服务器角色的另一篇文章提到可以向代理授予访问权限,但没有提到如何做到这一点:。

否,你不应该。您刚才提到的角色的成员只能创建作为自己运行的作业,因为它们是非管理角色。如果要使用其他用户运行作业,则需要访问代理帐户。如果我没有弄错的话,唯一有权创建代理帐户的组是sysadmin,因此您需要一个管理员来为您创建代理帐户

sysadmin角色的成员具有创建以下作业步骤的权限: 不要指定代理,而是作为SQL Server代理运行 服务帐户,它是用于启动SQL Server的帐户 特工


我找到了答案。非系统管理员的用户必须有权访问明确授予其角色或用户名的代理帐户:

授予非系统管理员对代理帐户的访问权限

  • 在对象资源管理器中,展开服务器
  • 展开SQL Server代理
  • 展开代理,展开代理的子系统节点,右键单击要修改的代理,然后单击属性
  • 在“常规”页面上,您可以更改代理帐户名、凭据或其使用的子系统。在主体页面上,您可以添加或删除登录名或角色,以授予或删除对代理帐户的访问权

  • 编辑作业步骤时-切换到左侧的“高级”选项卡,不要使用主页上的下拉菜单
  • 确保用户被授予了作业数据库中的角色,即使他是“系统管理员”
  • (屏幕截图适用于SSMS 17)


    首先创建凭据,然后可以在代理级别下添加凭据。
    完成此操作后,您可以从sql service agent更改为凭据。

    感谢您回答Diego!我在我的问题中粘贴了一段来自MSDN的引用。引用说,即使我不是系统管理员,我也应该能够使用代理帐户运行作业。你是说这不是真的吗?我要求我的管理员在代理属性的主体页面上明确授予对代理的访问权。我们会看看它是否管用,管用。您可以添加对代理帐户的访问权限。您必须明确授予对主体页面上的角色或用户名的访问权限。复制粘贴我需要从哪个“子系统”展开?“代理”下的空文件夹@Alex取决于您如何运行作业,例如,如果您使用sqlcmd运行,您将在SQL Server Management Studio 18(2019)中选择“操作系统”。高级下没有
    运行方式。@Emaborsa“运行方式”存在(目前使用的是SSMS v18.4)。它仅在步骤是T-SQL步骤时可见,并且可能仅在作业所有者是系统管理员时可见。有关更多信息,请参阅sp_add_jobstep文档。