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

问题描述 投票:14回答:3

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

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

(代理帐户对子系统是活动的:SQL Integration Service Packages,这是SQL Server 2008 R2)

编辑 -

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

sql sql-server-2008 proxy jobs agent
3个回答
15
投票

我找到了答案。非sysadmin的用户必须能够访问显式授予其角色或用户名的代理帐户:

授予非sysadmins代理帐户的访问权限

  1. 在对象资源管理器中,展开服务器。
  2. 展开SQL Server代理。
  3. 展开代理,展开代理的子系统节点,右键单击要修改的代理,然后单击“属性”。

在“常规”页面上,您可以更改代理帐户名称,凭据或其使用的子系统。在“主体”页面上,您可以添加或删除登录名或角色以授予或删除对代理帐户的访问权限。

http://msdn.microsoft.com/en-us/library/ms187890(v=sql.100).aspx


1
投票

不,你不应该。您刚才提到的角色的成员只能创建以自己身份运行的作业,因为它们是非管理角色。如果要使用antoher用户运行作业,则需要访问代理帐户。如果我没有弄错,唯一有权创建代理帐户的组是sysadmin,所以你需要一个管理员为你做这件事。

sysadmin角色的成员有权创建未指定代理的作业步骤,而是作为SQL Server代理服务帐户运行,该帐户是用于启动SQL Server代理的帐户。


1
投票
  1. 编辑作业步骤时 - 切换到左侧的“高级”选项卡,不要使用主页上的下拉列表。
  2. 确保用户在作业数据库中被授予角色,即使他是“sysadmin”
© www.soinside.com 2019 - 2024. All rights reserved.