sysmail_add_principalprofile_sp (T-SQL)

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Memberikan izin bagi msdb prinsipal database untuk menggunakan profil Email Database. Prinsipal database harus memetakan ke pengguna autentikasi SQL Server, Pengguna Windows, atau Grup Windows.

Di Azure SQL Managed Instance dan SQL Server 2022 (16.x), prinsipal database juga dapat memetakan ke pengguna Microsoft Entra.

Konvensi sintaks transact-SQL

Sintaks

sysmail_add_principalprofile_sp
    { [ @principal_id = ] principal_id | [ @principal_name = ] 'principal_name' }
    , { [ @profile_id = ] profile_id | [ @profile_name = ] 'profile_name' }
    [ , [ @is_default ] = 'is_default' ]
[ ; ]

Argumen

[ @principal_id = ] principal_id

ID pengguna atau peran database dalam msdb database untuk asosiasi. @principal_id int, dengan default NULL. Baik @principal_id atau @principal_name harus ditentukan. @principal_id0 menjadikan profil ini profil publik, memberikan akses ke semua prinsipal dalam database.

[ @principal_name = ] 'principal_name'

Nama pengguna atau peran database dalam msdb database untuk asosiasi. @principal_name adalah sysname, dengan default NULL. Baik @principal_id atau @principal_name harus ditentukan. @principal_namepublic membuat profil ini menjadi profil publik, memberikan akses ke semua prinsipal dalam database.

[ @profile_id = ] profile_id

ID profil untuk asosiasi. @profile_id int, dengan default NULL. Baik @profile_id atau @profile_name harus ditentukan.

[ @profile_name = ] 'profile_name'

Nama profil untuk asosiasi. @profile_name adalah sysname, tanpa default. Baik @profile_id atau @profile_name harus ditentukan.

[ @is_default = ] is_default

Menentukan apakah profil ini adalah profil default untuk prinsipal. Prinsipal harus memiliki satu profil default. @is_default adalah bit, tanpa default.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Keterangan

Untuk membuat profil menjadi publik, tentukan @principal_id0 atau @principal_name .public Profil publik tersedia untuk semua pengguna dalam msdb database, meskipun pengguna juga harus menjadi anggota DatabaseMailUserRole untuk menjalankan sp_send_dbmail.

Pengguna database hanya dapat memiliki satu profil default. Ketika @is_default dan 1 pengguna sudah dikaitkan dengan satu atau beberapa profil, profil yang ditentukan menjadi profil default untuk pengguna. Profil yang sebelumnya merupakan profil default masih dikaitkan dengan pengguna, tetapi bukan lagi profil default.

Ketika @is_default dan 0 tidak ada asosiasi lain, prosedur tersimpan mengembalikan kesalahan.

Prosedur sysmail_add_principalprofile_sp tersimpan ada di msdb database dan dimiliki oleh dbo skema. Prosedur harus dijalankan dengan nama tiga bagian jika database saat ini bukan msdb.

Izin

Prosedur tersimpan ini dimiliki oleh peran db_owner . Anda dapat memberikan EXECUTE izin untuk pengguna mana pun, tetapi izin ini dapat ditimpa selama peningkatan SQL Server.

Contoh

J. Membuat asosiasi dan mengatur profil default

Contoh berikut membuat hubungan antara profil bernama AdventureWorks Administrator Profile dan msdb pengguna ApplicationUserdatabase . Profil adalah profil default untuk pengguna.

EXEC msdb.dbo.sysmail_add_principalprofile_sp
    @principal_name = 'ApplicationUser',
    @profile_name = 'AdventureWorks Administrator Profile',
    @is_default = 1;

B. Membuat profil sebagai profil publik default

Contoh berikut menjadikan profil AdventureWorks Public Profile profil publik default untuk pengguna dalam msdb database.

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