本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2014 中创建 SQL Server 代理代理。
SQL Server 代理帐户定义了作业步骤运行的安全上下文。 每个代理对应于安全凭据。 若要为特定作业步骤设置权限,请创建具有 SQL Server 代理子系统所需权限的代理,然后将该代理分配给作业步骤。
本主题内容
准备工作:
若要创建 SQL Server 代理代理,请使用:
在您开始之前
局限性与限制
创建代理之前,必须先创建凭据(如果尚不可用)。
SQL Server 代理使用凭据来存储有关 Windows 用户帐户的信息。 凭据中指定的用户必须在运行 SQL Server 的计算机上具有“以批处理作业身份登录”权限。
SQL Server 代理检查代理的子系统访问权限,并在每次运行作业步骤时授予对代理的访问权限。 如果代理不再有权访问子系统,则作业步骤将失败。 否则,SQL Server 代理将伪装为在代理中指定的用户并执行作业步骤。
创建代理不会更改在代理凭据中指定的用户的权限。 例如,可以为无权连接到 SQL Server 实例的用户创建代理。 在这种情况下,使用该代理的作业步骤无法连接到 SQL Server。
如果用户的登录名有权访问代理,或者用户属于有权访问代理的任何角色,则用户可以在作业步骤中使用代理。
安全
权限
只有 sysadmin 固定服务器角色的成员有权创建、修改或删除代理帐户。 非 sysadmin 固定服务器角色成员的用户必须添加到 msdb 数据库中以下 SQL Server 代理固定数据库角色之一,才能使用代理:SQLAgentUserRole、SQLAgentReaderRole 或 SQLAgentOperatorRole。
如果除了代理之外还要创建凭证,则需要
ALTER ANY CREDENTIAL
权限。
使用 SQL Server Management Studio
创建 SQL Server 代理
在 对象资源管理器中,单击加号以展开要在 SQL Server 代理上创建代理的服务器。
单击加号以展开 SQL Server 代理。
右键单击 代理 文件夹,然后选择“新建代理”。
在“”新建代理帐户“ 对话框中的”常规“页上,在 代理名称 框中输入代理帐户的名称。
在 凭据名称 框中,输入代理帐户将使用的安全凭据的名称。
在 描述 框中,输入代理帐户的描述
在 “活动”下的以下子系统下,为此代理选择适当的子系统或子系统。
在 主体 页上,添加或删除登录名或角色,以授予或删除对代理帐户的访问权限。
完成后,单击 “确定” 。
使用 Transact-SQL
创建 SQL Server Agent 代理
在 “对象资源管理器” 中,连接到某个数据库引擎实例。
在标准栏上,单击“新建查询”。
将以下示例复制并粘贴到查询窗口中,然后单击 执行。
-- creates credential CatalogApplicationCredential USE msdb ; GO CREATE CREDENTIAL CatalogApplicationCredential WITH IDENTITY = 'REDMOND/TestUser', SECRET = 'G3$1o)lkJ8HNd!'; GO -- creates proxy "Catalog application proxy" and assigns the credential 'CatalogApplicationCredential' to it. EXEC dbo.sp_add_proxy @proxy_name = 'Catalog application proxy', @enabled = 1, @description = 'Maintenance tasks on catalog application.', @credential_name = 'CatalogApplicationCredential' ; GO -- grants the proxy "Catalog application proxy" access to the ActiveX Scripting subsystem. EXEC dbo.sp_grant_proxy_to_subsystem @proxy_name = N'Catalog application proxy', @subsystem_id = 2 ; GO
有关详细信息,请参见: