Loading
Управление пользователями и доступ к данным
Примеры запросов для устранения неполадок доступа

Примеры запросов для устранения неполадок доступа

Ознакомьтесь с примерами запросов по возврату сведений о полномочиях или доступе пользователей.

Требуемые версии

Доступно в версиях: Salesforce Classic и Lightning Experience
Доступные параметры управления пользователями и данными определяются используемой версией Salesforce.
Совет
Совет Настройка с Agentforce поможет более эффективно устранить неполадки доступа. Дополнительную информацию см. в разделе Настройка с Agentforce и Управление доступом пользователей в настройках с Agentforce.
Примечание
Примечание Большинство типовых запросов для полномочий используют наборы полномочий. Однако, эти запросы также работают для профилей и групп наборов полномочий, поскольку у них есть связанный набор полномочий. Дополнительную информацию см. в разделе «Профили и группы наборов полномочий».

Полномочия объекта

Наборы полномочий на возврат, имеющие включенное полномочие «Чтение объекта» для обращений.

SELECT ParentId,Parent.ProfileId,Parent.Name,Parent.PermissionSetGroupId
    FROM ObjectPermissions
    WHERE SobjectType = 'Case' 
    AND PermissionsRead = true 

Наборы полномочий на возврат, назначенные пользователю, которые предоставляют полномочие на чтение объекта для обращений.

SELECT AssigneeId,ExpirationDate,Id,IsActive,PermissionSetGroupId,PermissionSetId,
PermissionSet.Name FROM PermissionSetAssignment
    WHERE PermissionSetId IN
        (SELECT ParentId
        FROM ObjectPermissions WHERE SobjectType = 'Case' 
        AND PermissionsRead = true)
    AND AssigneeId = '005XXXXXXXXXXXXQAT' 

Полномочия поля

Возврат полномочий поля, связанных с набором полномочий.

SELECT Field,Id,ParentId,PermissionsEdit,PermissionsRead,SobjectType,SystemModstamp
    FROM FieldPermissions
    WHERE ParentId = '0PSXXXXXXXXXXXX'

Наборы полномочий для возврата с включенным определенным полномочием поля.

SELECT Field,Id,ParentId,PermissionsEdit,PermissionsRead,SobjectType,SystemModstamp
    FROM FieldPermissions 
    WHERE Field = 'Account.CustomerPriority__c'
    AND PermissionsEdit = true

Возврат наборов полномочий, назначенных пользователю, которые предоставляют определенное полномочие поля.

SELECT AssigneeId,ExpirationDate,Id,IsActive,PermissionSetGroupId,PermissionSetId,
PermissionSet.Name FROM PermissionSetAssignment
    WHERE PermissionSetId IN
         (SELECT ParentId
          FROM FieldPermissions 
          WHERE Field = 'Account.CustomerPriority__c'
          AND PermissionsEdit = true)
    AND AssigneeId = '005XXXXXXXXXXXXQAT'

Полномочия пользователя

Возврат наборов полномочий, назначенных пользователю и предоставляющих указанные полномочия.

SELECT AssigneeId,ExpirationDate,Id,IsActive,
PermissionSetGroupId,PermissionSetId,
PermissionSet.Name,PermissionSet.PermissionsViewAllData,
PermissionSet.PermissionsCustomizeApplication 
    FROM PermissionSetAssignment
    WHERE AssigneeId = '005XXXXXXXXXXXXIAS' AND 
    (PermissionSet.PermissionsViewAllData = true OR
    PermissionSet.PermissionsCustomizeApplication = true)

Возврат полномочий пользователя при входе от имени этого пользователя.

SELECT <All Fields> FROM UserPermissionAccess   // or specify permissions

Профили и группы наборов полномочий

Каждый профиль или группа наборов полномочий имеет связанный набор полномочий. Сперва можно получить связанный код набора полномочий для профиля или группы наборов полномочий, а потом использовать этот код набора полномочий в других запросах. Два запроса ниже можно изменить для полномочий объекта, полномочий пользователя и параметров доступа.

Полномочия на возврат, связанные с профилем, посредством связанного набора полномочий.

#Get the profile's associated permission set
SELECT Id from PermissionSet 
    WHERE ProfileId = '00eXXXXXXXXXXXX'

SELECT Field,Id,ParentId,PermissionsEdit,PermissionsRead,
SobjectType,SystemModstamp 
    FROM FieldPermissions
    WHERE ParentId = '0PSXXXXXXXXXXXXWAU'      //ID of the associated permission set

Возврат полномочий, связанных с группой наборов полномочий, посредством связанного набора полномочий.

#Get the permission set groups's associated permission set.
SELECT Id from PermissionSet 
    WHERE PermissionSetGroupId = '0PGXXXXXXXXXXXX'

SELECT Field,Id,ParentId,PermissionsEdit,PermissionsRead,
SobjectType,SystemModstamp 
    FROM FieldPermissions
    WHERE ParentId = '0PSXXXXXXXXXXXXWAU'      //ID of the associated permission set

Доступ к записи

Возвращает, есть ли у пользователя доступ к записи и какой уровень доступа предоставлен.

SELECT RecordId,HasReadAccess,HasEditAccess,HasDeleteAccess,HasTransferAccess,HasAllAccess,MaxAccessLevel 
     FROM UserRecordAccess 
     WHERE RecordId = '001XXXXXXXXXXXXIAC'
     AND UserId = '005XXXXXXXXXXXXQAT'

Возврат пользователей, имеющих доступ к определенной записи организации.

SELECT AccountAccessLevel,AccountId,CaseAccessLevel,ContactAccessLevel,Id,IsDeleted, LastModifiedById,LastModifiedDate,OpportunityAccessLevel,RowCause,UserOrGroupId     
    FROM AccountShare
    WHERE AccountId = '001XXXXXXXXXXXXIAC'

Возврат доступа запрашиваемого пользователя к записи для чтения и передачи, а также максимального уровня доступа пользователя к записи.

SELECT RecordId,HasReadAccess,HasTransferAccess,MaxAccessLevel
    FROM UserRecordAccess
    WHERE UserId = '005XXXXXXXXXXXXQAT'
    AND RecordId = '001XXXXXXXXXXXXIAC'      //or Record IN [list of IDs]

Возврат всех записей, к которым у запрашиваемого пользователя есть доступ для чтения.

SELECT RecordId
    FROM UserRecordAccess
    WHERE UserId = '005XXXXXXXXXXXXQAT'
    AND RecordId IN [list of IDs]
    AND HasReadAccess = true

Параметры доступа (SetupEntityAccess)

Параметры доступа могут быть указаны в наборах полномочий и профилях и содержать страницы Visualforce, классы Apex и настраиваемые полномочия. Дополнительную информацию см. в разделе «Полномочия и параметры доступа» справки Salesforce и SetupEntityAccess в справочном руководстве по объектам для руководства разработчика Salesforce Platform.

Возврат наборов полномочий с включенным параметром доступа.

SELECT Id,ParentId,SetupEntityId,SetupEntityType,
SystemModstamp 
    FROM SetupEntityAccess
    WHERE SetupEntityId = '0H4XXXXXXXXXXXX' //ID of Apex class, Visualforce page, etc.

Возврат наборов полномочий, назначенных пользователю с включенным параметром доступа.

SELECT AssigneeId,ExpirationDate,Id,IsActive,
PermissionSetGroupId,PermissionSetId,
PermissionSet.Name 
    FROM PermissionSetAssignment
    WHERE PermissionSetId IN 
        (SELECT ParentId 
        FROM SetupEntityAccess
        WHERE SetupEntityId = '0H4XXXXXXXXXXXX' )
    AND AssigneeId = '005XXXXXXXXXXXXQAT'
 
Загрузка
Salesforce Help | Article