次の方法で共有


Microsoft Dynamics CRM 2011 にアップグレードした後、ログオン ユーザーに適切なセキュリティ アクセス許可エラーがない

この記事では、 ログオンしているユーザーがこれらのレコードを表示したり、特定のアクションを実行したりするための適切なセキュリティ アクセス許可を持っていないため、Microsoft Dynamics CRM 2011 にアップグレードできない問題を解決するための解決策 このエラーを提供します。

適用対象: Microsoft Dynamics CRM 2011
元の KB 番号: 953962

症状

Microsoft Dynamics CRM 2011 にアップグレードした後、ユーザーは Microsoft Dynamics CRM でアクションを実行しようとしたときに、次のエラーが発生する可能性があります。

ログオンしているユーザーには、これらのレコードを表示したり、特定のアクションを実行したりするための適切なセキュリティ アクセス許可がありません。

Microsoft Dynamics CRM プラットフォーム トレースが有効になっている場合、プラットフォーム トレースには次のエラー情報が含まれます。

MSCRM エラー レポート:

--------------------------------------------------------------------------------------------------------
エラー: サーバーが要求を処理できませんでした。
エラー番号: 0x80040220
エラー メッセージ: SecLib::CrmCheckPrivilege が失敗しました。 UserId: <ID> および PrivilegeId: <ID> に対して返された hr = -2147220960

この例の情報では、UserId 値と PrivilegeId 値は実際の値のプレースホルダーです。

原因

Microsoft Dynamics CRM 2011 にアップグレードすると、すべての新機能に対する特権がカスタム セキュリティ ロールに自動的に付与されるわけではありません。 標準ロールのみがデフォルトの特権を持つことができます。

この問題は、ユーザーのロールにアクションの実行に必要な特権が付与されていない場合にも発生する可能性があります。 この状況は、次のいずれかの条件に該当する場合に発生する可能性があります。

  • ロールは最初から作成されました。
  • ロールは標準ロールからコピーされました。 その後、ロールは広範囲に編集されました。

解決方法

この問題を解決するには、次の手順に従ってください。

これらの手順では、Microsoft Dynamics CRM プラットフォーム トレースからの情報を取得する必要があります。

  1. Microsoft Dynamics CRM プラットフォーム トレースに表示されるエラー情報で、PrivilegeId 値を見つけます。

  2. PrivilegeId 値を使用する SQL クエリを実行して、不足している特権を特定します。 たとえば、 OrganizationName_MSCRM データベースに対して次のような SQL クエリを実行します。

    select Name, * from PrivilegeBase where PrivilegeId = 'a8ecac53-09e8-4a13-b598-8d8c87bc3d33'
    
  3. 不足している権限をユーザーに付与するには、次の手順に従います。

    1. Microsoft Dynamics CRM 2011 を起動します。
    2. Settingsを選択し、SettingsAdministration を選択し、Security Roles を選択します。
    3. ユーザーに割り当てられているロールをダブルクリックします。
    4. 不足している権限をユーザーのロールに付与します。 たとえば、prvReadLead 権限をユーザーのロールに付与するには、[ Core Records ] タブを選択し、[ Lead 行で適切な読み取り権限を選択します。
    5. 保存して閉じる を選択します。