sql >> Database >  >> RDS >> Sqlserver

Database-e-mail configureren in SQL Server

INLEIDING

Meldingen zijn gebruikelijk in de meeste moderne systemen. SQL Server implementeerde middelen voor het vroegtijdig verzenden van meldingen per e-mail met de functie SQL Mail. In SQL Server 2005 werd Database Mail uitgebracht en we werken nog steeds met Database Mail in de huidige versies van SQL Server. Tegen deze achtergrond kunnen we stellen dat Database Mail een zeer volwassen functie is in SQL Server.

Ik heb in mijn ervaring te maken gehad met enkele use-cases met betrekking tot de implementatie van Database Mail.

De lijst is niet vol, maar kijk eens naar enkele problemen:

  1. Bewaking – In mijn dagen als databasebeheerder, bij gebrek aan een volwaardige monitoringtool, nam ik een script aan dat was ontwikkeld door een kennis die op SQL Server Central blogde. Dat script was gebaseerd op HTML, maar het bevatte SQL dat gegevens uit de belangrijkste systeemcatalogusweergaven haalde en de uitvoer per e-mail naar beheerders stuurde.
  • Vacatureresultaten – Ik heb Database Mail ook gebruikt om de uitvoer van taken te leveren aan databasebeheerders of zelfs gewone gebruikers die dergelijke informatie wilden krijgen. Met een SQL Agent kunt u Database Mail gebruiken om eenvoudig de status van taken te verzenden - succes of mislukking. U kunt verder gaan door scripts te ontwikkelen met behulp van de opgeslagen procedure sp_send_dbmail
  • Rapportage – In het geval van eenvoudige rapporten, de sp_send_dbmail opgeslagen procedure kan ook worden gebruikt om een ​​resultatenset samen te voegen en deze als bestand of in een e-mail met de juiste opmaak te verzenden.

VEREISTEN

De volgende zijn essentiële vereisten waarmee u rekening moet houden bij het configureren van Database Mail:

  1. Poort 25 (SMTP) moet open zijn tussen de SQL Server-host en de Exchange Server. Het is relevant in omgevingen waar het netwerk wordt gesegmenteerd door firewalls.
  2. SQL Server-host moet e-mailrelay-machtigingen hebben op het domein. Een Microsoft Exchange-beheerder zou dit voor u moeten kunnen regelen.
  3. Maak een Exchange-serveraccount om e-mails te verzenden. Het is niet verplicht, maar ik heb persoonlijk liever controle over welk account welke acties uitvoert in mijn omgeving.

PROCEDURE

Om e-mails te verzenden vanaf een SQL Server-instantie, moet u Database Mail configureren. Voer de volgende stappen uit:

  1. Het welkomstscherm geeft je een overzicht van de acties die je gaat ondernemen. In dit proces stelt u een e-mailprofiel, een e-mailaccount, beveiliging in en configureert u vervolgens de systeemparameters. (Zie figuur 1)

2. Nu zie je de opties om te selecteren met keuzerondjes. Omdat we voor de eerste keer databasemail instellen, kiezen we voor het eerste keuzerondje.

3. Schakel de functie Database Mail in om door te gaan met de configuratie.

4. Maak een profiel aan. Een profiel is een verzameling e-mailaccounts die door de SQL Server-engine wordt gebruikt om e-mails te verzenden. Het ontkoppelen van het profiel en de rekeningen zorgt voor flexibiliteit en betrouwbaarheid. U kunt het e-mailaccount dat is gekoppeld aan uw e-mailprofiel naar believen wijzigen. U kunt ook meerdere e-mailaccounts gebruiken voor hetzelfde profiel, waardoor u veerkrachtig bent.

5. Bekijk de details die nodig zijn om het e-mailaccount in te stellen:de accountnaam, het bijbehorende e-mailaccount, de e-mailserver en inloggegevens. Zoals eerder vermeld, kunt u ervoor kiezen om e-mails anoniem te verzenden.

Nadat u het e-mailaccount hebt geconfigureerd, hebt u het met succes aan het e-mailprofiel gekoppeld. U kunt ook extra accounts toevoegen. Houd er rekening mee dat om veiligheidsredenen dergelijke accounts, zoals gespecificeerd in het e-mailadresveld, interactieve aanmelding bij servers moeten worden geweigerd. Het vermindert de schade in het geval dat het wordt gecompromitteerd.

7. De volgende stap is het instellen van de beveiliging voor het profiel. U kiest of u het profiel openbaar of privé wilt maken. Een openbaar profiel kan worden gebruikt door elke principal op SQL Server die is toegevoegd aan de databaserol DatabaseMailUserRole . Een privéprofiel kan alleen worden gebruikt door het sysadmin-account of een andere principal die EXECUTE-rechten heeft gekregen op de sp_send_dbmail opgeslagen procedure. Het openbare profiel past meestal bij mijn doeleinden.

De laatste belangrijke stap is het instellen van de systeemparameters. Mensen vinden het meestal makkelijker om deze stap over te slaan. We kunnen configuraties zoals nieuwe pogingen, bestandsgrootte en logboekregistratie wijzigen. Persoonlijk vond ik het handig om de bestandsgroottelimiet te verhogen bij het opzetten van een rapport dat groter is dan 1 MB.

9. Voltooi de installatie.

CONCLUSIE

In dit artikel hebben we de stapsgewijze configuratie van Database Mail bekeken. We hebben ook een paar extra praktische tips gegeven. In een vervolgartikel zullen we de systeemcatalogi onderzoeken die gegevens blootleggen om de Database Mail te controleren en problemen op te lossen.

REFERENTIES

Database Mail Configuratie Objecten


  1. SQLite-verbinding gelekt hoewel alles is gesloten

  2. datagrip Kan geen wijzigingen toepassen Deze tabel is alleen-lezen. Wijzigingen in de celeditor kunnen niet worden toegepast

  3. SQL 'LIKE'-query met '%' waarbij de zoekcriteria '%' bevatten

  4. Query om alleen getallen uit een string te krijgen