Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara menjalankan sp_send_dbmail sambil membatasi izin

Pendekatan Anda OK, tetapi proc wrapper Anda harus berada di database msdb. Kemudian, Anda menjalankan "EXEC msdb.dbo._TestSendMail"

Ini masih menyisakan masalah izin pada dbo._TestSendMail di msdb.Tapi publik/EXECUTE sudah cukup:itu hanya memperlihatkan 3 parameter yang Anda butuhkan.

Jika ragu, tambahkan DENGAN ENKRIPSI. Ini cukup baik untuk menghentikan siapa pun tanpa hak sysadmin melihat kode

USE msdb
GO
CREATE PROCEDURE [dbo].[_TestSendMail]
(
  @To NVARCHAR(1000),
  @Subject NVARCHAR(100),
  @Body NVARCHAR(MAX)
)
-- not needec WITH EXECUTE AS OWNER
AS 
    BEGIN
        EXEC dbo.sp_send_dbmail @profile_name = N'myProfile',
            @recipients = @To, @subject = @Subject, @body = @Body
    END


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Memperbaiki Kesalahan "fungsi datediff mengakibatkan overflow" di SQL Server

  2. Ubah format Tanggal menjadi format DD/MMM/YYYY di SQL Server

  3. Menggunakan memiliki count() dalam klausa yang ada

  4. SQL Server 2005 Pivot pada Jumlah Kolom yang Tidak Diketahui

  5. Bagaimana saya bisa menyorot sebuah kata dalam tampilan kisi?