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

时间:2012-08-24 15:23:01

标签: sql sql-server-2008 proxy jobs agent

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

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

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

编辑 -

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

4 个答案:

答案 0 :(得分:15)

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

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

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

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

答案 1 :(得分:1)

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

  

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

答案 2 :(得分:1)

  1. 在编辑作业步骤-切换到左侧的“高级”标签时,请勿使用主页上的下拉菜单。
  2. 即使用户是“系统管理员”,也要确保该用户在作业数据库中被授予角色

答案 3 :(得分:0)

首先创建凭据,然后您将能够在代理级别下添加它。 完成此操作后,您可以从 sql 服务代理更改为凭据。