Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wykonać sp_send_dbmail przy ograniczeniu uprawnień

Twoje podejście jest OK, ale Twój wrapper proc musi znajdować się w bazie danych msdb. Następnie wykonujesz "EXEC msdb.dbo._TestSendMail"

To nadal pozostawia kwestię uprawnień na dbo._TestSendMail w msdb. Ale public/EXECUTE wystarczy:ujawnia tylko 3 potrzebne parametry.

W razie wątpliwości dodaj Z SZYFROWANIEM. Jest to wystarczająco dobre, aby powstrzymać każdego, kto nie ma uprawnień administratora, przeglądającego kod

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. Prawidłowe parametry połączenia umożliwiające dostęp do zdalnego serwera bazy danych

  2. Jak rozróżniać wielkość liter w kolumnie w sql 2005 lub 2008?

  3. jak utworzyć relację klucza obcego na fizycznie rozproszonych danych?

  4. Jak sprawdzić istnienie typu tabeli definiowanej przez użytkownika w SQL Server 2008?

  5. Problem z uprawnieniami w programie SSMS:Odmówiono uprawnienia SELECT do obiektu „extended_properties”, bazy danych „mssqlsystem_resource”, ... Błąd 229)