Agent 第三篇:执行Step的权限

执行Job Step需要特定的安全上下文,设置Job Step执行的权限,主要分两种:第一种是使用Proxy,第二种是使用Step Owner或Agent 服务账户的权限。除了执行TSQL Script的Step之外,对于其他类型的Step都需要Proxy的权限上下文来执行。

一,使用Proxy来执行Job Step

同故宫Proxy的权限上下文来执行Job Step,请阅读《凭证和代理

二,执行TSQL 脚本

当Job Step的类型是Transact-SQL Script时,不使用Proxy来执行。该类型的Step用于执行TSQL脚本,访问的资源都是在SQL Server实例内部,因此,不需要使用Agent Proxy,Job Step的执行还是需要在特定的安全上下文中,它是以SQL Server Agent 服务账户或Job Owner的权限上下文执行TSQL脚本。

当Job Step的类型是TSQL脚本时,Job Step是在什么安全上下文中?这取决于Job Owner。

如果Job的Owner是sysadmin角色的成员,那么Step以SQL Server Agent的服务账户来执行;否则,以Job Owner的权限上下文来执行。

但是,如果Job Owner是sysadmin角色的成员,也可以模拟其他用户的权限,指定其他用户的方式有两种:

第一种方式:在TSQL 脚本中,使用 EXECUTE AS USER='XXX' 来模拟用户的权限

第二种方式:在Step的Advanced 属性中,设置 Run as user 属性来模拟用户的权限

 如果你是sysadmin角色的成员,你可以使用通过设置Run as user来以不同的SQL login来执行job step.

参考文档:

Manage Job Steps

posted @ 2020-05-19 22:15  悦光阴  阅读(60)  评论(0编辑  收藏