SQL Server 代理管理的安全性
SQL Server 代理在 msdb 数据库中引入了 SQLAgentUserRole、SQLAgentReaderRole 和 SQLAgentOperatorRole 固定数据库角色,用于控制非 sysadmin 固定服务器角色成员的用户对 SQL Server 代理的访问。除了这些固定数据库角色之外,子系统和代理还有助于数据库管理员确保每个作业步骤运行时都具有执行其任务所需的最低权限。
角色
msdb 数据库中的 SQLAgentUserRole、SQLAgentReaderRole 和 SQLAgentOperatorRole 固定数据库角色的成员,以及 sysadmin 固定服务器角色的成员具有访问 SQL Server 代理的权限。不属于这些角色的用户不能使用 SQL Server 代理。有关 SQL Server 代理使用的角色的详细信息,请参阅 实现 SQL Server 代理安全性。
代理
SQL Server 代理使用代理管理安全上下文。一个代理可用于多个作业步骤。sysadmin 固定服务器角色的成员可创建代理。
每个代理对应于一个安全凭据。每个代理都可与一组子系统和一组登录名相关联。代理仅可用于使用与该代理相关联的子系统的作业步骤。若要创建使用特定代理的作业步骤,作业所有者必须使用与此代理相关联的登录名,或者是对代理具有无限访问权限的角色成员。sysadmin 固定服务器角色的成员可以无限制地访问代理。SQLAgentUserRole、SQLAgentReaderRole 或 SQLAgentOperatorRole 的成员仅能使用授予他们特定访问权限的代理。这些 SQL Server 代理固定数据库角色的每个成员用户必须获得访问特定代理的权限,才能创建使用那些代理的作业步骤。