問題タブ [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 - xp_cmdshellネイティブエラー208、SQL Server2008R2のBCP
私は、大きくて複数結合されたSELECTステートメントの結果を取得し、クエリ結果をCVSファイルとして電子メールで送信しようとしています。クエリは正しく、電子メールは送信されていますが、結果のCVSファイルとしてのエクスポートを自動化するのに問題があります。私が読んでいることから、クエリ結果を自動エクスポートするための最善の策は、「BCP」と呼ばれるツールです。
ManagementStudioで次のようにBCPを使用しようとしました。
FootPrintは特定のデータベースの名前であり、datex_footprintはスキーマです。(これは実際のクエリではなく、単なるテストクエリです)。
これを実行すると、次のエラーが発生します: "SQLState = S0002、NativeError = 208" "Error = [Microsoft] [SQL Server Native Client 10.0][SQLServer]無効なオブジェクト名'datex_footprint.Shipments'。"
datex_footprint.Shipmentsが、テストしようとしているデータの正しいスキーマ\テーブルアクセスであることを100%確信しています。
この結果をCSVファイルにエクスポートしようとすると、私が見逃していることや間違っていることを誰かが見ていますか?具体的には、しかし、私はこのプロセスを自動化しようとしています。結果をCSVファイルにエクスポートする方法は知っていますが、T-SQLでエクスポートして、時刻ごとにファイルの生成を自動化できるようにしたいと考えています。
どんな助けでもいただければ幸いです!
sql-server - SQL Server:xp_cmdshellの特権は非常に限られています
こうなのかわからない。私が手順で何かをしようとしているとき、xp_cmdshell
それはほとんど毎回私に与えますAccess Denied
。
たとえば、新しい.txt
ファイルを作成したり、新しいユーザーを作成したりすることはできません。Windows管理者ユーザーでログインしています。
管理者権限でこの手順を実行する方法はありますか?
sql - SQL xp_cmdshell サーバー間でファイルをコピーする
特定のフォルダー内のすべての .zip を別のフォルダーに移動しようとしています。ソースフォルダーは別のサーバーにあり、現在使用しています
両方のサーバーにログインしている場合は機能しますが、目標は、このプロセスを VIA sql サーバー ジョブ エージェントを介して自動化することです。私が試してみました
しかし、次のエラーが表示されます。
sp_xp_cmdshell_proxy_account の実行中にエラーが発生しました。考えられる理由: 指定されたアカウントが無効であるか、'##xp_cmdshell_proxy_account##' 資格情報を作成できませんでした。エラー コード: '0'。
また、これが私の解決策であるかどうかもわかりません。これを達成する方法を教えてください。server1 のファイル名は、名前と数量が毎日変わります。
sql - ストアドプロシージャからxp_cmdshellを呼び出す
xp_cmdshell
概念実証として、既存のソリューションにコマンドを挿入しようとしています。現在、アプリケーションはデータベースサーバーでストアドプロシージャを呼び出します。これは、プロファイルを作成すると次のようになります。
SPは基本的にトランザクションを開き、行を挿入してからコミットします。この中に追加しました:
次に、SSMSクエリウィンドウでコードの最初のブロックを実行すると、ファイルがサーバー上で期待どおりに生成されます。しかし、アプリケーションを使用してアプリケーションを呼び出すと、行は通常どおり挿入されますが、ファイルは生成されませんか?
SQL ServerとSQLAgentのユーザーはローカル管理者とシステム管理者であるため、そこで問題を確認することはできません。アプリケーションユーザーをローカル管理者にしようとしましたが、無駄になりましたが、すでにシステム管理者でした。
これはSQLServer2000です
sql-server - xp_cmdshell エラー "ファイル名、ディレクトリ名、またはボリューム ラベルの構文が正しくありません。"
SQL 2000 から SQL 2008 へのシステムのアップグレードである、いくつかのコードを本番環境に展開している最中です。
データベースからいくつかのデータを取得し、bcp を介していくつかのファイルを作成し (successfull)、いくつかの移動コマンドを実行しようとするストアド プロシージャの 1 つで、不思議な問題が発生しています。確実に存在し、サービスは sysadmin として実行されています。
実行しようとしているコードは次のとおりです。
これは私が返すエラーメッセージです
返されたコマンドラインエラーは
これは、同じようにセットアップされた UAT バージョンのデータベースで正常に機能します。
助言がありますか?
アップデート:
ソース ディレクトリにファイルがない場合、エラーを再現できます。おそらくソースディレクトリにファイルがあるはずだと思いますが、 bcp によって作成されるまでにラグがあり、移動を実行するときにまだ存在していないのだろうか?何か案は?
sql-server - ユーザーが SQL から BCP エクスポート コマンドを実行できるようにする最も安全な方法は何ですか?
私は現在、手動の SQL スクリプト内からプログラムでテーブルをエクスポートする機能が非常に役立つ環境で作業しています。
スクリプトからエクスポートを実行することは、ストアド プロシージャ内からプロセス全体を実行するための最初のステップになるため、SQL からエクスポートを開始できる必要があります。
組織は現在、ほとんどのサーバーで次の構成を持っています -
- SQL Server 2005 または 2008
- xp_cmdshell -無効
- CLR -有効
最終的には、次のパラメーターを渡すプロシージャーを呼び出して、エクスポートを実行できるようにしたいと考えています。
- テーブル名
- ファイル パス/名前 (ネットワーク共有上)
- ファイル形式
現在、BCP は機能面で完璧なオプションのように思えますが、xp_cmdshell が無効になっているため、コマンド ラインから呼び出すことができません。
組織は非常に小さく、安全なソリューションに向けて喜んで取り組んでおり、これまでのところ、セキュリティを適切なレベルで管理しているとの印象を受けました. 彼らは xp_cmdshell を無効にするという包括的な決定を下しましたが、使用を許可する安全な方法を提示できれば、彼らはかなり受け入れてくれると思います。
私の研究では、「EXECUTE AS」機能と証明書を使用した署名手順の両方に出くわしましたが、どちらのアプローチも私が望むものを達成するのに役立つかどうかはまだわかりません.
また、同じ最終結果を達成できる別の解決策があれば、私はすべて耳にします!
sql - xp_cmdshell queryout は Excel ファイルを正しく生成していますが、ファイルの途中に空白行が 1 行あります。
毎月末に 1 回実行するストアド プロシージャがあります。
いくつかのファイルが生成されます。それらの 1 つは .csv ファイルです。
これでファイルが作成されます。問題は、ファイルの途中に空白行があることです。なぜそれが起こるのかを理解しようとしています。おそらくクエリアウト結果のサイズに関係していると思いますか?クエリは、15,000 を超えるレコードを返し、Excel ファイルに入れます。それを壊そうとしているのだろうか?
誰にも手がかりはありますか。ここでの問題は、これをトラブルシューティングするのが非常に難しいことです。これは、構文/論理的には問題ないため、問題が何であるかわかりません。
どんな助けでも大歓迎です。
以下はエクセルファイルのスクリーンショットです。
sql-server - bcp-xp_cmdshellとsp_oaMethodセキュリティを介したダンプ
Microsoft SQL Server 2008 R2を使用していて、(スケジュールされたジョブを使用して)bcpを介してテーブルをダンプしようとしています。まず、xp_cmdshellを使用して実装しましたが、セキュリティ上の理由から、これは避けるべきだと聞いています。
だから私の質問:sp_oaMethodはどうですか?それを使用する必要がありますか?そうでない場合は、なぜですか?そして、あなたは他の可能性を提案できますか?
sql - SQL Serverを使用してディレクトリが存在するかどうかを確認するにはどうすればよいですか?
このコマンドでディレクトリが作成されることはわかっています。
しかし、「C:\ tests \」が存在するかどうかを確認するにはどうすればよいですか?
sql-server - xp_cmdshell プロキシが実行されていません
Sysadmin アクセス権を持つプロキシ アカウントを作成しました。ユーザーはこれを使用して、選択した bcp コマンドを実行します。
ただし、ユーザーが取得したプロシージャを実行したい場合:オブジェクト 'xp_cmdshell'、データベース 'mssqlsystemresource'、スキーマ 'sys' で EXECUTE 権限が拒否されました
これが私のProcです:
私のプロキシ アカウントは、ローカルの Sysadmin アカウントです。