オブジェクト キャッシュのユーザー アカウントを構成する
適用先: SharePoint Server 2010
トピックの最終更新日: 2016-11-30
オブジェクト キャッシュには Microsoft SharePoint Server 2010 内のアイテムに関するプロパティが格納されます。このキャッシュ内のアイテムは、発行機能で Web ページのレンダリング時に使用されます。オブジェクト キャッシュの目的は、SQL Server が実行されているコンピューターの負荷を減らし、要求の遅延を小さくしてスループットを高めることです。オブジェクト キャッシュは、2 つの既定のアカウント (Portal Super User、Portal Super Reader) のどちらかになって自分のクエリを送出します。これらのユーザー アカウントを適切に構成しておかないと、オブジェクト キャッシュは正常に機能しません。Portal Super User アカウントは、Web アプリケーションへのフル コントロール アクセス権を持つアカウントでなければなりません。Portal Super Reader アカウントは、Web アプリケーションへのすべての読み取りアクセス権を持つアカウントでなければなりません。
重要
Portal Super User と Portal Super Reader は、別のアカウントでなければなりません。また、これらをサイトのログ記録に使わないようにしなければなりません。
この記事では、これらのオブジェクト キャッシュ ユーザー アカウントを構成する理由と構成方法を説明します。オブジェクト キャッシュの詳細については、「キャッシュ設定の操作 (SharePoint Server 2010)」を参照してください。
SharePoint Server 2010 では、アイテムに関するクエリの送出が、そのクエリを送出するユーザー アカウントとリンクされます。発行機能のさまざまな構成要素によってクエリが送出され、その結果はオブジェクト キャッシュに記憶されます。これらの結果はクエリを送出するユーザーのベースでキャッシュに記憶されます。キャッシュ ヒット率と必要メモリを最適化するためには、ユーザーが下書きアイテムを閲覧できるかどうかをクエリのベースにする必要があります。発行側コントロールが、クエリを送出してデータを取得するようオブジェクト キャッシュに要求すると、キャッシュはクエリを送出します。この送出は要求を出したユーザーとして行われるのではなく、Portal Super User アカウントとして 1 回、Portal Super Reader として 1 回の計 2 回のクエリが送出されます。この 2 つのクエリの結果はオブジェクト キャッシュに格納されます。Portal Super User アカウントの結果には下書きアイテムが含まれ、Portal Super Reader アカウントの結果には発行されたアイテムだけが含まれます。その後、オブジェクト キャッシュは、要求を開始したユーザーのアクセス制御リスト (ACL) をチェックし、そのユーザーが下書きアイテムを閲覧できるかどうかに応じて適切な結果を返します。Portal Super User アカウントと Portal Super Reader アカウントを Web アプリケーションに追加することによって、この 2 ユーザーのための結果を格納する必要があります。これでクエリで返される結果が増え、キャッシュの記憶に必要なメモリーが減ります。
既定では、サイトのシステム アカウントが Portal Super User アカウント、NT Authority\Local Service が Portal Super Reader アカウントになります。この既定のアカウントを使用することには、次の 2 つの問題があります。
第 1 の問題は、一部のアイテムがシステム アカウントにチェックアウトされ、それらのアイテムを含むクエリが送出されると、一番最近発行されたものではなく、チェックアウトされた方のアイテムが返されることです。これが問題となるのは、ユーザーの期待したアイテムが返されないので、キャッシュが再度クエリを送出して本来のファイルを取得しなければならないからです。これは、これらのアイテムを含むすべての要求でサーバーのパフォーマンスを低下させます。ユーザーのアカウントが Portal Super User アカウントに設定されている場合、ユーザーがアイテムをチェックアウトしたときにも同じ問題が生じます。Portal Super User と Portal Super Reader を、サイトのログ記録に使用されるユーザー アカウントとして構成すべきでないのは、こうした理由によります。そうすれば、ユーザーがアイテムを誤ってチェックアウトしてパフォーマンスの問題が生じることはありません。
既定の Portal Super Reader アカウントは NT Authority\Local Service であり、クレーム認証アプリケーションではこれが正しく解決されません。そのため、クレーム認証アプリケーションで Portal Super Reader アカウントが明示的に構成されていないと、このアプリケーションの下でサイト コレクションをブラウズしたとき、サイト管理者にも "アクセス拒否" エラーが返されます。このエラーは、オブジェクト キャッシュが明示的に使われる機能 (SharePoint Server 発行インフラストラクチャ、メタデータ ナビゲーション、コンテンツ クエリ Web パーツ、Content Query Web Part、ナビゲーションなど) のどれを使用するサイトでも発生します。
この記事の内容
- サーバーの全体管理と Windows PowerShell でオブジェクト キャッシュのユーザーアカウントを構成する
サーバーの全体管理と Windows PowerShell でオブジェクト キャッシュのユーザーアカウントを構成する
サーバーの全体管理と PowerShell を使用して、オブジェクト キャッシュのユーザーアカウントを構成できます。最初に、サーバーの全体管理 Web サイトでアカウントを作成し、次に Windows PowerShell を使用してそれらのアカウントを Web アプリケーションに追加する必要があります。これらのアカウントは、各 Web アプリケーションに追加する必要があります。
警告
この手順の最後に、インターネット インフォメーション サービス (IIS) をリセットして Web アプリケーションに変更を適用する必要があります。この手順は、サイトに接続しているユーザーへの影響ができるだけ出ない状況を見計らって実行することが重要です。IISReset の詳細については、「IIS Reset Activity (英語)」を参照してください。
サーバーの全体管理でユーザー アカウントを作成するには
次の管理者資格情報を持っているか確認します。
- サーバーの全体管理でユーザー アカウントを作成するには、SharePoint サーバーの全体管理 Web サイトを実行しているコンピューターの Farm Administrators グループのメンバーである必要があります。
サーバーの全体管理 Web サイトの [アプリケーション構成の管理] セクションで、[Web アプリケーションの管理] をクリックします。
構成する Web アプリケーションの名前をクリックします。
[Web アプリケーション] タブの [ポリシー] グループで、[ユーザー ポリシー] をクリックします。
[Web アプリケーションのポリシー] ウィンドウで、[ユーザーの追加] をクリックします。
[領域] リストで、[すべての領域] を選択し、[次へ] をクリックします。
[ユーザー] ボックスに、Portal Super User カウントのユーザー名を入力します。
[名前の確認] アイコンをクリックして、そのアカウント名がアプリケーション サーバー上の認証プロバイダーで解決できることを確かめます。
[権限の選択] セクションで、[フル コントロール - 完全に制御することができます。] チェック ボックスをオンにします。
[完了] をクリックします。
Portal Super Reader アカウントについて、手順 5. ~ 8. を繰り返します。
[Choose Permissions] セクションで、[すべて読み取り - すべてに読み取り専用のアクセス権を持ちます。] チェック ボックスをオンにします。
[完了] をクリックします。
[ユーザー名] 列に表示される Object Cache Super Reader アカウントと Object Cache Super User アカウントの名前に注意してください。表示される文字列は Web アプリケーションのためにクレーム認証を使用しているかどうかで変化します。
Windows PowerShell を使用してユーザー アカウントを Web アプリケーションに追加するには
次の最小要件を満たしていることを確認します。Add-SPShellAdmin を参照してください。
以下のコードをコピーし、メモ帳などのテキスト エディターに貼り付けます。
$wa = Get-SPWebApplication -Identity "<WebApplication>" $wa.Properties["portalsuperuseraccount"] = "<SuperUser>" $wa.Properties["portalsuperreaderaccount"] = "<SuperReader>" $wa.Update()
以下のプレースホルダーを値に置き換えます。
<WebApplication> は、アカウントを追加する Web アプリケーションの名前です。
<SuperUser> は、Portal Super User アカウント用に使用するアカウントです。これは上の手順 14. で説明した [ユーザー列] フィールドに表示されるものです。
<SuperReader> は、Portal Super Reader アカウント用に使用するアカウントです。これは上の手順 14. で説明した [ユーザー列] フィールドに表示されるものです。
ファイルを SetUsers.ps1 という名前で保存します。
注意
別のファイル名を使用することもできますが、ANSI でエンコードされたテキスト ファイルとして、拡張子 .ps1 を付けて保存しなければなりません。
テキスト エディターを閉じます。
[スタート] メニューの [すべてのプログラム] をクリックします。
[Microsoft SharePoint 2010 製品] をクリックします。
[SharePoint 2010 管理シェル] をクリックします。
ファイルの保存先のディレクトに移動します。
Windows PowerShell コマンド プロンプトで、次のコマンドを入力します。 ./SetUsers.ps1
インターネット インフォメーション サービス (IIS) をリセットします。IISReset の詳細については、「IIS Reset Activity (英語)」を参照してください。