5

データベーストリガー内でxp_cmdshellを使用して、exeファイルを起動しています。

xp_cmdshellが有効になっています(「echo」のような単純なcmdコマンドを実行できます)。しかし、xp_cmdshellを介してexeを起動しようとすると、アクセスが拒否されます。

私はデータベース管理者です。そして、cmdを介してexeを直接起動できます。なぜ私が拒否されるのか、そしてそれを修正する方法を知っている人はいますか?

4

7 に答える 7

13

xp_cmdshellを使用して「whoami」を実行し、exeファイルおよびアクセスするリソースで指定されたユーザーの有効なアクセス許可を確認します。xp_cmdshellを介してプロセスを実行するためにlocalsystemのようなアカウントが使用されている可能性があります。

EXEC xp_cmdshell 'whoami'
于 2012-05-30T19:36:17.667 に答える
9

NTFSアクセス許可が不十分である可能性があります。SQL Serverが実行されている「ユーザーアカウント」に、*。EXE(および依存ファイル)へのアクセス許可(読み取り+実行)があることを確認してください。

于 2012-05-30T19:01:43.070 に答える
0

確かではありませんが、トリガーは、トリガーを「トリガー」したSQLコマンドを実行しているユーザーによって実行されていると思います。

SQLコマンドを発行しているユーザーはWindowsユーザーですか、それともSQLユーザーですか?SQLユーザーの場合は、「SQLプロキシ」を設定する必要があります。SQLプロキシは、ファイルシステムへのアクセスに使用されるWindowsユーザーをSQLに通知するために使用されます。

お役に立てれば、

イヴ

于 2012-09-17T17:20:47.283 に答える
0

BCPを実行してからCOPYを実行しようとすると、ACCESSDENIEDが発生していました。

私が見つけたのは、xp_cmdshellがc:\ windows\system32で始まるということです

CMDファイルを変更して作業フォルダーに変更しました

L:cd L:\ myworkingfolder

これで問題は解決しました。sqlagentはローカル管理者であり、コピーコマンドをフルパスで実行していましたが、イベントです。

于 2015-02-09T19:52:30.320 に答える
0

今すぐ貢献する時間です。私はsysadminの役割で、2人のパブリックアクセスユーザーにxp_cmdshellを実行させる作業をしました。xp_cmdshellは実行できますが、2人のユーザーは実行できません。

私は次の手順を実行しました。

  1. 新しい役割を作成します。

    マスターを使用CREATEROLE[CmdShell_Executor] AUTHORIZATION [dbo] GRANT EXEC ON xp_cmdshell TO [CmdShell_Executor]

  2. マスターデータベースにユーザーを追加します:[セキュリティ]->[ユーザー]。メンバーシップは、作成されたばかりの[CmdShell_Executor]のみをチェックします

  3. プロキシアカウントを設定します。

    EXEC sp_xp_cmdshell_proxy_account'domain \ user1'、'users1Windowsパスワード'EXEC sp_xp_cmdshell_proxy_account'domain \ user2'、'users2Windowsパスワード'

次に、両方のユーザーが、Rスクリプトの実行を呼び出すxp_cmdshellを含むストアドプロシージャを実行できます。ユーザーにパスワードを入力させ、1行のコードを実行してから、パスワードを削除します。すべて私のPCにあります。

于 2019-08-23T03:07:21.087 に答える
0

Access is denied.実行可能ファイルへのパスを正しく指定しない場合にも取得できます。パスにスペースが含まれている場合は、実行可能ファイルを二重引用符で囲む必要があることに注意してください。

EXEC xp_cmdshell '"D:\My path\With spaces\runme.exe"'
于 2020-01-02T22:36:34.233 に答える
0

私は同じ問題を抱えていて、次のように解決しました:

  1. SQLServer構成マネージャーを開きます
  2. インスタンスを選択し、右クリック->プロパティ
  3. [ログオン]タブを選択します
  4. そして、許可されたアカウントを選択します
于 2021-01-04T16:51:08.950 に答える