Database Mail 組態物件
Database Mail 提供兩種類型的組態物件:
Database Mail 設定檔,此為帳戶集。
Database Mail 帳戶,包含電子郵件伺服器的資訊。
Database Mail 包含 msdb 資料庫中的組態預存程序。您可以撰寫 Transact-SQL 指令碼,直接使用這些程序。
使用 Database Mail 傳送電子郵件的應用程式會指定設定檔,而不是直接使用帳戶。將個別電子郵件伺服器的資訊與應用程式所使用的物件區隔開來,可以增進彈性及可靠性:設定檔會提供自動容錯移轉功能,所以如果有一部電子郵件伺服器沒有回應,Database Mail 就會自動將郵件傳送至另一部電子郵件伺服器。資料庫管理員不需要變更應用程式的程式碼或作業步驟,即可新增、移除或重新設定帳戶。
為了增加安全性,Database Mail 也會管理對郵件設定檔的存取權。設定檔可能是公用或私人的。msdb 資料庫中之 DatabaseMailUserRole 資料庫角色的所有成員都可以存取公用設定檔。它們讓 DatabaseMailUserRole 角色的所有成員可以使用設定檔傳送電子郵件。msdb 資料庫中的安全性主體會定義私人設定檔。它們只容許指定的資料庫使用者、角色和系統管理員 (sysadmin) 固定伺服器角色的成員,使用該設定檔來傳送電子郵件。設定檔依預設是私人的,而且只有系統管理員 (sysadmin) 固定伺服器角色的成員才能存取。若要使用私人設定檔,sysadmin 必須授與使用者權限,才能夠使用設定檔。此外,sp_send_dbmail 預存程序的 EXECUTE 權限只授與 DatabaseMailUserRole 的成員。系統管理員必須將使用者加入 DatabaseMailUserRole 資料庫角色,使用者才能夠傳送電子郵件。
下圖說明顯示帳戶、設定檔與使用者之間的關係。請注意,使用者可能會有多個設定檔的使用權限,但是只能定義一個設定檔來作為預設設定檔。每個設定檔都可以使用多個帳戶。而一個帳戶也可以被多個設定檔使用。
下圖說明顯示兩個設定檔、三個帳戶及三個使用者。「使用者 1」有「設定檔 1」的存取權,而「設定檔 1」使用「帳戶 1」及「帳戶 2」。「使用者 3」有「設定檔 2」的存取權,而「設定檔 2」使用「帳戶 2」及「帳戶 3」。「使用者 2」有「設定檔 1」及「設定檔 2」的存取權。