トリガーで電子メールを送信したい。私はmsdb.dbo.sp_send_dbmail
を使っています。私はアクセス許可を正しく設定する方法に問題があります。SQLサーバーで電子メールを送信するトリガー
データにアクセスできるデータベースのユーザーにDatabaseMailUserRole
のmsdb
を追加したくありません。
したがって、私は別のユーザーmailer
を作成しましたが、これはDatabaseMailUserRole
です。
トリガ定義は次のとおりです。
CREATE TRIGGER MyTrigger
ON MyTable
WITH EXECUTE AS 'mailer'
AFTER INSERT
AS
BEGIN
exec msdb.dbo.sp_send_dbmail ...
END
私は、次のエラーを取得しています:
The EXECUTE permission was denied on the object 'sp_send_dbmail', database 'msdb', schema 'dbo'.
(私はWITH EXECUTE AS 'mailer'
を削除し、データベースにアクセスしているユーザーにDatabaseMailUserRole
を追加すると、それが動作
[SQLサーバのトリガで許可エラーとして実行]の可能な複製(http://stackoverflow.com/questions/1709335/sql-server-execute-as-permission-errors-in-trigger) –