SQL 邮件配置篇

在我们运维工作中,经常要对备份,ETL等作业进行监控,这时我们需要用到SQL SERVER自带的邮件服务器,其原理,我在这么里不多说,直接来实战,下面是我对服务器配置源码,分享给大家,希望对大家有帮助。

exec sp_configure 'show advanced options',1
RECONFIGURE WITH OVERRIDE  
go
exec sp_configure 'database mail xps',1 
RECONFIGURE WITH OVERRIDE  
go--2.创建邮件帐户信息 
EXEC msdb..Sysmail_add_account_sp@ACCOUNT_NAME ='OCTMamiETL',-- 邮件帐户名称    @EMAIL_ADDRESS ='OCTMamiETL@163.com',-- 发件人邮件地址     @DISPLAY_NAME ='系统管理员',-- 发件人姓名  @REPLYTO_ADDRESS =NULL,@DESCRIPTION = NULL,@MAILSERVER_NAME = 'SMTP.163.COM',-- 邮件服务器地址    @MAILSERVER_TYPE = 'SMTP',-- 邮件协议      @PORT =25,-- 邮件服务器端口  @USERNAME = 'OCTMamiETL@163.com',-- 用户名  @PASSWORD = 'ABC123',-- 密码   @USE_DEFAULT_CREDENTIALS =0,@ENABLE_SSL =0,@ACCOUNT_ID = NULLGO--3.数据库配置文件
IF EXISTS(SELECT nameFROM   msdb..sysmail_profileWHERE  name = N'ETLErrorProfileLog')BEGINEXEC msdb..Sysmail_delete_profile_sp @profile_name='ETLErrorProfileLog'ENDEXEC msdb..Sysmail_add_profile_sp@profile_name = 'ETLErrorProfileLog',-- profile 名称  @description = '数据库邮件配置文件',-- profile 描述    @profile_id = NULLgo--4.用户和邮件配置文件相关联
EXEC msdb..Sysmail_add_profileaccount_sp@profile_name = 'ETLErrorProfileLog',-- profile 名称   @account_name = 'OCTMamiETL',-- account 名称     @sequence_number = 1 -- account 在 profile 中顺序
--5.发送文本测试邮件
EXEC msdb..Sp_send_dbmail@profile_name='ETLErrorProfileLog',@recipients='OCTMamiETL@163.com',--收件人@subject='Test title this is test ',@body=N'z中文邮件内容  中文邮件内容'go-----------------------------------------------------------------------------------
/*功能说明:启用警报系统里面的邮件配置参数说明: xp_instance_regwrite 修改注册表
*/
EXEC msdb.dbo.Sp_set_sqlagent_properties @email_save_in_sent_folder=1EXEC master.dbo.Sp_mssetalertinfo @pagersendsubjectonly = 0 --启用警报系统 【在通知消息中包含电子邮件的正文】EXEC master.dbo.Xp_instance_regreadN'HKEY_LOCAL_MACHINE',--启用警报系统 【启用邮件配置文件】N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent',N'DatabaseMailProfile' ---邮件系统【选择数据库邮件】EXEC master.dbo.Xp_instance_regwriteN'HKEY_LOCAL_MACHINE',N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent',N'UseDatabaseMail',N'REG_DWORD',EXEC master.dbo.Xp_instance_regwriteN'HKEY_LOCAL_MACHINE',--启用警报系统 【启用邮件配置文件】N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent',N'DatabaseMailProfile',---邮件系统【选择数据库邮件】N'REG_SZ','ETLErrorProfileLog' ---邮件配置文件【邮件配置里面的SQLMailProfile】   -----------------------------------------------------------------------------------
DECLARE @Sys_OperatorsName VARCHAR(100)SET @Sys_OperatorsName='BSMicheal'IF EXISTS (SELECT nameFROM   msdb.dbo.sysoperatorsWHERE  name = @Sys_OperatorsName)BEGINEXEC msdb..Sp_delete_operator @name = @Sys_OperatorsName -- 操作员ENDEXEC msdb.dbo.Sp_add_operator@name = @Sys_OperatorsName,@enabled = 1,@weekday_pager_start_time = 90000,@weekday_pager_end_time = 180000,@saturday_pager_start_time = 90000,@saturday_pager_end_time = 180000,@sunday_pager_start_time = 90000,@sunday_pager_end_time = 180000,@pager_days = 127,@email_address = 'OCTMamiETL@163.com',-----仅可以对 SQL Mail 使用电子邮件别名。必须对数据库邮件使用电子邮件地址。@pager_address = N'',@netsend_address = N''/*功能说明: 在Job中添加操作员的操作参数说明:  @notify_level_email指定何时将该作业的项放入 Microsoft Windows 应用程序日志。eventlog_level 的数据类型为 int 【0 从不 1 成功时 2 失败时 3 始终】         修改说明:Create by LY on 2011-010-10
*/
IF EXISTS (SELECT 1FROM   msdb.dbo.sysjobsWHERE  name = 'dad')BEGINEXEC msdb.dbo.Sp_update_job@job_name = 'dad',---对应的作业名称@notify_level_email = 2,@notify_level_netsend = 2,@notify_level_page = 2,@notify_email_operator_name = 'BSMicheal' ---对应的操作员END;

 

当然,在配置过程中会遇到很多奇葩问题,我在这暂时不穷举了,总之一点,明白配置步骤,问题都不大,下面我说一下我觉得比较重要一个方面,权限控制,很容易被人忽略,因为我们数据库服务器不是本人配置,在配置的时候权限分配的不是到位,所以配置这个邮件服务功能有点曲折。

当我们调用作业用操作员发送的时候,发现怎么都发送不出去,后来在调试邮件中我发现了这行信息:

我就考虑到是不是该用户的权限不够,按照我正常的运维经验来看的话,配置SQL SERVER的时候这个用户所属的角色应该包含SYSADMIN这个的,所以我查看了该用户所属权限,果然,角色分配不对,后将其调整,作业可以正常发送邮件了。

转载于:https://www.cnblogs.com/roboot/p/6213990.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

选定用户与用户组启动流程(学习笔记)

public class RepostoryServiceTest {private static final Logger LOGGER LoggerFactory.getLogger(RepostoryServiceTest.class);Rulepublic ActivitiRule activitiRule new ActivitiRule();Testpublic void testRepository(){//repositoryService最重要的功能就是对流程定…

python关于包的题怎么做_Python自定义包引入

python中的Module是比较重要的概念。常见的情况是,事先写好一个.py文 件,在另一个文件中需要import时,将事先写好的.py文件拷贝 到当前目录,或者是在中增加事先写好的.py文件所在的目录,然后import。这样的做法&#x…

汽车之家的安全框架,是如何从0到1搭建的?

“别人家的安全”是安全威胁情报(微信ID:Threatbook)近期推出的一档专栏。 合规、管理、构建、应急……安全问题千千万,层出不穷。我们没办法给出这些问题的标准答案,但我们可以用Case Study的形式,让你看看…

leetcode264. 丑数 II

编写一个程序,找出第 n 个丑数。 丑数就是质因数只包含 2, 3, 5 的正整数。 示例: 输入: n 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。 说明: 1 是丑数。 n 不超过1690。 解题思路 直接用treeset去重和排序 代码 class Solution …

vr多人_如何构建多人VR网络应用

vr多人by Srushtika Neelakantam通过Srushtika Neelakantam 如何构建多人VR网络应用 (How to build a multiplayer VR web app) In this article, we’ll learn about three great frameworks/libraries that allow any web developer to build a VR app that works on any de…

量子测量 -- 确定性的死神

一、测量 -- 确定性的死神 前文已反复提及在量子世界中测量这一过程会产生很多奇异的、反直觉的现象。在第一篇文章中我举的例子是:用同样的配方,同样的火候,同样的厨具(所有你能想到的变量均相同)煎鸡蛋,结…

python增删改查csv文件_Python--作业2--对员工信息文件,实现增删改查操作

#!/usr/bin/env python#-*- coding:utf-8 -*-#Author:Huanglinshengimportos#查询方式一:select * from data_staff.txt where age > 22#查询方式二:select * from data_staff.txt where dept "IT"#查询方式三:select * from d…

ios注销所有通知_您一直想了解的有关iOS中通知的所有信息

ios注销所有通知by Payal Gupta通过Payal Gupta 您一直想了解的有关iOS中通知的所有信息 (Everything you’ve always wanted to know about notifications in iOS) 漂亮的小警报..? (Pretty Little Alerts..?) Notifications are a way to inform users when new…

vue-x

https://my.oschina.net/wangnian/blog/2055631转载于:https://www.cnblogs.com/ylblogs/p/10694849.html

leetcode97. 交错字符串(动态规划)

给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。 示例 1: 输入: s1 “aabcc”, s2 “dbbca”, s3 “aadbbcbcac” 输出: true 解题思路 数组含义:dp[i][j]s1的前i个和s2的前j个能否组成字符串s3的前ij长度的子串 状态转移: d…

【LeetCode】19. Remove Nth Node From End of List

Given a linked list, remove the nth node from the end of list and return its head. For example, Given linked list: 1->2->3->4->5, and n 2.After removing the second node from the end, the linked list becomes 1->2->3->5.题意:…

《网络空间欺骗:构筑欺骗防御的科学基石》一1.1 主动网络空间防御中网络空间抵赖与欺骗的视图...

1.1 主动网络空间防御中网络空间抵赖与欺骗的视图 本文讲的是网络空间欺骗:构筑欺骗防御的科学基石一1.1 主动网络空间防御中网络空间抵赖与欺骗的视图,将抵赖与欺骗纳入标准操作规程(SOP):随着攻击技术的不断演进,网…

管桩的弹性模量计算公式_桩基设计计算公式

0.9300.71555.31201018001.130973355桩长21.3mN(KN)φfc(kN/m2)Ap(m2)f’s(kN/m2)A’s(m2)桩直径(m2)11518.963620.7119001.1309733553000000.0160849541.2标准值19006.29KN单桩承载力设计计算(建筑桩基技术规范08版)根据《建筑桩基技术规范》(JGJ94—2008), 单桩竖向极限承载力…

python函数的作用降低编程复杂度_Python语言程序设计 (第11期) 测验5: 函数和代码复用...

共10道单选题和2道编程题,限答1次、限时50分钟选择题1.以下选项不是函数作用的是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫…

restful解决什么问题_当您陷入RESTful,WordPress和一个困难的地方时,如何解决CMS问题...

restful解决什么问题by Jessica Duffin Wolfe杰西卡达芬沃尔夫(Jessica Duffin Wolfe) 当您陷入RESTful,WordPress和一个困难的地方时,如何解决CMS问题 (How to solve a CMS problem when you’re caught between RESTful, WordPress, and a hard place…

InfluxDB的HTTP API写入操作

一、说明 为了方便,本文主要使用curl来发起http请求,示例当中也是使用curl这个工具来模拟HTTP 请求。 在实际使用中,可以将请求写入代码中,通过其他编程语言来模拟HTTP请求。 二、InfluxDB通过HTTP API操作数据库 1)建…

揭开勒索软件的真面目

一、前言 2013年9月,戴尔公司的SecureWorks威胁应对部门(CTU)发现了一种名为“CryptoLocker”的勒索软件,它以邮件附件形式分发,感染计算机并加密近百种格式文件(包括电子表格、数据库、图片等)…

leetcode486. 预测赢家(动态规划)

给定一个表示分数的非负整数数组。 玩家1从数组任意一端拿取一个分数,随后玩家2继续从剩余数组任意一端拿取分数,然后玩家1拿,……。每次一个玩家只能拿取一个分数,分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束。最终…

w550官方例程_急!求索爱w550的刷机所需要的所有文件! 全部分送上!

展开全部W550c行货软件升级使用国内行货W550c手机的朋友,将来是可以在62616964757a686964616fe58685e5aeb931333238646330官方网站使用随机数据线免费升级的,目前W550c的最新版本是R4AB048但是由于目前官方网站还未提供,大家敬请期待。W550c索…

python的xpath用法介绍_python爬虫之xpath的基本使用详解

本篇文章主要介绍了python爬虫之xpath的基本使用详解,现在分享给大家,也给大家做个参考。一起过来看看吧一、简介XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。XPath 是 W3C XSLT 标准的主要元素&#xff…