Piemēri e-pasta sūtīšanai (nepieminot tiesības)
Tāds pavisam vienkārš piemērs, lai sūtītu e-pastu. Izmantoju rakstā Konta un profila izveide e-pastu sūtīšanai (DB Mail) izveidoto profilu:
EXEC msdb.dbo.sp_send_dbmailBet, ņemot vērā, ka profils tika uzstādīts kā noklusētais, var nenorādīt profila nosaukumu! Arī šādi tas strādā (nomainot noklusēto publisko profilu uz citu noklusēto publisko profilu, tiks izmantots tas):
@profile_name='MyTestProfile',
@recipients='my_mail@my_domain.lv',
@subject='Testa ziņa',
@body= 'Ja saņem, tad viss strādā '
EXEC msdb.dbo.sp_send_dbmailJa ir vēlme nosūtīt e-pastu ar kāda vaicājuma rezultātiem (šajā gadījumā rezultāti tiek iekļauti e-pastā "body" daļā. Bet tikpat labi var sākumā būt paskaidrojošais teksts- līdzīgi kā iepriekš norādot @body parametru):
@recipients='my_mail@my_domain.lv',
@subject='Testa ziņa',
@body= 'Ja saņem, tad viss strādā '
EXEC msdb.dbo.sp_send_dbmailVaicājuma rezultātus var sūtīt arī kā pielikumu (ir iespējams norādīt faila vārdu, kolonnu atdalītāju):
@recipients = 'my_mail@my_domain.lv',
@query = 'select top 10 * from TestTable',
@subject = '10 rindas'
EXEC msdb.dbo.sp_send_dbmailUn tad vēl pēdējais piemērs- e-pasta nosūtīšana un pielikumā 2 faili un vaicājum rezultāti ar definētu nosaukumu. Vēstulei uzlikta augsta prioritāte:
@recipients = 'my_mail@my_domain.lv',
@query = 'select top 10 * from TestTable',
@subject = '10 rindas',
@body = 'pielikumā rezultāti',
@attach_query_result_as_file = 1
EXEC msdb.dbo.sp_send_dbmailUn par lietotāju tiesībām
@recipients = 'my_mail@my_domain.lv',
@query = 'select top 10 * from TestTable',
@query_attachment_filename = 'VaicajumaRezultati.txt',
@query_result_separator = ';',
@subject = '10 rindas',
@importance = 'High',
@file_attachments = '\\Serveris\Mape\fails1.txt;'\\Serveris\Mape\fails2.txt',
@body='Pielikumā divi norādītie faili, kā arī vaicājuma rezultāti',
@attach_query_result_as_file = 1;
Manā gadījumā- vēlos panākt, lai visi lietotāji varētu nosūtīt e-pastu. Viens variants kā to darīt- ir lietotājus pielikt msdb datu bāzei un pielikt lietotājus lomai "DatabaseMailUserRole", tādā veidā nodrošinot piekļuvi izveidotajam(iem) publiskajam(iem) profiliem. Vai arī pieliekot lomai un katram lietotājam nodrošinot piekļuvi konkrētam(iem) privātajam(iem) profilam(iem).
Var izmantot parakstītas procedūras: DB Mail: Lietotāja tiesības izmantojot sertifikātus
Vēl viena alternatīva būtu datu bāzei msdb atļaut "guest" lietotāja kontu. Šim kontam piešķirt lomu "DatabaseMailUserRole". tādā veidā visi lietotāji, kas nav speciāli pielikti šai datu bāzei, tiks uztverti kā "Guest" lietotāji.
"Guest" lietotājam jābūt atļaujai pieslēgties datu bāzei (pēc noklusējuma jābūt atļautam):
use msdbLai atļautu "Guest" lietotājam sūtīt e-pastu:
--atļaut lietotāju guest
GRANT CONNECT TO GUEST
USE [msdb]
-- lai pieliktu tiesības sūtīt e-pastu:
EXEC sp_addrolemember N'DatabaseMailUserRole', N'guest'
-- lai noņemtu tiesības sūtīt e-pastu:
--EXEC sp_droprolemember N'DatabaseMailUserRole', N'guest'
Nav komentāru:
Ierakstīt komentāru