SQL Server内でアクセス許可を設定して、アプリケーションのログイン/ロールがを使用して電子メールを送信できるようにする方法を知りたいのですがmsdb.dbo.sp_send_dbmail
。
MyUser
ロールのメンバーであるユーザーであるデータベースMyDbがありますAppRole
。myProc
を呼び出すストアドプロシージャがありますmsdb.dbo.sp_send_dbmail
。myProc
ログイン中に実行するsa
とすべて正常に動作しますが、ログイン中に実行するとMyUser
エラーが発生します。
メッセージ229、レベル14、状態5、プロシージャsp_send_dbmail、1行
目オブジェクト'sp_send_dbmail'、データベース'msdb'、スキーマ'dbo'に対するEXECUTE権限が拒否されました。
私のデータベースにはTRUSTWORTHYONがないため、EXECUTE ASを使用して別のユーザーになりすますことはできないと思います。たとえば、EXECUTE AS OWNERでmyProcを作成します...(MSDNリファレンス)
したがって、ユーザーをmsdb内のユーザーにする必要があると思いますが、これをロールレベルで行うことはできますか、それとも各データベースユーザーをmsdb内のユーザーにする必要がありますか?
私が使用しているデータベースメールプロファイルはパブリックに設定されているので、これはプロファイルのアクセス許可に関連しているとは思いません。