需求:

在作业步骤中使用sp_send_dbmail发出邮件, 并将数据库中的日志表通过@query参数导出文本作为邮件附件

遇到错误:

服务器 DB-DWH-1,第 1 行  服务器主体 "NT AUTHORITY\SYSTEM" 无法在当前安全上下文下访问数据库 "DW"。 [SQLSTATE 42000] (错误 14661).  该步骤失败。

马上查了一下这个安全上下文的资料, 建议打开数据库trustworthy选项

到官网查了一下这个参数的资料, 该参数设定是否让实例信任数据库, 官方建议不打开因为防止数据库的恶意组件可以做出不安全的操作. 如下

Alter database set trustworthy on

https://support.microsoft.com/en-us/kb/2183687

由于我们是在自己的数据仓库服务器, 觉得打开也没太大问题, 就打开了试一下, 还是报同样的错误, 证明与给设置无关

开始查看sp_send_dbmail的参数指定好执行语句的数据库, 如下

还找到了一个声称可以让sp_send_dbmail在作业步骤中运行的人的记录

https://www.brentozar.com/archive/2014/10/send-query-results-sql-server-agent-job/

最终还是在stackoverflow中找到了解决办法, 是执行sp_send_dbmail的运行身份问题, 在执行前加上execute as login = 'sa' 还是指定一个系统管理员用户即可

http://stackoverflow.com/questions/15112849/sp-send-dbmail-executed-from-job-fails-with-query-result-attached-as-file

MSSQL_20160719_在作业步骤中使用sp_send_dbmail遇到的问题的更多相关文章

  1. SQL Server代理(6/12):作业里的工作流——深入作业步骤

    SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 如我们在这里系列的前几篇文章所见,SQL ...

  2. 第六篇 SQL Server代理深入作业步骤工作流

    本篇文章是SQL Server代理系列的第六篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.每个作业步骤在技术 ...

  3. 第二篇 SQL Server代理作业步骤和子系统

    本篇文章是SQL Server代理系列的第二篇,详细内容请参考原文. SQL Server代理作业由一系列的一个或多个作业步骤组成.一个作业步骤分配给一个特定的作业子系统(确定作业步骤去完成的工作). ...

  4. 【译】第六篇 SQL Server代理深入作业步骤工作流

    本篇文章是SQL Server代理系列的第六篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.每个作业步骤在技术 ...

  5. 【译】第二篇 SQL Server代理作业步骤和子系统

    本篇文章是SQL Server代理系列的第二篇,详细内容请参考原文. SQL Server代理作业由一系列的一个或多个作业步骤组成.一个作业步骤分配给一个特定的作业子系统(确定作业步骤去完成的工作). ...

  6. 创建 Transact-SQL 作业步骤

    创建 Transact-SQL 作业步骤 在对象资源管理器中,连接到 SQL Server 数据库引擎实例,再展开该实例. 展开"SQL Server 代理",创建一个新作业或右键 ...

  7. ThinkPHP5作业管理系统中处理学生未交作业与已交作业信息

    在作业管理系统中,学生登陆到个人中心后可以通过左侧的菜单查看自己已经提交的作业和未提交作业.那么在系统中如何实现这些数据的查询的呢?首先我们需要弄清楚学生(Student).班级(class).作业提 ...

  8. SQL Server代理(2/12):作业步骤和子系统

    SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. SQL Server代理作业有一系列的一个 ...

  9. 第十三次作业——回归模型与房价预测&第十一次作业——sklearn中朴素贝叶斯模型及其应用&第七次作业——numpy统计分布显示

    第十三次作业——回归模型与房价预测 1. 导入boston房价数据集 2. 一元线性回归模型,建立一个变量与房价之间的预测模型,并图形化显示. 3. 多元线性回归模型,建立13个变量与房价之间的预测模 ...

随机推荐

  1. Vue select默认选中第一个

    <td> <select v-model="selectWare"> <option selected="selected" va ...

  2. 本地远程访问服务器jupyter

    一.前提: 安装Python3 安装Anaconda 配置jupyter notebook 并启动(重点) 二.配置jupyter文件 因为服务器已经安装好anaconda和jupyter,pytho ...

  3. eas之dep的前置脚本和后置脚本

    dep的前置脚本和后置脚本,什么时候写,是这样解释的:    前置脚本是在方法前执行,后置脚本是在方法后执行    1.比如保存扩展,如果你要在保存前校验某个字段的值,你要在前置脚本中写,如果要保存后 ...

  4. linux backtrace()详细使用说明,分析Segmentation fault

    linux backtrace()详细使用说明,分析Segmentation fault 在此之前,开发eCos应用程序时,经常碰到程序挂掉后,串口打印输出一大串让人看不懂的数据.今天才明白,原来这些 ...

  5. java 反射之获取泛型对象的所有字段与对应的值(包括父类的)

    上代码: public static void main(String[] args) throws IntrospectionException { SysUser obj = new SysUse ...

  6. java并发之停止线程

    停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作.停止一个线程可以用Thread.stop()方法,但最好不要用它.虽然它确实可以停止一个正在运行的线程,但是这个方法是不安 ...

  7. redis-快照

    rdb模式,默认模式 aof模式 如何配置aof模式 第一步:开启是否追加: Please check http://redis.io/topics/persistence for more info ...

  8. 网络编程----堵塞、非堵塞和同步、异步IO

    我是学渣.但我想进步. 本文是面试我的牛人问我的.你知道什么是堵塞.非堵塞和同步.异步IO么?自觉得是分布式系统程序猿的我居然不知道.学习吧. 首先介绍堵塞IO和非堵塞IO: 堵塞IO:是指说程序等待 ...

  9. Android之旅十六 android中各种资源的使用

    android中各种资源的使用: 在android开发中,各种资源的合理使用应该在各自的xml中进行定义,以便反复使用; 字符串资源:strings.xml,xml中引用:@string/XXX,ja ...

  10. Spring+EhCache缓存实例(具体解说+源代码下载)

    一.ehcahe的介绍 EhCache 是一个纯Java的进程内缓存框架,具有高速.精干等特点,是Hibernate中默认的CacheProvider.Ehcache是一种广泛使用的开源Java分布式 ...