{"id":"sforce_api_objects_permissionsetassignment","title":"PermissionSetAssignment","content":"<a name=\"sforce_api_objects_permissionsetassignment\"><!-- --></a><h1 class=\"helpHead1\">PermissionSetAssignment</h1><div class=\"body\">\n<div class=\"shortdesc\">\n<span class=\"ph\" id=\"summary\"><a name=\"summary\"><!-- --></a>Represents a user’s assignment to a permission set or permission set\n   group. </span>This object is available in API version 22.0 and later.</div>\n\n  <div class=\"section\">\n<h2 class=\"helpHead2\">Supported Calls</h2>\n\n   \n   <p class=\"p\"><samp class=\"codeph nolang\">create()</samp>, <samp class=\"codeph nolang\">delete()</samp>,\n     <samp class=\"codeph nolang\">describeSObjects()</samp>, <samp class=\"codeph nolang\">query()</samp>, <samp class=\"codeph nolang\">retrieve()</samp>, <samp class=\"codeph nolang\">update()</samp></p>\n\n  </div>\n\n  <div class=\"section\">\n<h2 class=\"helpHead2\">Special Access Rules</h2>\n\n   \n   <p class=\"p\">As of Summer ’20 and later, only users who have one of these permissions can access this\n    object:</p>\n\n   <ul class=\"ul bulletList\">\n    <li class=\"li\">View Setup and Configuration</li>\n\n    <li class=\"li\">Assign Permission Sets</li>\n\n    <li class=\"li\">Manage User</li>\n\n   </ul>\n\n  </div>\n\n  <div class=\"section\">\n<h2 class=\"helpHead2\">Fields</h2>\n\n   \n   \n<div class=\"data colSort\"><table class=\"featureTable sort_table\" summary=\"\">\n     \n     \n     <thead class=\"thead sorted\" align=\"left\">\n      <tr>\n       <th class=\"featureTableHeader  \" id=\"d1513282e104\">Field Name</th>\n\n       <th class=\"featureTableHeader  \" id=\"d1513282e107\">Details</th>\n\n      </tr>\n\n     </thead>\n\n     <tbody class=\"tbody\">\n      <tr>\n       <td class=\"entry\" headers=\"d1513282e104\" data-title=\"Field Name\"><span class=\"keyword parmname\" id=\"AssigneeId-78EE9344\"><a name=\"AssigneeId-78EE9344\"><!-- --></a>AssigneeId</span></td>\n\n       <td class=\"entry\" headers=\"d1513282e107\" data-title=\"Details\">\n        <dl class=\"dl detailList\">\n         \n          <dt class=\"dt dlterm\">Type</dt>\n\n          <dd class=\"dd\">reference</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Properties</dt>\n\n          <dd class=\"dd\">Create, Filter, Group, Sort</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Description</dt>\n\n          <dd class=\"dd\">The ID of the user that is assigned the permission set indicated in\n            <span class=\"keyword parmname\">PermissionSetId</span> or the permission set group indicated in\n            <span class=\"keyword parmname\">PermissionSetGroupId</span>.</dd>\n\n          <dd class=\"dd\">This is a relationship field.</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Relationship Name</dt>\n\n          <dd class=\"dd\">Assignee</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Relationship Type</dt>\n\n          <dd class=\"dd\">Lookup</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Refers To</dt>\n\n          <dd class=\"dd\">User</dd>\n\n         \n        </dl>\n\n       </td>\n\n      </tr>\n\n      <tr>\n       <td class=\"entry\" headers=\"d1513282e104\" data-title=\"Field Name\"><span class=\"keyword parmname\">ExpirationDate</span></td>\n\n       <td class=\"entry\" headers=\"d1513282e107\" data-title=\"Details\">\n        <dl class=\"dl detailList\">\n         \n          <dt class=\"dt dlterm\">Type</dt>\n\n          <dd class=\"dd\">dateTime</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Properties</dt>\n\n          <dd class=\"dd\">Create, Filter, Nillable, Sort, Update</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Description</dt>\n\n          <dd class=\"dd\">The date that the assignment of the permission set or permission set group expires for\n           the specified user. This field is available in API version 52.0 and later.</dd>\n\n         \n        </dl>\n\n       </td>\n\n      </tr>\n\n      <tr>\n       <td class=\"entry\" headers=\"d1513282e104\" data-title=\"Field Name\"><span class=\"keyword parmname\">IsActive</span></td>\n\n       <td class=\"entry\" headers=\"d1513282e107\" data-title=\"Details\">\n        <dl class=\"dl detailList\">\n         \n          <dt class=\"dt dlterm\">Type</dt>\n\n          <dd class=\"dd\">boolean</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Properties</dt>\n\n          <dd class=\"dd\">Defaulted on create, Filter, Group, Sort</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Description</dt>\n\n          <dd class=\"dd\">Indicates whether the assignment is active (<samp class=\"codeph nolang\">true</samp>)\n           or not (<samp class=\"codeph nolang\">false</samp>). Defaults to <samp class=\"codeph nolang\">false</samp>. This field is available in API version 52.0 and\n           later.</dd>\n\n         \n        </dl>\n\n       </td>\n\n      </tr>\n\n      <tr>\n       <td class=\"entry\" headers=\"d1513282e104\" data-title=\"Field Name\"><span class=\"keyword parmname\">IsRevoked</span></td>\n\n       <td class=\"entry\" headers=\"d1513282e107\" data-title=\"Details\">\n        <dl class=\"dl detailList\">\n         \n          <dt class=\"dt dlterm\">Type</dt>\n\n          <dd class=\"dd\">boolean</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Properties</dt>\n\n          <dd class=\"dd\">Defaulted on create, Filter, Group, Sort, Update</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Description</dt>\n\n          <dd class=\"dd\">Indicates whether the assignment was revoked (<samp class=\"codeph nolang\">true</samp>) or not (<samp class=\"codeph nolang\">false</samp>). Defaults to <samp class=\"codeph nolang\">false</samp>. This field is available only if user access policies\n           are enabled. This field is available in API version 57.0 and later.</dd>\n\n          <dd class=\"dd\"></dd>\n\n         \n        </dl>\n\n       </td>\n\n      </tr>\n\n      <tr>\n       <td class=\"entry\" headers=\"d1513282e104\" data-title=\"Field Name\"><span class=\"keyword parmname\">LastCreatedByChangeId</span></td>\n\n       <td class=\"entry\" headers=\"d1513282e107\" data-title=\"Details\">\n        <dl class=\"dl detailList\">\n         \n          <dt class=\"dt dlterm\">Type</dt>\n\n          <dd class=\"dd\">reference</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Properties</dt>\n\n          <dd class=\"dd\">Filter, Group, Nillable, Sort</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Description</dt>\n\n          <dd class=\"dd\">The ID of the user access change record related to this permission set or permission\n           set group assignment. This field is available only if user access policies are enabled.\n           This field is available in API version 57.0 and later.</dd>\n\n          <dd class=\"dd\">This field is a relationship field.</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Relationship Name</dt>\n\n          <dd class=\"dd\">LastCreatedByChange</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Relationship Type</dt>\n\n          <dd class=\"dd\">Lookup</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Refers To</dt>\n\n          <dd class=\"dd\">UserAccessChange</dd>\n\n         \n        </dl>\n\n       </td>\n\n      </tr>\n\n      <tr>\n       <td class=\"entry\" headers=\"d1513282e104\" data-title=\"Field Name\"><span class=\"keyword parmname\">LastDeletedByChangeId</span></td>\n\n       <td class=\"entry\" headers=\"d1513282e107\" data-title=\"Details\">\n        <dl class=\"dl detailList\">\n         \n          <dt class=\"dt dlterm\">Type</dt>\n\n          <dd class=\"dd\">reference</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Properties</dt>\n\n          <dd class=\"dd\">Create, Filter, Group, Sort</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Description</dt>\n\n          <dd class=\"dd\">The ID of the user access change record related to this permission set or permission\n           set group assignment being revoked. This field is available only if user access policies\n           are enabled. This field is available in API version 57.0 and later.</dd>\n\n          <dd class=\"dd\">This field is a relationship field.</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Relationship Name</dt>\n\n          <dd class=\"dd\">LastCreatedByChange</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Relationship Type</dt>\n\n          <dd class=\"dd\">Lookup</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Refers To</dt>\n\n          <dd class=\"dd\">UserAccessChange</dd>\n\n         \n        </dl>\n\n       </td>\n\n      </tr>\n\n      <tr>\n       <td class=\"entry\" headers=\"d1513282e104\" data-title=\"Field Name\"><span class=\"keyword parmname\">PermissionSetGroupId</span></td>\n\n       <td class=\"entry\" headers=\"d1513282e107\" data-title=\"Details\">\n        <dl class=\"dl detailList\">\n         \n          <dt class=\"dt dlterm\">Type</dt>\n\n          <dd class=\"dd\">reference</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Properties</dt>\n\n          <dd class=\"dd\">Create, Filter, Group, Nillable, Sort</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Description</dt>\n\n          <dd class=\"dd\">The ID of the permission set group assigned to the user specified in\n            <span class=\"keyword parmname\">AssigneeId</span>. This field is available in API version 45.0 and\n           later.</dd>\n\n          <dd class=\"dd\">This is a relationship field.</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Relationship Name</dt>\n\n          <dd class=\"dd\">PermissionSetGroup</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Relationship Type</dt>\n\n          <dd class=\"dd\">Lookup</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Refers To</dt>\n\n          <dd class=\"dd\">PermissionSetGroup</dd>\n\n         \n        </dl>\n\n       </td>\n\n      </tr>\n\n      <tr>\n       <td class=\"entry\" headers=\"d1513282e104\" data-title=\"Field Name\"><span class=\"keyword parmname\" id=\"PermissionSetId-78EEA270\"><a name=\"PermissionSetId-78EEA270\"><!-- --></a>PermissionSetId</span></td>\n\n       <td class=\"entry\" headers=\"d1513282e107\" data-title=\"Details\">\n        <dl class=\"dl detailList\">\n         \n          <dt class=\"dt dlterm\">Type</dt>\n\n          <dd class=\"dd\">reference</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Properties</dt>\n\n          <dd class=\"dd\">Create, Filter, Group, Nillable, Sort</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Description</dt>\n\n          <dd class=\"dd\">The ID of the permission set assigned to the user specified in\n            <span class=\"keyword parmname\">AssigneeId</span>.</dd>\n\n          <dd class=\"dd\">This is a relationship field.</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Relationship Name</dt>\n\n          <dd class=\"dd\">PermissionSet</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Relationship Type</dt>\n\n          <dd class=\"dd\">Lookup</dd>\n\n         \n         \n          <dt class=\"dt dlterm\">Refers To</dt>\n\n          <dd class=\"dd\">PermissionSet</dd>\n\n         \n        </dl>\n\n       </td>\n\n      </tr>\n\n     </tbody>\n\n    </table></div>\n\n  </div>\n\n  <div class=\"section\">\n<h2 class=\"helpHead2\">Usage</h2>\n\n   \n   <dl class=\"dl detailList\">\n    \n     <dt class=\"dt dlterm\">Finding Permission Set Assignments</dt>\n\n     <dd class=\"dd\">Use the PermissionSetAssignment object to\n      query permission set assignments to find out which permission sets are assigned to which\n      users. Because each user can be assigned to many permission sets and each permission set can\n      be assigned to many users, each PermissionSetAssignment ID represents the\n      association of a single user and single permission set.</dd>\n\n     <dd class=\"dd\">For example, to search for all permission sets assigned to a particular\n      user:<div class=\"codeSection soql\"><pre class=\"codeblock brush:plain\">SELECT Id, PermissionSetId\nFROM PermissionSetAssignment\nWHERE AssigneeId = '005600000017cKt'</pre></div>\nTo\n      search for all users assigned to a particular permission\n      set:<div class=\"codeSection soql\"><pre class=\"codeblock brush:plain\">SELECT Id, AssigneeId\nFROM PermissionSetAssignment\nWHERE PermissionSetId = '0PS30000000000e'</pre></div>\nYou\n      can also create a new permission set assignment, or use delete to remove a permission set\n      that's assigned to a user. To update an assignment, delete an existing assignment and insert a\n      new one.</dd>\n\n    \n    \n     <dt class=\"dt dlterm\">User Licenses</dt>\n\n     <dd class=\"dd\">When assigning a permission set, if the PermissionSet has a\n       <span class=\"keyword parmname\">UserLicenseId</span>, its <span class=\"keyword parmname\">UserLicenseId</span> and the Profile\n       <span class=\"keyword parmname\">UserLicenseId</span> must match. To determine a user's license assignment,\n      query the user's profile and then query the profile's license.</dd>\n\n     <dd class=\"dd\">For example, to find a user's profile\n      ID:<div class=\"codeSection soql\"><pre class=\"codeblock brush:plain\">SELECT Id, ProfileId\nFROM User\nWHERE Id = '005D0000001GMAT'</pre></div>\nTo\n      find a permission set's\n      <span class=\"keyword parmname\">UserLicenseId</span>:<div class=\"codeSection soql\"><pre class=\"codeblock brush:plain\">SELECT Id, LicenseId\nFROM PermissionSet\nWHERE Id = '0PS30000000000e'</pre></div>\nIf\n      the IDs match, the assignment succeeds.</dd>\n\n     <dd class=\"dd\">To find all the permission sets with no license that are assigned to any\n      user:<div class=\"codeSection soql\"><pre class=\"codeblock brush:plain\">SELECT Id, Assignee.Name, PermissionSet.Name\nFROM PermissionSetAssignment\nWHERE PermissionSet.LicenseId = null</pre></div>\n</dd>\n\n    \n    \n     <dt class=\"dt dlterm\">Revoked Assignments from User Access Policies</dt>\n\n     <dd class=\"dd\">After you revoke a permission set or permission set group assignment via a user access\n      policy, the <span class=\"keyword parmname\">IsRevoked</span> field is updated to <samp class=\"codeph nolang\">true</samp>. The PermissionSetAssignment record isn’t deleted. If the permission set or\n      permission set group is assigned to the user again, the <span class=\"keyword parmname\">IsRevoked</span> field\n      is then updated to <samp class=\"codeph nolang\">false</samp>.</dd>\n\n     <dd class=\"dd\">To find permission set or permission set group assignments that were\n      revoked:<div class=\"codeSection soql\"><pre class=\"codeblock brush:plain\">SELECT Id, ExpirationDate, Assignee.Name, PermissionSet.Name\nFROM PermissionSetAssignment\nWHERE IsRevoked=true ALL ROWS</pre></div>\n</dd>\n\n    \n   </dl>\n\n  </div>\n\n </div><div id=\"sfdc:seealso\" class=\"related-links\">\n<div class=\"relinfo\">\n<h4>See Also</h4>\n<ul class=\"unstyled\"><li><div><a class=\"link\" href=\"atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_permissionset.htm\" title=\"Represents a set of permissions that’s used to grant more access to one or more users without changing their profile or reassigning profiles. This object is available in API version 22.0 and later.\">PermissionSet</a></div></li></ul>\n</div>\n</div>"}