問題タブ [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.
sql-server - xp_cmdShell が SQL Server 2000 で機能しない
SQL Server 2000 のテーブルの 1 つで、「トリガーの挿入後」からサーバーでコンソール アプリケーションを実行しようとしました。次の行を使用しました。
この「C:\temp\SendEmailConsole」は、アプリケーションのテスト場所です。
2000年より新しいSQL Serverの他のバージョンでも機能します。これを使用してコマンドをアクティブにしました:
私の最初の質問は、なぜmaster..sp_configure 'xp_cmdshell', 1
SQL Server 2000 で動作しないのですか? そして、代替コマンドは何ですか?
そして2番目の問題は、「挿入後」トリガーの失敗は何ですか?
最後に、そのための代替ソリューションはありますか?
助けてくれてありがとう。
アップデート :
今、そのテーブルにレコードを挿入すると、サーバープロセスがロックされます!!!! 私の間違いは何ですか?
sql - ストアド プロシージャで xp_cmdshell の有効化と無効化を繰り返すことによるパフォーマンスの低下はありますか?
SQLサーバーストアドプロシージャでファイル操作とbcpコマンドを実行するためにいくつかのdosコマンドを使用しています。そのため、xp_cmdshell のオンとオフを何度も設定しています。SP の開始時に 1 回だけ有効にし、SP の終了時に無効にすると、xp_cmdshell が有効になっていないというエラーが何度も発生するため、これを複数回実行しています。
SO私はSPの各dosコマンドで有効化および無効化しています。これにより、SQL Server に負荷がかかったり、パフォーマンスの問題が発生したりしませんか?
また、この xp_cmdshell を常に有効に設定する方法が必要です。これを行う方法はありますか?
sql-server - cURL を使用した SQL Server メンテナンス プランからの POST
SQL Server メンテナンス プランで発生する可能性のあるさまざまなイベントを監視しようとしています。これを行うための私の望ましい方法は、保守計画でデータを使用して HTTP POST を実行することです。いくつかの調査の後、cURL を使用することをお勧めしますが、セキュリティの観点から理想的ではない xp_cmdshell を有効にする必要があることを理解しています。
そのため、xp_cmdshell が有効になっているかどうかを確認し、コマンドを実行するのに十分な時間有効になっていない場合は、もう一度無効にする T-SQL を少しまとめようとしています。しかし、私が以下に持っているのは協力的ではなく、それらすべてのGOと関係があると確信しています...
助けてくれてありがとう。
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権限を追加しました!
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 への実行アクセス許可をプロキシ アカウントに付与しましたが、まだこのエラーが発生します。
私はこれでそれを確認しました:
他にセキュリティを設定する必要がある場所はありますか?
sql-server - ストアド プロシージャ内のコマンド シェル スクリプトから OUTPUT 値を選択しない方法は?
SSRS レポートで使用されるストアド プロシージャがあります。
ただし、クエリを実行する前にこれを実行する必要があります。
問題は、これを最初に実行すると OUTPUT セルが返されることです。「出力」だけでなく、適切なクエリが必要であるため、これはレポートをスローします
この OUTPUT SELECT を省略するにはどうすればよいですか? 「NO_OUTPUT」を追加しようとしましたが、まだ機能しません:
c# - プログラムで SQL Server セッションのドライブをマップする方法
C#でドライブ(yなど)をネットワーク共有の場所にマップするにはどうすればよいですか? マップされたドライブは、SQL セッションで認識される必要があります。これは、C# アプリケーションからマップされたドライブ (例: y) に SQL データベースをバックアップするためのものです。マップされたドライブのネットワークの場所、ユーザー、およびパスワードを簡単に変更できるように、プログラムで実行したいと考えています。
SSMS / SQL セッション内で、クエリ ウィンドウでマップされたドライブを作成できました。
その後、C# アプリケーションから SQL Server データベースをバックアップできました。疑問に思っていますが、C# でこれを行うにはどうすればよいですか?
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"
それはこのように動作します:
しかし、次のようには機能しません。
このようなものでもありません:
どちらも好きではありません:
誰か助けてくれませんか?