SQL Server Agent 角色
RDS for SQL Server 支持以下 SQL Server Agent 角色,这些角色具有不同的权限级别来管理作业:
SQLAgentUserRole
权限
创建和管理自己的作业、计划和操作员
查看自己的作业和计划的属性
无法查看或管理由其他用户创建的作业
此角色适用于需要创建和管理自己的作业,但不需要访问由其他用户创建的作业的用户。
-
SQLAgentReaderRole
权限
SQLAgentUserRole 的所有权限
查看所有作业和计划(包括其他用户创建的作业和计划)的列表
查看所有作业的属性
查看作业历史记录
此角色适用于需要监控所有作业的状态但不需要管理这些作业的用户。
-
SQLAgentOperatorRole
权限
SQLAgentUserRole 和 SQLAgentReaderRole 的所有权限
执行、停止或启动作业
管理作业历史记录
启用/禁用作业和计划
查看操作员和代理
此角色提供最全面的权限,适合需要完全控制所有作业的用户。
使用以下命令将角色分配给您的 SQL Server 登录名:
USE msdb; EXEC sp_addrolemember 'SQLAgentOperatorRole', '
username
';
在 RDS for SQL Server 中管理 SQLAgentOperatorRole
要查看当前作业,必须将 SQLAgentOperatorRole 添加到 SQL Server 登录名,并在断开与数据库的连接之前将其移除。
要在 SQL Server Management Studio 中可视化 SQL Server Agent 树,请按照以下说明操作:
在 SQL Server Management Studio(SSMS)上查看 SQL Server Agent
-
使用 RDS 主凭证,登录 RDS SQL Server 实例并向所需用户授予 SQLAgentUserRole。
USE msdb GO IF NOT EXISTS(SELECT name FROM sys.database_principals WHERE name = 'UserName') BEGIN CREATE USER UserName FROM LOGIN UserName END GO ALTER ROLE SQLAgentUserRole ADD MEMBER UserName GO GRANT ALTER ON ROLE::[SQLAgentOperatorRole] to UserName GO
如果该用户不存在,则这些命令会在
msdb
数据库上创建该用户。它还会在 SQLAgentUserRole 上添加用户,因此可以看到 SSMS 上的 SQL Server Agent 树。最后,它向用户授予对 SQLAgentOperatorRole 的更改权限。这可让用户在该角色中添加/移除自身。 -
要将自己添加到上述角色中,请使用需要查看作业的用户连接到 RDS SQL Server 实例,然后运行以下脚本。
use msdb go ALTER ROLE SQLAgentOperatorRole ADD MEMBER UserName GO
之后,右键单击作业文件夹,然后选择刷新。
-
执行此操作时,作业选项卡会显示一个 +(加号)按钮。单击可展开 SQL Server Agent 作业列表。
-
重要
在断开与 RDS SQL Server 实例的连接之前,您需要将自己从 SQLAgentOperatorRole 中移除。
要从 SQLAgentOperatorRole 中移除登录名,请在断开或关闭 Management Studio 之前运行以下查询:
USE msdb GO ALTER ROLE SQLAgentOperatorRole DROP MEMBER UserName GO
有关更多信息,请参阅 Leveraging SQLAgentOperatorRole in RDS SQL Server