sql >> Databasteknik >  >> RDS >> Sqlserver

Ge en msdb-användaråtkomst till en databaspostprofil i SQL Server (T-SQL)

För att skicka e-post med Database Mail i SQL Server måste en användare vara medlem i DatabaseMailUserRole i msdb databas och ha tillgång till minst en Database Mail-profil.

För att ge en användare åtkomst till en Databas Mail-profil med T-SQL, använd sysmail_add_principalprofile_sp lagrad procedur i msdb databas.

Exempel

Här är ett exempel att visa.

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

I det här fallet ger jag användaren "Marge" åtkomst till profilen "DB Admin Profile".

Detta förutsätter att profilen och användaren redan finns.

I det här fallet specificerade jag också @is_default = 1 , vilket gör detta till standardprofilen för användaren.

Ange användar-/profil-ID:n

Du kan alternativt ange användar-ID och/eller konto-ID istället för deras namn.

Därför kan vi ändra det föregående exemplet så att det ser ut ungefär så här:

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

Detta förutsätter uppenbarligen att det är ID:n för kontona i fråga.

Observera att antingen namnet eller ID:t måste anges.

När ID:n tillhandahålls tillhandahålls de också som int .

Observera att sysmail_add_principalprofile_sp lagrad procedur finns i msdb databasen, och den ägs av dbo schema. Därför måste du använda tre delars namngivning om du kör det utanför msdb databas.

Offentliga profiler

Du kan också göra en profil till den offentliga standardprofilen för användare i msdb databas.

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

För att göra en profil offentlig, ange ett @principal_id av 0 eller en @principal_name av public . En offentlig profil är tillgänglig för alla användare i msdb databas (även om användare också måste vara medlem i DatabaseMailUserRole för att köra sp_send_dbmail ).

Observera att det bara kan finnas en offentlig standardprofil.

Konfigurera Databas Mail

Ovanstående steg förutsätter att du redan har skapat en Databas Mail-profil och lagt till minst ett Database Mail-konto till den profilen.

Se Hur man skickar e-post i SQL Server för ett komplett exempel på hur man konfigurerar Database Mail och sedan skickar ett e-postmeddelande.


  1. Så här kontrollerar du datumformatet för din Oracle-session

  2. anslut med klausul i regex_substr

  3. Hur man kontrollerar om en tabell finns i SQLite

  4. MySQL CONVERT_TZ()