0

PsExec を使用してユーザー アカウントから bash コマンドを呼び出そうとしています。Cygwin が使用されており、SQL からコマンドを実行しようとしています。

exec master..xp_cmdshell 'psexec -u cyg_server -p <pwd> -accepteula "bash script.sh"';

ただし、から次のエラーが表示されpsexecます。

アクセスが拒否されました。

PsExec は bash script.sh を開始できませんでした:

助言がありますか?

SQL 2005、Windows Server 2008、Cygwin を新しいバイナリで使用しています

4

1 に答える 1

1

これは、SQLユーザーまたはそのファイルへのアクセス許可のないユーザーとして実行している可能性があります。私の最善の策はSQLユーザー(などsa)です。これを行うと、使用するWindowsクレデンシャルはサービスアカウントのSYSTEMものになります。これはデフォルトですが、そのように設定すると別のクレデンシャルになる可能性があります。

SQL内からこれを呼び出すだけの場合は、実際に、必要なすべてのファイルを開くためのアクセス許可を持つWindowsユーザーとして実行していることを確認してください。

これがSQLServerエージェントジョブで実行されている場合は、資格情報を設定してから、プロキシを設定する必要あります。これが完了したら、プロキシを割り当ててジョブを実行でき([ジョブステップ]ダイアログの3番目または4番目のドロップダウン)、正しいWindowsクレデンシャルで実行されます。

于 2009-07-27T00:46:13.763 に答える