8

SQL Server 2008 R2 Expressで作業していますが、クライアントPCからSQL Serverデバッグ機能を使用している場合、次のエラーが発生します。

オブジェクト「sp_enable_sql_debug」、データベース「mssqlsystemresource」、スキーマ「sys」に対するEXECUTE権限が拒否されました。(Microsoft SQL Server、エラー:229)

私のユーザー名は「HALI」で、権限が割り当てられているのは「public」と「db_Owner」です。

このエラーの後、使用可能なすべての権限を割り当てました。そして、すべてのサーバーの役割。

このとき、新しいエラーメッセージが表示されました。

エラーHRESULTE_FAILが、COMコンポーネントの呼び出しから返されました。(mscorlib)

ここで、このエラーの解決策は何でしょうか。

4

3 に答える 3

7

ファイアウォールを無効にするだけで十分かどうかはわかりません。ユーザーがsysadmin権限を持っていてもこのエラーが発生する場合は、クライアントがデバッグモードでサーバーに接続できないことを意味します。このTCPおよびUDPポートが正しく開いていることを確認してください。

SQLリモートデバッグ構成

編集:1

あなたもたくさんググって、エラーメッセージについて調べようとしたに違いありません。私がこれまでに見つけたのは、あなたが言及したOPのエラーは誤解を招くものであり、そのエラーから、正確に何が間違っているのか、次に何を見るべきかを判断できません。ただし、コメントで返信したように、リモートデバッガーを有効にするために変更を加えた後。言及されたエラーはより明確であり、適切な許可はまだ問題であると私は感じています。これまでに試したことがあるかもしれない他の提案がたくさんありますが、これを行っていない場合は、もう一度試してみましょう。

コメントの1つで、Windowsユーザーを使用してログインしてみることをお伝えしました。

ここで、上記のリンクで説明されているTCPポート、ファイアウォール例外などに対してすでに行った設定を保持します。DBサーバーをインストールしたWindows2012サーバーがあります。およびWindows8Profで、DBクライアントがあり、SSMSを介して接続しています。今では、両方のマシンが同じドメインにあると思います。ドメインXYZとしましょう。サーバーにWindowsをログインさせる必要があります。たとえば、WindowsServerにログインできるのは「XYZ\HALI」です。ログインして、sysadmin権限を持つSQLSERVERにもログインが存在することを確認します。クライアントマシンも同じドメインにあるため、同じユーザー「XYZ\HALI」を使用してクライアントマシンにログインしていることを確認してください。次に、SSMSを起動し、SQLSERVER認証の代わりにWindows認証を選択します。今すぐT-SQLコードのデバッグを開始してみてください。

クライアントマシンとサーバーマシンが同じドメインにない場合は、クライアントマシンのサーバー名をリンクサーバーとして登録し、ログイン/ユーザーをローカルに偽装してから、デバッグを試行する必要があります。

編集:2

Windows認証を使用してSSMSにログインする

于 2013-10-26T02:23:08.250 に答える
3

SQL 2012スクリプトを生成し、SQL 2008 R2データベースで実行した後、この問題が発生しました。

調査の結果、ターゲットのSQL2008R2が最大2GBのファイルをサポートする32ビットOSで実行されていることがわかりました。そこで、スクリプトをC:\ myScript.sqlとして保存し、次の手順でコマンドプロンプトで正常に実行しました。

  1. コマンドプロンプトウィンドウを開きます。

  2. コマンドプロンプトウィンドウで、次のように入力します。

    sqlcmd -S myServer\instanceName –U yourUserName –P yourPassword -i C:\myScript.sql
    

    ここmyServer\instanceNameで、はインスタンス名です。SQLサーバーログイン用のユーザー名とパスワードを入力し、最後に示されているファイルのパスを入力します。

  3. Enterキーを押します。

参照:

于 2016-02-15T13:12:32.567 に答える
1

私がそのエラーに遭遇したことが数回ありますが、それは常にファイアウォールに関連しています。リモートサーバーで作業していますか、それともローカルマシンで作業していますか?(基本的に、考えられるすべての役割を慎重に割り当ててください。それらの一部は絶対に必要ないものです。SQLデバッグに必要なのはsysadminです。チェックした残りの役割を無効にして、その役割を割り当ててみてください。)

procのデバッグは常に面倒です。このASP.NETの投稿は、かなり前に私を助けてくれました。

于 2013-03-25T11:36:01.210 に答える