問題タブ [xp-cmdshell]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1397 参照

sql-server - cURL を使用した SQL Server メンテナンス プランからの POST

SQL Server メンテナンス プランで発生する可能性のあるさまざまなイベントを監視しようとしています。これを行うための私の望ましい方法は、保守計画でデータを使用して HTTP POST を実行することです。いくつかの調査の後、cURL を使用することをお勧めしますが、セキュリティの観点から理想的ではない xp_cmdshell を有効にする必要があることを理解しています。

そのため、xp_cmdshell が有効になっているかどうかを確認し、コマンドを実行するのに十分な時間有効になっていない場合は、もう一度無効にする T-SQL を少しまとめようとしています。しかし、私が以下に持っているのは協力的ではなく、それらすべてのGOと関係があると確信しています...

助けてくれてありがとう。

0 投票する
1 に答える
6218 参照

sql - SQL クエリから .exe ファイルを実行する

SQL クエリまたはジョブ内から .​​exe ファイルを開こうとしています。

xp_cmdshell を使用しており、サーバーで有効になっています

Windows エクスプローラーから .exe をダブルクリックすると、.exe が正しく実行されます。

しかし、xp_cmdshell を使用して開こうとすると、影響を受ける 1 行が返され、その行は null になります。

.exe ファイルは、特定のテーブルからすべてのコンテンツを削除することになっています。Windowsエクスプローラーからファイルを実行すると、.exeは上記のテーブルのすべてのコンテンツを削除しますが、xp_cmdshellを使用しようとすると、テーブルのコンテンツはそのまま残ります。つまり、.exeファイルは開かれません.

何か案は??これは私が使用しているコードです

exec master..xp_cmdshell 'C:\inetpub\wwwroot\Digital_Library_Shamaa\ShamaaConsoleIndexer\Publish\setup.exe'

上記の.exeファイルとそのすべてのサブフォルダーを含むフォルダーに、Everyone権限を追加しました!

0 投票する
2 に答える
9339 参照

sql-server - SQL 2012 bcp 呼び出しは SQLState = 28000 を返します。NativeError = 18456 ユーザーのログインに失敗しました

xp_cmdshell を呼び出す SQL ストアド プロシージャを使用しています。xp_cmdshell が有効になっており、プロキシ アカウントが「vpexporter」に設定されています。この sproc は、データ ファイルをディスクに書き出すように設計されています。

この sproc は、SQL 2005 サーバー上で動作していました。環境は SQL 2012 にアップグレードされ、sproc は実行されなくなりました。呼び出しを行う行は次のとおりです。

これを SSMS で実行すると、次のようになります。

SQLState = 28000. NativeError = 18456 エラー = [Microsoft][SQL Server Native Client 11.0][SQL Server] ユーザー 'vpexporter' のログインに失敗しました。

SQL ログインとドメイン アカウントの両方でこれを試しました。どちらも同じエラーを返します。「vpexporter」がログインとして追加され、xp_cmdshell の実行権限を持つマスター データベースのユーザーとして設定されました。

SQL バージョン 2012 で xp_cmdshell を呼び出す方法が変わったに違いないと思いますが、グーグルで検索しても何も見つかりませんでした。

SQL Serverが実行されているアカウントである「nt authority\network service」を返す「exec xp_cmdshell 'whoami.exe'」を実行してみました。

私の理解では、「sp_xp_cmdshell_proxy_account」でコマンド シェル プロキシ アカウントを指定すると、代わりにそれが使用されるということでした。ネットワーク サービスへの xp_cmdshell 実行アクセス権を付与したくありません。


私はいくつかの進歩を遂げましたが、まだ立ち往生しています。元のエラーは、クエリ行に「-S ServerName\InstanceName」を追加して SQL インスタンスを指定する必要がある新しい環境が原因でした。エラーが表示されます:

「cvADPTaxCreditExp」ストアド プロシージャを起動できません。オブジェクト 'xp_cmdshell'、データベース 'mssqlsystemresource'、スキーマ 'sys' に対する EXECUTE 権限が拒否されました。

マスターの xp_cmdshell への実行アクセス許可をプロキシ アカウントに付与しましたが、まだこのエラーが発生します。

私はこれでそれを確認しました:

他にセキュリティを設定する必要がある場所はありますか?

0 投票する
1 に答える
2532 参照

sql-server - ストアド プロシージャ内のコマンド シェル スクリプトから OUTPUT 値を選択しない方法は?

SSRS レポートで使用されるストアド プロシージャがあります。

ただし、クエリを実行する前にこれを実行する必要があります。

問題は、これを最初に実行すると OUTPUT セルが返されることです。「出力」だけでなく、適切なクエリが必要であるため、これはレポートをスローします

この OUTPUT SELECT を省略するにはどうすればよいですか? 「NO_OUTPUT」を追加しようとしましたが、まだ機能しません:

0 投票する
1 に答える
443 参照

c# - プログラムで SQL Server セッションのドライブをマップする方法

C#でドライブ(yなど)をネットワーク共有の場所にマップするにはどうすればよいですか? マップされたドライブは、SQL セッションで認識される必要があります。これは、C# アプリケーションからマップされたドライブ (例: y) に SQL データベースをバックアップするためのものです。マップされたドライブのネットワークの場所、ユーザー、およびパスワードを簡単に変更できるように、プログラムで実行したいと考えています。

SSMS / SQL セッション内で、クエリ ウィンドウでマップされたドライブを作成できました。

その後、C# アプリケーションから SQL Server データベースをバックアップできました。疑問に思っていますが、C# でこれを行うにはどうすればよいですか?

0 投票する
1 に答える
3414 参照

sql - SQL を使用して変数パスを持つ xp_cmdshell で複数のファイルを 1 つにコピーします。

Sql Server 2008 で bcp を使用していくつかの csv ファイルを作成しました。これらのファイルを 1 つにマージする必要があります。ファイルのパスを明示的に定義すると機能しますが、宣言すると、ファイルが見つからないことがわかります。

declare @variable_path_file1 = "c:\file.csv" declare @variable_path_file2 = "c:\file2.csv"

それはこのように動作します:

しかし、次のようには機能しません。

このようなものでもありません:

どちらも好きではありません:

誰か助けてくれませんか?

0 投票する
1 に答える
221 参照

ssis - xp_cmdshell を介したパラメーター付きのアクセス拒否 SSIS

解決策を上下に検索しましたが、役立つものが見つかりません。私が試したことはすべてうまくいかないようです。

私は2つのデータベースを持っています。テーブルなどを追加してデータベース A を変更することはできません。クロスデータベース アクセスを有効にできません。パラメータを渡す必要があるため、sp.Start_jobを使用できないと思います。xp_cmdshell を有効にできました。

私のデータベース定義:

私は何をする必要がありますか:

私が試したこと:

フーアミの結果

xp_cmdshell 結果

助言がありますか?SQL Server エージェントで設定した場合、ジョブは正常に実行されます。最終的には、データベース A のテーブル Orders のトリガーから xp_cmdshell を呼び出してデータベース B にデータを入力し、条件が満たされた場合に sp_send_dbmail で電子メールを送信します。

0 投票する
1 に答える
93 参照

sql - cmdshell を使用した TSQL で例外をキャッチするにはどうすればよいですか?

このスクリプトを作成して、バッチ .sql ソース ファイルを処理し、SP を定義しました (移行の一部として)。それは正常に動作しますが、ソースファイルが正しくなく、指定された sp を作成できない場合、例外をキャッチできません。私はtry/catchを使用しようとしましたが、cmdshellは結果を気にしないように見えます.このファイルの出力は、適切なファイルとは異なります. 他にどうすれば不良ファイルをキャッチできるか知っていますか??

ありがとうM

終わり

0 投票する
1 に答える
338 参照

sql-server-2008 - xp_cmdshell から gpg2 を使用する

外部ベンダーに送信する xml ファイルを暗号化するために、SQL から直接 gpg2 を使用しようとしています。エラーなしで xml ファイルと ftp を作成できますが、gpg2 コマンドを使用してファイルを暗号化しようとすると問題が発生します。

コマンドを .txt ファイルにエコーするストアド プロシージャがあり、そのファイルを xp_cmdshell で実行します。暗号化するファイル名に応じてコマンドを動的に作成できるように、このように設計しました。

これは、実行できるようにテキスト ファイルに書き込んでいるコマンドです。このコマンドは、SQL ボックスのコマンド ラインから呼び出すと正常に機能しますが、xp_cmdshell 内では機能しません。

"C:\Program Files (x86)\GNU\GnuPG\gpg2" --recipient FTPUser --output C:\FTP\Outgoing\test.gpg --batch --encrypt C:\FTP\Outgoing\SomeFile.xml

メッセージは次のとおりです。

gpg: FTPUser: スキップ: 公開鍵なし gpg:

C:\FTP\Outgoing\SomeFile.xml: 暗号化に失敗しました: 公開鍵がありません

gpg4win(2.2.5) プログラムは SQL 2008R2 ボックスに直接インストールされ、キーを生成し、FTPUser アカウントを使用して署名するプロセスを経ました。SQL で xp_cmdshell コマンドを実行しているときに、メッセージを一時テーブルにダンプすることができました。結果は上記の 2 つのメッセージです。

SQL から呼び出すときに使用する必要がある別の gpg2 コマンドはありますか? インターウェブを検索してみましたが、無駄であることがわかりました。

0 投票する
1 に答える
469 参照

sql - sambaを使用したLinux共有フォルダーでxp_cmdshellを使用してSQLから.csvファイルを作成するには?

とても複雑だと思います。私は一日中解決策を探していました。

私は SQL Server 2008 R2 を使用しており、現在いくつかのファイルをxp_cmdshell生成しています.csvC:\

私が今やりたいことは、それらをネットワーク内の Linux サーバーに直接生成することです。

私はこれを試しました:

そして、私が得るのは、「システムは指定されたパスを見つけることができません」です。
マップされたドライブが正常に作成されると、「コマンドは正常に完了しました。」と「T: は正常に削除されました。」

前もって感謝します