1

アカウントを作成し、サーバーの役割をパブリックとして割り当てました。データベース mydb ではユーザー マッピングを dbo として割り当て、msdb では dbo として割り当てます。

msdb のユーザー マッピング設定で、次のロールを確認しました。

DatabaseMailUserRole
db_owner
public

次に、このアカウントでアプリにログインし、データベース メール プロファイルを使用してメールを送信しようとします。そして、次のようなエラーが発生しました:

System.Data.SqlClient.SqlException: The EXECUTE permission was denied on the object 'sp_send_dbmail', database 'msdb', schema 'dbo'.

サーバーロールsysadminをこのアカウントに割り当てた場合。その後、正常に動作しています。

しかし、このアカウントに sysadmin を割り当てたくありません。この問題を解決するには?

奇妙なことに、テストサーバーでも試しています。そのアカウントは、msdb の DatabaseMailUserRole になくても、正常に機能しています。

2 つの SQL サーバー ボックスでの唯一の違いは、SMTP 認証設定
です

こんにちはブリッジです。ありがとう。EXEC msdb.dbo.sysmail_help_principalprofile_sp を実行し、本番環境で以下を取得しました。

principal_id    principal_name  profile_id  profile_name    is_default
11      guest       1       sqlservice  0
12      mydomainaccount 1       sqlservice  0

ステージングでは、結果はありません。

4

1 に答える 1