別のSQLログインアカウントとして実行されるSQLジョブステップを設定する方法に興味があります。既存の資格情報を必要とする新しいプロキシアカウントを設定する必要があるようです。資格情報を作成するときの唯一の選択肢は、Windowsログイン資格情報を使用することです。
私が実行しようとしているジョブは以下のとおりです。他にもステートメントがありますが、SQLログインとして実行するようにジョブステップを設定すると失敗します。
insert into [dbo].[TableA]
SELECT
ss.[Ref_ID]
,mm.[studentID]
,mm.[studentPersonID]
,mm.[studentFirstname]
FROM [dbo].[TableB] mm
left outer join [dbo].[TableC] ss on ss.parentPersonID=mm.parentPersonID and mm.studentPersonID = ss.studentPersonID
where ss.Ref_ID is not null;
これがSQLジョブステップを介して実行されると、失敗します。
Executed as user: an_admin_account. Access to the remote server is denied because the current security context is not trusted. [SQLSTATE 42000] (Error 15274). The step failed.
これらのテーブルがすべてローカルデータベースに存在するときに、なぜリモートサーバーにアクセスしようとしているのかは不明です。
SQLジョブステップには既にSQLインスタンスへの接続があります。したがって、パスワードで新しい接続を作成するのではなく、既存のセキュリティコンテキストを変更する必要があります。新しい接続を作成する場合は、sqlcmdコマンドまたはPowerShellスクリプトを使用できます。その後、スクリプト内のパラメーターとしてSQLログインとパスワードを使用できます。ただし、何をする必要があるか、独自のコンテキストを持つストアドプロシージャで十分かどうかを検討する必要があります。
—
Rob Farley