Apex - 安全性

2019-10-26 16:26 更新

Apex安全性是指對運行代碼應用安全設置和實施共享規(guī)則的過程。 Apex類具有可以通過兩個關鍵字控制的安全設置。


數(shù)據安全性和共享規(guī)則

Apex通常在系統(tǒng)上下文中運行;即當前用戶的權限。在代碼執(zhí)行期間不考慮字段級安全性和共享規(guī)則。只有匿名塊代碼以執(zhí)行代碼的用戶權限執(zhí)行。

我們的Apex代碼不應該將敏感數(shù)據暴露給通過安全和共享設置隱藏的用戶。因此,Apex安全和實施共享規(guī)則是最重要的。


有共享關鍵字

如果您使用此關鍵字,則Apex代碼會將當前用戶的共享設置強制為Apex代碼。這不強制配置文件權限,只有數(shù)據級別共享設置。

讓我們舉一個例子,我們的用戶可以訪問5個記錄,但總記錄數(shù)為10.因此,當Apex類將使用“共享”關鍵字聲明時,它將只返回5個用戶有權訪問的記錄。


例如:

首先,確保您已在Customer對象中創(chuàng)建了至少10條記錄,其中“5名記錄的名稱”為“ABC客戶”,并將5條記錄保留為“XYZ客戶”。然后創(chuàng)建一個共享規(guī)則,與所有用戶共享“ABC客戶”。此外,請確保您已將“客戶”對象的OWD設置為“私有”。


將以下代碼粘貼到開發(fā)者控制臺中的Anonymous塊。

//Class With Sharing
public with sharing class MyClassWithSharing {
//Query To fetch 10 records
List<apex_customer__c> CustomerList = [SELECT id, Name FROM APEX_Customer__c LIMIT 10];
	
public Integer executeQuery () {
    System.debug('List will have only 5 records and the actual records are '+CustomerList.size()+' as user has access to'+CustomerList);
    Integer ListSize = CustomerList.size();
    return ListSize;
}
}

//Save the above class and then execute as below
//Execute class using the object of class
MyClassWithSharing obj = new MyClassWithSharing();
Integer ListSize = obj.executeQuery();

無共享關鍵字

顧名思義,使用此關鍵字聲明的類在系統(tǒng)模式下執(zhí)行,即不考慮用戶對記錄的訪問權限,查詢將獲取所有記錄。

//Class Without Sharing
public without sharing class MyClassWithoutSharing {
List<apex_customer__c> CustomerList = [SELECT id, Name FROM APEX_Customer__c LIMIT 10];//Query To fetch 10 records, this will return all the records
    
public Integer executeQuery () {
    System.debug('List will have only 5 records and the actula records are '+CustomerList.size()+' as user has access to'+CustomerList);
    Integer ListSize = CustomerList.size();
    return ListSize;
}
}
//Output will be 10 records.

設置Apex類的安全性

您可以為特定配置文件啟用或禁用Apex類。 下面是同樣的步驟。 您可以確定哪個配置文件應該具有訪問哪個類。


從類列表頁面設置Apex類安全:


步驟1.從安裝程序,單擊開發(fā)- >Apex類。


類列表


第2步:在要限制的類的名稱旁邊,單擊“安全”.。


apex classes


步驟3.從“可用配置文件”列表中選擇要啟用的配置文件,然后單擊“添加”,或從“已啟用的配置文件”列表中選擇要禁用的配置文件,然后單擊刪除。


配置文件


第4步:單擊保存。


從類詳細信息頁面設置Apex類安全:


步驟1.從安裝程序,點擊開發(fā)- >Apex類。


設置Apex類安全


第2步:單擊要限制的類的名稱。 我們點擊了CustomerOperationClass。


CustomerOperationClass


步驟3單擊安全。


安全

第4步:從“可用配置文件”列表中選擇要啟用的配置文件,然后單擊“添加”,或從“已啟用的配置文件”列表中選擇要禁用的配置文件,然后單擊刪除。


刪除配置文件


步驟5:點擊保存。


從權限集設置Apex安全:


第1步設置,單擊管理用戶- >權限集。


管理用戶


第2步:選擇權限集。

權限集


步驟3:單擊Apex類訪問。


Apex類訪問


步驟4.單擊編輯。


編輯


第5步:從“可用Apex類”列表中選擇要啟用的Apex類,然后單擊“添加”,或從“已啟用的Apex類”列表中選擇要禁用的Apex類,然后單擊“刪除”。


禁用Apex類


第6步:單擊保存按鈕。
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號