これを達成する方法はありますか?ローカルサーバーとリモートサーバーを完全に制御できます。
2 に答える
他のSPと同じように実行できます。ただし、リモートファイルに関するデータのみを取得することに注意してください。ローカルファイルに関するデータが必要な場合は、SQLServer側では実行できません。クライアント側で確認し、(サーバー側でこれらのデータを使用する必要がある場合は)パラメーターとしてSQLServerに送信する必要があります。
正しければ、ネットワークパスを使用してxp_fileexistを実行し、リモートサーバーにアクセスしようとします。例:
exec master.dbo.xp_fileexist "\\another_server\path\file"
それができない場合の主な理由-SQLSERVERサービスはLOCALSYSTEMアカウントで実行されています。このアカウントはローカルコンピューターアカウントであり、ネットワークにアクセスできません(ただし、server2の共有フォルダーへのアクセスをserver1アカウントからlocalsystemに許可する方法があります)。したがって、SQLServerサービスをDOMIAN\ USERで実行するように構成すると、上記のコマンドを実行して正しい結果を得ることができます。また、ドメインアカウントでSQLサーバーを実行している場合、ユーザーがSQLサーバーにアクセスできるようになるとすぐに、ドメインセキュリティシステムの穴になり、XP_CMDSHELLをリモートで実行できるようになることに注意してください。
ローカルシステムで実行されているSQLServer2000でテストし、ドメインアカウントで実行するように再構成しました。