使用 SQL Server Agent - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用 SQL Server Agent

借助 Amazon RDS,您可以在运行 Microsoft SQL Server 企业版、标准版或 Web 版的数据库实例上使用 SQL Server Agent。SQL Server Agent 是一项 Microsoft Windows 服务,可运行计划的管理任务,即所谓的作业。您可以使用 SQL Server Agent 运行 T - SQL 作业,以在 SQL Server 数据库实例中重新生成索引、运行损坏检查和聚合数据。

创建 SQL Server 数据库实例时,主用户名会以 SQLAgentUserRole 角色登记。

SQL Server Agent 可以按照时间表运行作业,对特定事件或需求做出响应。有关详细信息,请参阅 Microsoft 文档中的 SQL Server Agent

注意

避免在数据库实例维护和备份 Windows 期间计划运行作业。由 Amazon 启动的维护和备份过程可能会中断作业或导致作业取消。

要查看 SQL Server Management Studio (SSMS) 中单个 SQL Server Agent 作业的历史记录,需打开 Object Explorer,右键单击此作业,然后选择 View History

SQL Server Agent 正在数据库实例中的托管主机上运行,因此不支持某些操作:

  • 不支持使用 ActiveX、Windows Command Shell或 Windows PowerShell 运行复制作业和命令行脚本。

  • 无法手动启动、停止或重新启动 SQL Server Agent。

  • 无法从数据库实例获取通过 SQL Server Agent 发出的电子邮件通知。

  • 不支持 SQL Server Agent 提示和运算符。

  • 不支持使用 SQL Server Agent 创建备份。用 Amazon RDS 备份数据库实例。

将用户添加到 SQLagentUser 角色

要允许其他登录名或用户使用 SQL Server Agent,须以主用户的身份登录并执行以下操作:

  1. 使用 CREATE LOGIN 命令创建另一个服务器级别的登录名。

  2. 使用 CREATE USER 命令在 msdb 内创建一个用户,然后将此用户链接到上一步骤中创建的登录名。

  3. 使用 sp_addrolemember 系统存储过程将用户添加到 SQLAgentUserRole

例如,假设您的主用户名为 admin,并且您要授予一个用户对 SQL Server Agent 的访问权限,此用户的用户名为 theirname,密码为 theirpassword

要将用户添加到 SQLagentUser 角色

  1. 以主用户身份登录。

  2. 运行以下命令:

    --Initially set context to master database USE [master]; GO --Create a server-level login named theirname with password theirpassword CREATE LOGIN [theirname] WITH PASSWORD = 'theirpassword'; GO --Set context to msdb database USE [msdb]; GO --Create a database user named theirname and link it to server-level login theirname CREATE USER [theirname] FOR LOGIN [theirname]; GO --Added database user theirname in msdb to SQLAgentUserRole in msdb EXEC sp_addrolemember [SQLAgentUserRole], [theirname];

删除 SQL Server Agent 作业

您可以使用 sp_delete_job 存储过程删除 Amazon RDS for Microsoft SQL Server 上的 SQL Server Agent 作业。

不能使用 SSMS 删除 SQL Server Agent 作业。如果您尝试这样做,就会收到类似于以下内容的错误消息:

The EXECUTE permission was denied on the object 'xp_regread', database 'mssqlsystemresource', schema 'sys'.

作为托管服务,RDS 在运行访问 Windows 注册表的过程时受到了限制。使用 SSMS 时,其会尝试运行没有 RDS 授权的进程 (xp_regread)。

注意

在 RDS for SQL Server 中,您只能删除由同一登录名创建的 SQL Server Agent 作业。

要删除 SQL Server Agent 作业

  • 运行以下 T-SQL 语句:

    EXEC msdb..sp_delete_job @job_name = 'job_name';