SharePoint Designer 2010 で作成したワーク フローでユーザー プロファイルのフィールドが取得できない


こんにちは。SharePoint サポートチームの多田です。
今回は SharePoint Designer 2010 で作成したワーク フローでユーザー プロファイルのフィールドが取得できない現象の説明と回避策をご案内します。
 
- 環境
SharePoint Server 2010 SP2 + 2013 12 CU (KB 2849971)
SharePoint Designer 2010
 
現象
===
SharePoint Server 2010 SP2 + 2013 12 CU (KB 2849971) において、SharePoint Designer 2010 にてワークフローを作成する際に、ユーザー プロファイルを参照すると以下のエラーが発生します。
 
 
メッセージ:「サーバーからプロファイル スキーマを取得できませんでした。プロファイル ストアが正しく構成されていることを確認してください。」
 
現象の再現手順
^^^^^^^^
1. Search Service Application User Profile Service Application をあらかじめ構成しておきます。
2. SharePoint Server 2010 SP2 2013 12 CU (KB 2849971) を適用します。
3. SharePoint Server に対して、何も権限を持っていない新規の管理アカウントで、新規 Web アプリケーションを作成します。
4. 作成した Web アプリケーション上で、新規サイト コレクションを作成します。
5. SharePoint Designer 2010 を起動し、作成したサイト コレクションを開きます。
6. リボンメニューから、[リスト ワークフロー] をクリックし、任意のリストをクリックします。
7. 任意のタイトルを入力し、[OK] をクリックします。
8. リボンメニューにて、[アクション] をクリックし、[リスト アイテムを更新する] をクリックします。
9. 追加されたアクションにて、[リスト] をクリックします。
10. [追加] をクリックします。
11. "フィールドを選択" にて [タイトル] を選択し、"割り当てる値を設定" にて [fx] をクリックします。
12. "データ ソース" にて [ユーザー プロファイル] を選択します。
13. 上記のエラーが発生することを確認します。
 
補足事項
^^^^^^
本現象は SharePoint Server 2010 SP2 では発生しません。本現象は 2013 12 CU (または SP2 以降の CU) で発生します。
 
原因
===
2013 12 CU (または SP2 以降の CU) の修正により、Web アプリケーションの実行アカウントが検索 DB (Search_Service_Application_DB) 上のストアドプロシージャーを呼びだすよう変更されました。
本現象は Web アプリケーションの実行アカウントが検索 DB (Search_Service_Application_DB) に対して、ストアドプロシージャーの実行権限を持っていない場合は本エラーが発生します。上記のエラーが発生した際に、診断ログに以下のエラーログが記録されます。
 
--- 診断ログ ---
xx/xx/2014 xx:xx:xx.xx w3wp.exe (0x0XXXX) 0xXXXX SharePoint Server Database 880i High System.Data.SqlClient.SqlException: このログインで要求されたデータベース "Search_Service_Application_DB_ xxxxxxx" を開けません。ログインに失敗しました。  ユーザー 'DOMAIN01\ManageApp01' はログインできませんでした。
------------------
 
解決策
====
検索 DB (Search_Service_Application_DB) において、Web アプリケーションの実行アカウントに対して、DB_Owner 権限を与えるか、もしくは最小権限を与える場合は以下の権限を与えます。
 
db_datareader
proc_MSS_GetSchemaHighLevelInfo の実行権限 ( 1)
 
( 1)
以下に設定手順をご案内いたします。
1. SQL Management Studio を起動し、該当の SQL インスタンスにログインします。
2. 左ペインより、[データベース] - [Search_Service_Application_DB_xxxxxxx] - [プログラミング] - [ストアド プロシージャ] を展開し、[dbo.proc_MSS_GetSchemaHighLevelInfo] を右クリックし、[プロパティ] をクリックします。
3. 左ペインより、[権限] をクリックします。
4. [検索] をクリックし、該当の Web アプリケーションのアカウントを入力します。
5. 権限の欄にて、権限が "実行" であるものについて、[許可] にチェックを入れます。
6. [OK] をクリックします。
 
Comments (0)

Skip to main content