


SQL Server 2005使用管理數(shù)據(jù)庫郵件
本文將要討論建立和管理數(shù)據(jù)庫郵件。
什么是數(shù)據(jù)庫郵件?
數(shù)據(jù)庫郵件是一個郵件隊(duì)列系統(tǒng)。電子郵件消息存儲在msdb數(shù)據(jù)庫里的隊(duì)列中等待被處理。當(dāng)一個電子郵件消息到達(dá)隊(duì)列時,將會觸發(fā)一個外部過程來把隊(duì)列中的這個消息送到合適的郵件服務(wù)器端。郵件一旦被發(fā)送,一個裝有郵遞狀態(tài)的電子郵件消息就會被郵遞回SQL Server。
打開數(shù)據(jù)庫郵件功能項(xiàng)
數(shù)據(jù)庫郵件在模塊之外是不可用的。由于SQL Server安全模型缺省把所有選項(xiàng)都關(guān)閉了,如果你要想使用它的話就需要使能數(shù)據(jù)庫郵件。你可以使用表面區(qū)域配置工具,或者用下面的T-SQL來使能數(shù)據(jù)庫郵件:
sp_configure'showadvancedoptions',1;
GO
RECONFIGURE;
GO
sp_configure'DatabaseMailXPs',1;
GO
RECONFIGURE
GO
建立賬號
數(shù)據(jù)庫郵件賬號鑒別SQL Server 2005應(yīng)該如何和SMTP服務(wù)器進(jìn)行通信。這個賬號具體說明了電子郵件如何被格式化和發(fā)送的。單一的賬號將會鑒別單一的SMTP服務(wù)器和認(rèn)證方法。數(shù)據(jù)庫郵件所使用的賬號不和SQL Server登錄賬號相對應(yīng)。
當(dāng)建立一個賬號時你需要鑒別足夠的信息以便使SQL Server 2005能夠和SMTP服務(wù)器通訊,如果需要的話還要認(rèn)證。可以參考Books Online獲取定義賬號的完整選項(xiàng)列表。你可以使用數(shù)據(jù)庫郵件配置向?qū)斫①~號,向?qū)Э梢栽赟QL Server Management Studio里的“管理”文件夾“數(shù)據(jù)庫郵件”下找到,或者使用存儲過程(SP)“sysmail_add_account_sp”。這里有一個腳本使用了上面提到的存儲過程來創(chuàng)建一個和不需要認(rèn)證的SMTP服務(wù)器相通信的賬號。
EXECUTEmsdb.dbo.sysmail_add_account_sp
@account_name='DatabaseAdministrationAccount',
@deion='MailaccountforusedbyDBAstaff',
@email_address='ProdServer01@databasejournal.com',
@display_name='ProdServer01DBAMail',
@replyto_address='Greg.Larsen@databasejournal.com',
@mailserver_name='mailserver.databasejournal.com';
這個賬號名為“數(shù)據(jù)庫管理賬號”,郵件地址為ProdServer01@databasejournal.com。使用數(shù)據(jù)庫郵件的優(yōu)點(diǎn)之一就是這個郵件地址不必再是你郵件系統(tǒng)中的一個有效的郵件賬號。除此之外,你可以把回復(fù)地址和你的數(shù)據(jù)庫郵件賬號聯(lián)系起來。在上面的例子中,我定義了Greg.Larsen@databasejournal.com作為回復(fù)地址。所以現(xiàn)在,當(dāng)某人從我的自動郵件通知處理得到一封郵件時,他們可以回復(fù),這個回復(fù)郵件能直接發(fā)送到我這里。
有了數(shù)據(jù)庫郵件,你就可以根據(jù)你的需要盡可能多地建立郵件賬號。一會兒,我將討論你需要建立多個數(shù)據(jù)庫郵件賬號的原因。
建立個人資料并和賬號相聯(lián)系
在能夠發(fā)送數(shù)據(jù)庫郵件到一個在賬號中鑒別過的SMTP服務(wù)器之前,你需要把賬號和個人資料聯(lián)系起來,把訪問權(quán)授予個人資料。數(shù)據(jù)庫郵件個人資料用來提高郵件安全性。有兩種個人資料,公開的和私有的。公開的個人資料任何人都可見,它把訪問權(quán)授予msdb數(shù)據(jù)庫,是msdb數(shù)據(jù)庫中DatabaseMailUserRole中的成員,而私有的個人資料只可以被授權(quán)訪問私有個人資料的特定用戶使用。一個郵件個人資料能夠和一個或多個賬號相聯(lián)系。你可以使用數(shù)據(jù)庫郵件配置向?qū)砉芾韨人資料,或者使用一些和下面類似的T-SQL命令來建立郵件個人資料:
--CreateaDatabaseMailprofile
EXECUTEmsdb.dbo.sysmail_add_profile_sp
@profile_name='DatabaseAdministrationProfile',
@deion='MailProfileforusebyDBAprocesses';
這里我只是創(chuàng)建了一個名為“數(shù)據(jù)庫管理個人資料”的個人資料。現(xiàn)在你僅僅有了一個剛創(chuàng)建的個人資料,并不意味著你能夠使用它來發(fā)送郵件。你仍然需要把那個個人資料和至少一個數(shù)據(jù)庫郵件賬號及msdb數(shù)據(jù)庫里的一個用戶聯(lián)系起來。為了做到這些我可以執(zhí)行下面的語句:
--Addtheaccounttotheprofile
EXECUTEmsdb.dbo.sysmail_add_profileaccount_sp
@profile_name='DatabaseAdministrationProfile',
@account_name='DatabaseAdministrationAccount',
@sequence_number=1;
--Grantaccesstotheprofile
EXECUTEmsdb.dbo.sysmail_add_principalprofile_sp
@profile_name='DatabaseAdministrationProfile',
@principal_name='ProdServer01',
第一個EXECUTE語句把我的個人資料和一個賬號相聯(lián)系。第二個EXECUTE語句把我的個人資料和‘ProdServer01’msdb數(shù)據(jù)庫用戶相聯(lián)系。這個用戶在他們能夠發(fā)送郵件之前必須是DatabaseMailUserRole中的成員。既然我把個人資料和一個特定用戶聯(lián)系起來,這個個人資料就是一個私有個人資料。要創(chuàng)建一個公共個人資料你需要把個人資料和“公共”數(shù)據(jù)庫角色相聯(lián)系。
發(fā)送數(shù)據(jù)庫郵件
SQL Server提供了存儲過程“sp_send_dbmail”來發(fā)送郵件。下面的句法用來調(diào)用這個存儲過程:
關(guān)鍵字:SQL Server、數(shù)據(jù)庫、存儲過程
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯
- 解決Centos7雙系統(tǒng)后丟失windows啟動項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解