Вы находитесь здесь:
Примеры запросов для устранения неполадок доступа
Ознакомьтесь с примерами запросов по возврату сведений о полномочиях или доступе пользователей.
Требуемые версии
| Доступно в версиях: Salesforce Classic и Lightning Experience |
| Доступные параметры управления пользователями и данными определяются используемой версией Salesforce. |
Полномочия объекта
Наборы полномочий на возврат, имеющие включенное полномочие «Чтение объекта» для обращений.
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'