액세스 문제 해결을 위한 쿼리 예
사용자의 권한 또는 액세스에 대한 정보를 반환하는 방법에 대한 샘플 쿼리를 검토하십시오.
필수 Edition
| 지원 제품: Salesforce Classic 및 Lightning Experience 모두 |
| 사용하는 Salesforce Edition에 따라 사용 가능한 사용자 및 데이터 관리 옵션이 다릅니다. |
개체 권한
사례에 대한 개체 읽기 권한이 활성화된 권한 집합을 반환합니다.
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
프로필 및 권한 집합 그룹
각 프로필 또는 권한 집합 그룹에 연결된 권한 집합이 있습니다. 먼저 프로필 또는 권한 집합 그룹에 대한 관련 권한 집합 ID를 가져온 다음, 다른 쿼리에서 이 권한 집합 ID를 사용할 수 있습니다. 아래의 두 가지 쿼리는 개체 권한, 사용자 권한 및 액세스 설정에 대해 수정할 수 있습니다.
연결된 권한 집합을 사용하여 프로필과 연결된 권한을 반환합니다.
#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 도움말의 권한 및 액세스 설정 및 Salesforce Platform 개발자 가이드의 개체 참조에서 SetupEntityAccess를 참조하십시오.
지정된 액세스 설정이 활성화된 권한 집합을 반환합니다.
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'