0

誰かが次の問題を説明して解決できますか。ありがとう。

Windows Server 2012 上の SQL Server 2012 で実行すると、このクエリの問題が発生しました。
クエリ (@query) は、スタンドアロンの場合は非常にうまく動作しますが、SQL Server エージェント ジョブに配置すると結果が表示されません (以下を参照)。

@query = N'SELECT p.name AS [Name] FROM sys.server_principals r
INNER JOIN sys.server_role_members m ON r.principal_id = m.role_principal_id
INNER JOIN sys.server_principals p ON p.principal_id = m.member_principal_id
WHERE r.name = "sysadmin";' 

興味深いことに、Windows Server 2008 で動作する Sql Server 2012 でテストしたところ、スタンドアロンでも SQL Server エージェント ジョブでも完全に動作しました!!?

4

1 に答える 1

0

原因と解決策を見つけました。

これは、SQL Server エージェントを実行するアカウント/ユーザーに付与される権限にあります。データベース メール プロファイルにアクセスするには、このアカウントに少なくとも securityadmin サーバー ロールが必要です。そうでない場合、エラーが返されるか、メッセージがまったく送信されません。必要なサーバーの役割を付与するには、[セキュリティ] > [ログイン] に移動して、そのアカウントを新しいログインとして追加し、securityadmin サーバーの役割を付与します。

これが、私と同じ問題に遭遇する可能性のある人に役立つことを願っています.

于 2014-11-25T00:29:01.400 に答える