Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách thực thi sp_send_dbmail trong khi giới hạn quyền

Cách tiếp cận của bạn là OK, nhưng proc trình bao bọc của bạn phải nằm trong cơ sở dữ liệu msdb. Sau đó, bạn thực thi "EXEC msdb.dbo._TestSendMail"

Điều này vẫn để lại vấn đề về quyền trên dbo._TestSendMail trong msdb, nhưng công khai / EXECUTE sẽ là đủ:nó chỉ hiển thị 3 tham số bạn cần.

Nếu nghi ngờ, hãy thêm VỚI KÍCH THÍCH. Điều này đủ tốt để ngăn bất kỳ ai không có quyền sysadmin xem mã

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. Cách gửi email từ SQL Server (T-SQL)

  2. Chu kỳ qua vòng bảng tạm trong SQL Server Management Studio (SSMS) - Hướng dẫn SQL Server / TSQL Phần 8

  3. Cách kiểm tra ổ khóa nào được giữ trên bàn

  4. Entity Framework - One-to-One - ReferentialConstraint được ánh xạ tới một cột do cửa hàng tạo

  5. Thêm mối quan hệ Khoá ngoại giữa hai Cơ sở dữ liệu