sql >> データベース >  >> RDS >> Sqlserver

アクセス許可を制限しながら sp_send_dbmail を実行する方法

    あなたのアプローチは問題ありませんが、ラッパー プロシージャは msdb データベースにある必要があります。次に、"EXEC msdb.dbo._TestSendMail" を実行します。

    これにより、msdb の dbo._TestSendMail に対するアクセス許可の問題が残ります。ただし、public/EXECUTE で十分です。必要な 3 つのパラメーターのみを公開します。

    疑わしい場合は、WITH ENCRYPTION を追加してください。これは、システム管理者権限のない人がコードを表示するのを止めるのに十分です

    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. Wamp Serverに似たものはありますか?

    2. JavaプログラムからMySQLにデータを保存する最も簡単な方法は何ですか?

    3. MySQLのLIMIT句で変数を使用する

    4. SQLServer2008の分割機能