SharePoint Server でオブジェクト キャッシュ ユーザー アカウントを構成する

適用対象:yes-img-13 2013yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

オブジェクト キャッシュには、SharePoint Server 内のアイテムに関するプロパティが格納されます。 このキャッシュのアイテムは Web ページを表示する際に発行機能によって使用されます。 オブジェクト キャッシュの目的は、SQL サーバーを実行中のコンピューターの負荷を軽減し、要求の待機時間およびスループットを向上させることです。 オブジェクト キャッシュはすぐに使用できる 2 つのユーザー アカウント (Portal Super User および Portal Super Reader) の 1 つでクエリを作成します。 これらのユーザー アカウントをオブジェクト キャッシュが正常に動作するように正しく構成する必要があります。 Portal Super User アカウントは、Web アプリケーションに対して、フル コントロールのアクセス権があるアカウントである必要があります。 Portal Super Reader アカウントは、Web アプリケーションに対し、すべて読み取りのアクセス権があるアカウントである必要があります。

重要

Portal Super User および Portal Super Reader アカウントは別々のアカウントである必要があり、サイトのログインに使用されるアカウントにすることはできません。

この記事では、これらのオブジェクト キャッシュ ユーザー アカウントを構成する必要がある理由と、アカウントを構成する方法について説明します。 オブジェクト キャッシュの詳細については、「 SharePoint Server でのキャッシュ設定操作」を参照してください。

SharePoint Server では、アイテムのクエリは、クエリを行うユーザー アカウントにリンクされます。 発行機能のさまざまな部分により、結果がオブジェクト キャッシュにキャッシュされるクエリが作成されます。 これらの結果は、クエリを実行するユーザーに基づいてキャッシュされます。 キャッシュヒット率とメモリ要件を最適化するには、ユーザーが下書き項目を表示できるかどうかに基づいてクエリを実行する必要があります。 発行コントロールがオブジェクト キャッシュに対して、コントロールのデータを取得するクエリを作成するように要求すると、キャッシュはクエリを作成します。クエリは、要求を行うユーザーとしてではなく、クエリをポータル スーパー ユーザー アカウントとして 1 回、ポータル スーパー リーダー アカウントとして 1 回行います。 これら 2 つのクエリの結果は、オブジェクト キャッシュに格納されます。 ポータル スーパー ユーザー アカウントの結果には下書きアイテムが含まれており、ポータル スーパー リーダー アカウントの結果には発行済みアイテムのみが含まれます。 オブジェクト キャッシュは、要求を開始したユーザーのアクセス制御リスト (ACL) を確認し、そのユーザーが下書きアイテムを表示できるかどうかを基に、そのユーザーに適切な結果を返します。 ポータルスーパーユーザーアカウントとポータルスーパーリーダーアカウントを Web アプリケーションに追加することで、キャッシュは 2 人のユーザーについてのみ結果を格納する必要があります。 これにより、クエリに対して返される結果の数が増え、キャッシュを格納するために必要なメモリの量が減少します。

既定では、Portal Super User アカウントはサイトのシステム アカウントであり、Portal Super Reader アカウントは NT Authority\Local Service です。 既定で使用できるアカウントの使用には、2 つの重要な問題があります。

  1. 1 つ目の問題は、アイテムの中にはシステム アカウントに対してチェックアウトされているものがあるため、これらのアイテムを含むクエリが実行されると、最新の発行バージョンではなく、チェックアウトされたバージョンのアイテムが返されます。 これによりユーザーが想定していない内容が返されるため、キャッシュはファイルの正しいバージョンを取得するための 2 つ目のクエリを実行する必要があります。 このことは、これらのアイテムを含むすべての要求に対するサーバーのパフォーマンスに悪影響を及ぼします。 ユーザーのアカウントが Portal Super User アカウントに設定されている場合、チェックアウトされたアイテムを持つすべてのユーザーに同じ問題が発生します。 これが、Portal Super User および Portal Super Reader として構成したアカウントを、サイトのログインに使用するユーザー アカウントにしてはならない理由です。 このようにすることで、アイテムの意図しないチェックアウトやパフォーマンスの問題が発生しないようになります。

  2. 既定の Portal Super Reader アカウントは NT Authority\Local Service ですが、これはクレーム認証アプリケーションで正しく解決されません。 結果として、Portal Super Reader アカウントがクレーム認証アプリケーション用に明示的に構成されない場合、このアプリケーションでサイト コレクションを参照すると、サイト管理者であっても「アクセス拒否」エラーとなります。 このエラーは、SharePoint Server 発行インフラストラクチャ、メタデータ ナビゲーション、コンテンツ クエリ Web パーツ、またはナビゲーションなどのオブジェクト キャッシュを明示的に使用する機能を使用するサイトで発生します。

サーバーの全体管理および Windows PowerShell を使用してオブジェクト キャッシュのユーザー アカウントを構成する

オブジェクト キャッシュのユーザー アカウントは、SharePoint サーバーの全体管理 Web サイトと Microsoft PowerShell で構成できます。 最初にサーバーの全体管理でアカウントを作成してから、PowerShell を使用して Web アプリケーションにアカウントを追加する必要があります。 Web アプリケーションごとにユーザー アカウントを追加する必要があります。

注意

この手順の最後に、インターネット インフォメーション サービス (IIS) をリセットし、Web アプリケーションに変更を適用する必要があります。 サイトに接続しているユーザーへの影響が最小限のときに、この手順を実行してください。 IISReset の詳細については、「IIS リセット アクティビティ」を参照してください。

サーバーの全体管理を使用してユーザー アカウントを作成するには

  1. この手順を実行するユーザー アカウントが SharePoint サーバーの全体管理 Web サイトを実行しているコンピューターの Farm Administrators グループのメンバーであることを確認します。

  2. [サーバーの全体管理] の [ アプリケーション管理 ] セクションで、[ Web アプリケーションの管理] をクリックし、構成する Web アプリケーションの名前をクリックします。

  3. [ Web アプリケーション] タブの [ ポリシー] グループで、[ ユーザー ポリシー] をクリックします。

  4. [Web アプリケーションのポリシー] ウィンドウで、[ ユーザーの追加] をクリックします。

  5. [ ゾーン] リストで、[ すべての領域] を選択し、[ 次へ] をクリックします。

  6. [ ユーザー ] ボックスに、ポータル スーパー ユーザー アカウントのユーザー名を入力し、[ 名前の確認 ] をクリックして、アプリケーション サーバー上の認証プロバイダーがアカウント名を解決できることを確認します。

  7. [ アクセス許可の選択 ] セクションで、[ フル コントロール - フル コントロール ] ボックスをオンにし、[完了] をクリック します

  8. ポータル スーパー リーダー アカウントに対して手順 5 ~ 7 を繰り返します。

  9. [ 権限の選択] セクションで、[ すべて読み取り (すべてに読み取り専用のアクセス権を持ちます)] ボックスをオンにします。

  10. [完了] をクリックします。

  11. Object Cache Super Reader および Object Cache Super User アカウントの名前が [ ユーザー名] 列に表示される方法を書き留めておきます。 表示される文字列は、Web アプリケーションにクレーム認証を使用するかどうかで変わります。

Microsoft PowerShell を使用してユーザー アカウントを Web アプリケーションに追加するには

  1. 次のメンバーシップがあることを確認します。
  • SQL Server インスタンスにおける securityadmin 固定サーバー ロール。

  • 更新するすべてのデータベースに対する db_owner 固定データベース ロール。

  • PowerShell コマンドレットを実行するサーバーでの Administrators グループ。

  • 上に示した最小要件を満たすために必要なメンバーシップを追加します。

    管理者は Add-SPShellAdmin コマンドレットを使用して、SharePoint Server コマンドレットを使用する権限を付与できます。

    注:

    アクセス許可がない場合は、セットアップ管理者または SQL Server 管理者に連絡してアクセス許可を要求してください。 PowerShell の権限の追加情報については、「アクセス許可」および「Add-SPShellAdmin」を参照してください。

  1. メモ帳などのテキスト エディターに次のコードを貼り付けます。
$wa = Get-SPWebApplication -Identity "<WebApplication>"
$wa.Properties["portalsuperuseraccount"] = "<SuperUser>"
$wa.Properties["portalsuperreaderaccount"] = "<SuperReader>"
$wa.Update()
  1. 以下のプレースホルダ―を値に置き換えます。
  • <WebApplication> はアカウントが追加される Web アプリケーションの名前です。

  • <SuperUser> は、前の手順の手順 11 で説明した [ ユーザー名 ] 列に表示されたポータルスーパー ユーザー アカウントに使用するアカウントです。

  • <SuperReader> は、前の手順の手順 11 で説明した [ユーザー名 ] 列に表示されたポータル スーパー リーダー アカウントに使用するアカウントです。

  1. ファイルを SetUsers.ps1 という名前で保存します。

    注:

    別のファイル名を使用することもできますが、ファイルは拡張子が .ps1 のテキスト ファイルを ANSI 形式で保存する必要があります。

  2. テキスト エディターを閉じます。

  3. SharePoint 管理シェル を開きます。

  4. ファイルの保存先のディレクトリに移動します。

  5. PowerShell コマンド プロンプトで、次のコマンドを入力します:./SetUsers.ps1

  6. インターネット インフォメーション サービス (IIS) をリセットします。 IISReset の詳細については、「 Web サーバーの起動または停止 (IIS 8)」を参照してください。

関連項目

概念

Cache settings operations in SharePoint Server