1

xp_cmdshell概念実証として、既存のソリューションにコマンドを挿入しようとしています。現在、アプリケーションはデータベースサーバーでストアドプロシージャを呼び出します。これは、プロファイルを作成すると次のようになります。

   declare @P1 int
   set @P1=1
   exec Name_Of_The_SP @param1 = 3, @param2 = 'blah', @parametc = 'blahetc', @ID = P1 output
   select @P1

SPは基本的にトランザクションを開き、行を挿入してからコミットします。この中に追加しました:

exec master..xp_cmdshell 'dir > c:\test.txt'

次に、SSMSクエリウィンドウでコードの最初のブロックを実行すると、ファイルがサーバー上で期待どおりに生成されます。しかし、アプリケーションを使用してアプリケーションを呼び出すと、行は通常どおり挿入されますが、ファイルは生成されませんか?

SQL ServerとSQLAgentのユーザーはローカル管理者とシステム管理者であるため、そこで問題を確認することはできません。アプリケーションユーザーをローカル管理者にしようとしましたが、無駄になりましたが、すでにシステム管理者でした。

これはSQLServer2000です

4

1 に答える 1

-1

私たちはこれを理解することができました-私たち(私)はプロファイラーで幹部が別のログインで入ってくることを見落としていました。master.dbo.xp_cmdshellに実行権限を付与すると、特に機能します。これに時間/労力を費やした人にはお詫びします!

于 2012-10-09T14:03:14.043 に答える