[KB8406] ESETのWindowsサーバ製品でMicrosoft SQL Serverの自動除外を生成するためにデータベースデータの場所を取得する権限を追加する

注意事項

このページはコンピュータによって翻訳されています。このページの「言語」の「英語」をクリックすると、原文が表示されます。ご不明な点がございましたら、お近くのサポートまでお問い合わせください。

問題

解決方法

データベースデータのカスタムロケーションを取得する際にエラーが表示される

Microsoft SQL Server の自動除外は、主にデータベースファイルのデフォルトの場所から構成されます。ただし、データベースファイルがカスタムロケーションに格納されているパスも含まれます。この場合、NT AUTHORITYSYSTEMアカウントには、マスター データベースからこの情報を抽出するための適切な権限が必要です。

Microsoft SQL Server 2016 以降では、Microsoft は NT AUTHORITYSYSTEM アカウントの sysadmin サーバー ロールを削除したため、ESET Windows サーバー製品は、Microsoft SQL Server インスタンスのデータベース データの場所を含むマスター データベースのデータにアクセスできなくなりました。

ESET Windows サーバー製品は、この問題をエラーメッセージで通知します。ログファイル]をクリックし、ドロップダウンメニューから[イベント]を選択して、エラーメッセージを表示します:

「Microsoft SQL Server データベースからデータベースファイルをロード中にエラーが発生しました。NT AUTHORITYSYSTEM」アカウントが、マスター・データベースのシステム・ビューからデータを読み取るのに十分な権限を持っているかどうかを確認してください。

図 1-1
クリックすると新しいウィンドウで拡大表示さ
れます。
セキュリティ上の理由で変更できない場合
  • 変更できない場合、自動除外はデフォルトの場所のみで構成されます。
  • 特定の場所(デフォルトのパスではない)にデータベース ファイルがある場合は、そのパスを手動で追加するか、除外対象に追加します。
  • すべてのデータベース ファイルがデフォルトの場所にのみ配置されている場合は、このエラーを無視してください。


ESET サービスがデータベースデータのカスタムロケーションを取得できるようにする

ESET サービスがデータベースデータのカスタムロケーションを取得できるようにするには 、Microsoft SQL Server Management Studio を使用して、以下の 3 つの手順のいずれかを実行します:

  1. NT AUTHORITYSYSTEM アカウントに 'View any definition' 権限を付与します(推奨)。
  2. NT AUTHORITYSYSTEMアカウントに'sysadmin'サーバ・ロールを付与する。
  3. NT AUTHORITYSYSTEMアカウントの'master'データベースに'db_owner'データベース・ロールを割り当てる。
A.NT AUTHORITYSYSTEMアカウントに'View any definition'権限を付与する(推奨)。
推奨手順

この手順は読み取り権限のみを付与するので、システムへのセキュリティ影響は最小限です。

  1. Microsoft SQL Server Management Studio に移動し、選択した Microsoft SQL Server インスタンスに接続します。

  2. Securables をクリックします。Grant列で、View any definitionの横のチェックボックスを選択します。OK をクリックする。

    図 2-1
B.NT AUTHORITYSYSTEMアカウントに'sysadmin'サーバ・ロールを付与する。
  1. Microsoft SQL Server Management Studioに移動して、選択したMicrosoft SQL Serverインスタンスに接続する。

  2. Server Roles」をクリックし、「sysadmin」の隣にあるチェック・ボックスを選択し、「OK」 をクリックする。

    図 2-2
C.NT AUTHORITYSYSTEM アカウントの'master'データベースに'db_owner'データベース・ロールを割 り当てる。
  1. Microsoft SQL Server Management Studioに移動し、選択したMicrosoft SQL Serverインスタンスに接続する。

  2. User Mappingをクリックします。このログインにマップされたユーザー]セクションで、[master]の横にあるチェックボックスを選択します。データベース・ロール・メンバーシップ・フォー・セクションでdb_ownerの隣のチェック・ボックスを選択します。OK をクリックする。

    図2-3
各 Microsoft SQL Server インスタンスで実行する手順

選択した手順は、サーバーにインストールされている Microsoft SQL Server インスタンスごとに実行する必要があります。

サーバーにインストールされている Microsoft SQLServer インスタンスのリストを取得する。

1つのサーバーで複数のMicrosoft SQL Serverインスタンスを使用している場合は、Microsoft SQL Serverの特定のインスタンスに接続します。


単一サーバー上の複数のMicrosoft SQL Serverインスタンス

Microsoft SQL Server Management Studioの起動時に表示される接続ダイアログを使用して、Microsoft SQL Serverの特定のインスタンスに接続することができます:

  1. Microsoft SQL Server Management Studioに移動し、選択したサーバーに接続します。

  2. Microsoft SQL Server Management Studioに移動し、選択したサーバーに接続します。

    <サーバー名><インスタンス名

    図 3-1
Microsoft SQL Server Express

一部の複雑な環境またはサービス・インストールでは、Microsoft SQL Server Expressと呼ばれるMicrosoft SQL Serverの無償エディションが提供されている。

このSQLサーバー・エディションは無料で利用できる。サイズと性能に制限があり、小規模企業に適しています。

たとえば、ESET PROTECT のインストール時に独自の Microsoft SQL サーバを提供しない場合、Microsoft SQL Server Express がデフォルトでインストールされます。

Microsoft SQL Server Express ですべてのインスタンスに権限を設定する

それでもエラーメッセージが表示される場合は、Microsoft SQL Server Express のインスタンスがインストールされていないことを確認してください。Microsoft SQL Server Expressのインスタンスがある場合は、最初のセクションで説明したアクセス許可を更新します。

Microsoft SQL Serverインスタンスのリストの取得

サーバーにインストールされているMicrosoft SQL Serverインスタンスのリストを取得するには、いくつかの方法があります:

  • Microsoft SQL Serverの新しいインスタンスをインストールする場合、新しいインスタンスの名前を入力するステップで、インストールウィザードが現在インストールされているインスタンスのリストを表示します。

  • インストールされているインスタンスのリストは、次のWindowsレジストリパスにあります:

    HKEY_LOCAL_MACHINE ProxySOFTWARE ProxyMicrosoft SQL Server ProxyInstance Names

    リストを取得するには、以下のPowerShellコマンドを使用します:

    Get-Item "HKLM:¥SOFTWARE¥Microsoft¥Microsoft SQL Server¥Instance NamesSQL" | % {$_.Property}
  • 各 Microsoft SQL Server インスタンスは、対応するサービスをシステムにインストールします。このサービス名は以下の形式です:

    SQL Server (<インスタンス名>)

    以下のPowerShellコマンドを使用すると、システム内のこれらのサービスをフィルタリングして、インストールされているMicrosoft Server SQLインスタンスのリストを取得できます:

    Get-Service | ?{ $_.DisplayName -like "SQL Server (*")}