sql >> Database teknologi >  >> RDS >> Sqlserver

Giv en msdb-brugeradgang til en databasemailprofil i SQL Server (T-SQL)

For at sende e-mail ved hjælp af Database Mail i SQL Server skal en bruger være medlem af DatabaseMailUserRole i msdb database og har adgang til mindst én Database Mail-profil.

For at give en bruger adgang til en Database Mail-profil med T-SQL skal du bruge sysmail_add_principalprofile_sp gemt procedure i msdb database.

Eksempel

Her er et eksempel til at demonstrere.

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @profile_name = 'DB Admin Profile',
    @principal_name = 'Marge',
    @is_default = 1;

I dette tilfælde giver jeg brugeren "Marge" adgang til profilen "DB Admin Profile".

Dette forudsætter, at profilen og brugeren allerede eksisterer.

I dette tilfælde specificerede jeg også @is_default = 1 , hvilket gør dette til standardprofilen for brugeren.

Angiv bruger-/profil-id'er

Du kan alternativt angive bruger-id'et og/eller konto-id'et i stedet for deres navne.

Derfor kunne vi ændre det forrige eksempel til at se sådan ud:

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @profile_id = 1,
    @principal_id = 25,
    @is_default = 1;

Dette forudsætter naturligvis, at det er ID'erne for de pågældende konti.

Bemærk, at enten navnet eller ID'et skal angives.

Når ID'erne angives, er de også angivet som int .

Bemærk, at sysmail_add_principalprofile_sp gemt procedure er i msdb databasen, og den ejes af dbo skema. Derfor skal du bruge tredelt navngivning, hvis du udfører det uden for msdb database.

Offentlige profiler

Du kan også gøre en profil til den offentlige standardprofil for brugere i msdb database.

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @profile_name = 'DB Public Profile',
    @principal_name = 'public',
    @is_default = 1;

For at gøre en profil offentlig, skal du angive en @principal_id af 0 eller en @principal_name af public . En offentlig profil er tilgængelig for alle brugere i msdb database (selvom brugere også skal være medlem af DatabaseMailUserRole for at udføre sp_send_dbmail ).

Bemærk, at der kun kan være én offentlig standardprofil.

Konfiguration af databasemail

Ovenstående trin forudsætter, at du allerede har oprettet en Database Mail-profil og tilføjet mindst én Database Mail-konto til den profil.

Se Sådan sender du e-mail i SQL Server for et komplet eksempel på konfiguration af databasemail og derefter afsendelse af en e-mail.


  1. Eksisterer / findes ikke:'vælg 1' vs 'vælg felt'

  2. Send en applikation med en database

  3. Indsæt resultater af en lagret procedure i en midlertidig tabel

  4. Hvorfor er der behov for UDFØR STRAKS her?