• job owner的权限和sql agent start account权限在job调用和job执行的各个阶段起什么作用?


    1.job   owner应该设成谁?
    2.sql   agent   account应该设成谁?
    3.共享文件夹的帐户应该开放给谁?
    4.什么时候会用到sql   agent   account的权限?
    5.什么时候会用到job   owner的权限?

    当job step是T-SQL step,如果job owner在本地sysadmin固定服务器角色中,  step将会在Sql Server Agent service的账户下运行.否则将以job owner身份执行,不论谁启动的这个job.

    当job step是CmdExec or ActiveXScript job step,如果 job owner在本地sysadmin固定服务器角色中,  step将会在Sql Server Agent service的账户下运行.否则 step 将会在Proxy Account下运行,如果proxy account没有配置,step将失败(Agent 属性中的job system 标签页配置)。当然,如果proxy account配为没有访问网络上其他机器权限的用户也将失败。

    当你通过job执行DTS时,job step是CmdExec step.假设你Job owner是sa,那就需要把 Agent service的账户设为可以访问网络其他机器的windows用户;如果你Job owner不是属于sysadmin角色,那需要把proxy account配为有访问网络上其他机器权限的用户。

    -----------------------------------------------------------------------------------

    sp_start_job
    指示   SQL   Server   代理程序立即执行作业。

    语法
    sp_start_job   [@job_name   =]   'job_name '   |   [@job_id   =]   job_id
            [,[@error_flag   =]   error_flag]
            [,[@server_name   =]   'server_name ']
            [,[@step_name   =]   'step_name ']
            [,[@output_flag   =]   output_flag]

    参数
    [@job_name   =]   'job_name '

    是要启动的作业名。必须指定   job_id   或   job_name   两者之一,但不能同时指定两者。job_name   的数据类型为   sysname,默认设置为   NULL。

    [@job_id   =]   job_id

    是要启动的作业标识号。必须指定   job_id   或   job_name   两者之一,但不能同时指定两者。job_id   的数据类型为   uniqueidentifier,默认设置为   NULL。

    [@error_flag   =]   error_flag

    保留。  

    [@server_name   =]   'server_name '

    是要启动作业的目标服务器。server_name   的数据类型是   nvarchar(30),默认设置为   NULL。server_name   必须是作业当前的目标服务器之一。

    [@step_name   =]   'step_name '

    是开始执行作业的步骤名。只适用于本地作业。step_name   的数据类型是   sysname,默认设置为   NULL。

    [@output_flag   =]   output_flag

    保留。

    返回代码值
    0(成功)或   1(失败)

    结果集


    权限
    执行权限默认授予   msdb   数据库中的   public   角色。可执行此存储过程而且是   sysadmin   固定角色成员的用户可以启动任何作业。不是   sysadmin   角色成员的用户使用   sp_start_job   只能启动他/她所拥有的作业。

    当   sysadmin   固定服务器角色成员的用户唤醒调用   sp_start_job   时,sp_start_job   将在   SQL   Server   服务正在其中运行的安全上下文中执行。当用户不是   sysadmin   固定服务器角色的成员时,sp_start_job   将模拟   SQL   Server   代理代理帐户,而该帐户是通过   xp_sqlagent_proxy_account   指定的。如果代理帐户不可用,则   sp_start_job   将失败。只有   Microsoft®   Windows   NT®   4.0   和   Windows   2000   有上述情况。在   Windows   9.x   上没有模拟,而且   sp_start_job   总是在启动   SQL   Server   的   Windows   9.x   用户的安全上下文中执行。

    示例
    下例启动名为   Nightly   Backup   的作业。

    USE   msdb
    EXEC   sp_start_job   @job_name   =   'Nightly   Backup '
    -----------------------------------------------------------------------------------

    sp_update_jobschedule
    更改指定作业的调度设置。

    语法
    sp_update_jobschedule   [@job_id   =]   job_id,   |   [@job_name   =]   'job_name ',
            [@name   =]   'name '
            [,   [@new_name   =]   'new_name ']
            [,   [@enabled   =]   enabled]
            [,   [@freq_type   =]   freq_type]
            [,   [@freq_interval   =]   freq_interval]
            [,   [@freq_subday_type   =]   freq_subday_type]
            [,   [@freq_subday_interval   =]   freq_subday_interval]
            [,   [@freq_relative_interval   =]   freq_relative_interval]
            [,   [@freq_recurrence_factor   =]   freq_recurrence_factor]
            [,   [@active_start_date   =]   active_start_date]
            [,   [@active_end_date   =]   active_end_date]
            [,   [@active_start_time   =]   active_start_time]
            [,   [@active_end_time   =]   active_end_time]

    参数
    [@job_id   =]   job_id

    是调度所属于的作业的标识号。job_id   的数据类型为   uniqueidentifier,其默认值为   NULL。

    [@job_name   =]   'job_name '

    是调度所属于的作业的名称。各作业名称都必须是唯一的。job_name   的数据类型为   sysname,其默认值为   NULL。


    说明     必须或者指定   job_id   或者指定   job_name,但不能两个都指定。


    [@name   =]   'name '

    是要修改的调度的名称。name   的数据类型为   sysname,无默认值。

    [@new_name   =]   'new_name '

    是调度的新名称。new_name   的数据类型为   sysname,其默认值为   NULL。

    [@enabled   =]   enabled

    指定启用   (1)   或不启用   (0)   调度。enabled   的数据类型为   tinyint,其默认值为   NULL。

    [@freq_type   =]   freq_type

    指定该作业运行的频繁程度。freq_type   的数据类型为   int,其默认值为   NULL,且可以取下列值之一。

    值   描述  
    1   一次。  
    4   按天。  
    8   按星期。  
    16   按月。  
    32   按月,相对于   freq_interval。  
    64   当   SQL   Server代理启动时运行。  
    128   当计算机空闲时运行。  


    [@freq_interval   =]   freq_interval

    指定作业在哪一天运行。freq_interval   的数据类型为   int,其默认值为   NULL。freq_interval   的值取决于   freq_type   的值。

      freq_type   的值   对   freq_interval   的影响  
    1(一次)   未使用   freq_interval。  
    4(每天)   每个   freq_interval   日。  
    8(每周)   freq_interval   是下列某个值或多个值(或   (OR)   在一起):  
    1   =   星期日
    2   =   星期一
    4   =   星期二
    8   =   星期三
    16   =   星期四
    32   =   星期五
    64   =   星期六
     
    16(每月)   每月的   freq_interval   日。  
    32(每月相对信息)   freq_interval   可以取下列值之一:  
    1   =   星期日  
    2   =   星期一  
    3   =   星期二  
    4   =   星期三  
    5   =   星期四  
    6   =   星期五  
    7   =   星期六  
    8   =   日  
    9   =   工作日
    10   =   周末
     
    64(SQL   Server   代理程序启动时)   未使用   freq_interval。  


    [@freq_subday_type   =]   freq_subday_type

    指定   freq_subday_interval   的单位。freq_subday_type   的数据类型为   int,其默认值为   NULL,且可以取下列值之一。

    值   描述(单位)  
    0x1   在指定的时间。  
    0x4   分钟。  
    0x8   小时。  


    [@freq_subday_interval   =]   freq_subday_interval

    指定作业每次执行之间的周期数,周期以   freq_subday_type   为单位。freq_subday_interval   的数据类型为   int,其默认值为   NULL。

    [@freq_relative_interval   =]   freq_relative_interval

    当   freq_interval   的值为   32(每月相对信息)时,指定每月调度作业发生的   freq_interval。freq_relative_interval   的数据类型为   int,其默认值为   NULL,且可以取下列值之一。

    值   描述(单位)  
    1   第一个  
    2   第二个  
    4   第三个  
    8   第四个  
    16   最后一个  


    [@freq_recurrence_factor   =]   freq_recurrence_factor

    指定作业各次调度执行之间的月数。freq_recurrence_factor   仅当   freq_type   为   8、16   或   32   时才使用。freq_recurrence_factor   的数据类型为   int,其默认值为   NULL。

    [@active_start_date   =]   active_start_date

    是作业可以开始执行的日期。active_start_date   的数据类型为   int,其默认值为   NULL。其值必须为   YYYYMMDD   格式。如果   active_start_date   不为   NULL,则日期必须大于或等于   19900101。

    [@active_end_date   =]   active_end_date

    是作业可以停止执行的日期。active_end_date   的数据类型为   int,其默认值为   NULL。其值必须为   YYYYMMDD   格式。

    [@active_start_time   =]   active_start_time

    是在   active_start_date   与   active_end_date   之间任何一天作业开始执行的时间。active_start_time   的数据类型为   int,其默认值为   NULL。其值必须以   HHMMSS   的格式输入。

    [@active_end_time   =]   active_end_time

    是在   active_start_date   与   active_end_date   之间任何一天作业停止执行的时间。active_end_time   的数据类型为   int,其默认值为   NULL。其值必须以   HHMMSS   的格式输入。

    返回代码值
    0(成功)或   1(失败)

    注释
    sp_update_jobschedule   必须从   msdb   数据库中运行。

    更新作业调度将增加作业的版本号。

    权限
    执行权限默认授予   public   角色。  

    示例
    下例禁用   Archive   Tables   作业的   Monday   Archive   调度,并更改该调度的名称。

    USE   msdb
    EXEC   sp_update_jobschedule   @job_name   =   'Archive   Tables ',  
          @name   =   'Monday   Archive ',
          @new_name   =   'Monday   Archive   -   DEACTIVATED ',
          @enabled   =   0
  • 相关阅读:
    Base64简介
    grafana+graphit安装笔记
    朋友圈里的格局
    设计模式值六大原则——接口隔离原则 (ISP)
    设计模式值六大原则——迪米特法则(LoD)也称为最少知识原则(LKP)。
    设计模式值六大原则——开闭原则(OCP)
    设计模式值六大原则——里氏替换原则(LSP)
    工厂模式
    JSON简介以及用法代码汇总
    sql where 1=1和 0=1 的作用
  • 原文地址:https://www.cnblogs.com/liangqihui/p/1873378.html
Copyright © 2020-2023  润新知