FIELD-LEVEL SECURITY
For more details check SOQL API - FIELD-LEVEL SECURITY and Advanced - FIELD-LEVEL SECURITY
NOTE! 🚨 All examples use inline queries built with the SOQL Lib Query Builder. If you are using a selector, replace
SOQL.of(...)withYourSelectorName.query().
WITH USER_MODE​
USER_MODE is a default option.
SOQL
SELECT Id
FROM Account
WITH USER_MODE
SOQL Lib
SOQL.of(Account.SObjectType)
    .toList();
or explicitly:
SOQL.of(Account.SObjectType)
    .userMode()
    .toList();
WITH SYSTEM_MODE​
You can set SYSTEM_MODE for all queries by adding .systemMode() to selector class.
SOQL
SELECT Id
FROM Account
WITH SYSTEM_MODE
SOQL Lib
SOQL.of(Account.SObjectType)
    .systemMode()
    .toList();
stripInaccessible​
USER_MODE enforces not only object and field-level security but also sharing rules (with sharing). You may encounter situations where you need object and field-level security but want to ignore sharing rules (without sharing). To achieve this, use .systemMode(), .withoutSharing() and .stripInaccessible().
SOQL
SELECT Id
FROM Account
WITH SYSTEM_MODE
SOQL Lib
SOQL.of(Account.SObjectType)
    .systemMode()
    .withoutSharing()
    .stripInaccessible()
    .toList();