Aus der Dokumentation. Es klingt, als ob Sie anonym ausführen möchten.
Apex läuft im Allgemeinen im Systemkontext; Das bedeutet, dass die Berechtigungen des aktuellen Benutzers, die Sicherheit auf Feldebene und die Freigaberegeln bei der Codeausführung nicht berücksichtigt werden Die einzigen Ausnahmen von dieser Regel sind Apex-Code, der mit dem Aufruf executeAnonymous ausgeführt wird. executeAnonymous wird immer mit den vollständigen Berechtigungen des aktuellen Benutzers ausgeführt. Weitere Informationen zu executeAnonymous finden Sie unter Anonyme Blöcke.
Obwohl Apex standardmäßig keine Berechtigungen auf Objektebene und Feldebene erzwingt, können Sie diese Berechtigungen in Ihrem Code erzwingen, indem Sie explizit die Ergebnismethoden sObject describe (von Schema.DescribeSObjectResult) und field excellence resin von Schema.DescribeFieldResult), die die Zugriffsberechtigungsstufen des aktuellen Benutzers überprüfen. Auf diese Weise können Sie überprüfen, ob der aktuelle Benutzer über die erforderlichen Berechtigungen verfügt, und nur wenn er über ausreichende Berechtigungen verfügt, können Sie eine bestimmte DML-Operation oder eine Abfrage ausführen.
Zum Beispiel können Sie die Methoden isAccessible, isCreateable oder isUpdateable von Schema.DescribeSbjectResult aufrufen, um zu überprüfen, ob der aktuelle Benutzer den Zugriff auf ein sObject gelesen, erstellt oder aktualisiert hat. In ähnlicher Weise macht Schema.DescribeFieldResult diese Zugriffssteuerungsmethoden verfügbar, die Sie aufrufen können, um den Lese-, Erstellungs- oder Aktualisierungszugriff des aktuellen Benutzers für ein Feld zu überprüfen. Darüber hinaus können Sie die von Schema.DescribeSbjectResult bereitgestellte Methode isDeletable aufrufen, um zu überprüfen, ob der aktuelle Benutzer berechtigt ist, ein bestimmtes sObject zu löschen.
http://www.salesforce.com/us/developer/docs/apexcode/index_Left.htm#StartTopic=Content/apex_classes_perms_enforcing.htm#kanchor431
Haben Sie jemals eine Lösung für diese finden? – turbo2oh